gitignore rendered but keep toc
parent
ef93baf97c
commit
05900e635e
|
|
@ -1,2 +1,4 @@
|
|||
.DS_Store
|
||||
/book
|
||||
/src
|
||||
!/src/SUMMARY.md
|
||||
|
|
|
|||
41
scrape.sh
41
scrape.sh
|
|
@ -7,30 +7,49 @@ main() (
|
|||
wget -q -O ./raw.md https://raw.githubusercontent.com/ZachGoldberg/Startup-CTO-Handbook/main/StartupCTOHandbook.md
|
||||
fi
|
||||
|
||||
rm ./src/*
|
||||
|
||||
rm -f ./src/* || true
|
||||
mkdir -p ./src
|
||||
|
||||
printf "# Summary\n\n" > ./src/SUMMARY.md
|
||||
|
||||
|
||||
cat ./raw.md \
|
||||
| (
|
||||
n=0
|
||||
n_f() {
|
||||
printf %03d.txt $n
|
||||
}
|
||||
while read -r line; do
|
||||
n=$((n+1))
|
||||
depth="$(echo "$line" | grep -o '^##*')"
|
||||
(
|
||||
echo n=$n
|
||||
echo line="$line"
|
||||
echo depth=$depth
|
||||
) >&2
|
||||
if ((n>20)); then
|
||||
break
|
||||
fi
|
||||
local depth=$(
|
||||
echo "$line" \
|
||||
| grep -o -E '^[^a-z]*#+ ' \
|
||||
| grep -o '#' \
|
||||
| wc -l \
|
||||
| awk '{print $1}'
|
||||
)
|
||||
case "$depth" in
|
||||
1|2|3 )
|
||||
n=$((n+1))
|
||||
printf "%s- [%s](%s)\n" \
|
||||
"$(for i in $(seq 0 $depth); do printf " "; done)" \
|
||||
"${line#* }" \
|
||||
"$(n_f)" \
|
||||
| tee -a ./src/SUMMARY.md >&2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
)
|
||||
|
||||
|
||||
mdbook build
|
||||
|
||||
)
|
||||
|
||||
log() {
|
||||
echo "| $*" >&2
|
||||
}
|
||||
|
||||
if [ "$0" == "$BASH_SOURCE" ]; then
|
||||
main "$@"
|
||||
ret=$?
|
||||
|
|
|
|||
152
src/SUMMARY.md
152
src/SUMMARY.md
|
|
@ -1,2 +1,154 @@
|
|||
# Summary
|
||||
|
||||
- [THE STARTUP CTO'S HANDBOOK](001.txt)
|
||||
- [Essential Skills And Best Practices For High Performing Engineering Teams](002.txt)
|
||||
- [By Zach Goldberg](003.txt)
|
||||
- [Dedications](004.txt)
|
||||
- [Praise](005.txt)
|
||||
- [Contents](006.txt)
|
||||
- [Introduction](007.txt)
|
||||
- [The Author](008.txt)
|
||||
- [Using this Book](009.txt)
|
||||
- [Business Processes](010.txt)
|
||||
- [People & Culture](011.txt)
|
||||
- [Management Fundamentals](012.txt)
|
||||
- [The Professional Skill Tree](013.txt)
|
||||
- [Kaizen: Continuous Improvement](014.txt)
|
||||
- [Coaching](015.txt)
|
||||
- [Find a Management Mentor](016.txt)
|
||||
- [1:1 MEETINGS](017.txt)
|
||||
- [SKIP-LEVEL MEETINGS](018.txt)
|
||||
- [COACHING MANAGERS](019.txt)
|
||||
- [1:1 Meetings with Engineers](020.txt)
|
||||
- [Benefits of Overcommunication](021.txt)
|
||||
- [Meetings and Time Management](022.txt)
|
||||
- [The HIPPO](023.txt)
|
||||
- [Mini Management Frameworks](024.txt)
|
||||
- [Joining a Team](025.txt)
|
||||
- [Working With The CEO](026.txt)
|
||||
- [Delivering Bad News](027.txt)
|
||||
- [Speaking the Language of Your Audience](028.txt)
|
||||
- [Technical Communication Best Practices](029.txt)
|
||||
- [Hiring and Interviewing](030.txt)
|
||||
- [Hire like a Startup](031.txt)
|
||||
- [Speed is Your Friend!](032.txt)
|
||||
- [When To Hire: Headcount Planning](033.txt)
|
||||
- [Hiring Goals and Objectives](034.txt)
|
||||
- [The Job Description](035.txt)
|
||||
- [Sourcing Candidates](036.txt)
|
||||
- [A Note on the Mathematics of Incentivizing Referrals](037.txt)
|
||||
- [Interviewing Best Practices](038.txt)
|
||||
- [Intake Forms](039.txt)
|
||||
- [Culture Interview](040.txt)
|
||||
- [Coding Challenge](041.txt)
|
||||
- [Technical Interviews](042.txt)
|
||||
- [Executive interviews](043.txt)
|
||||
- [Reference Checks](044.txt)
|
||||
- [Onboarding](045.txt)
|
||||
- [Boy Scout Rule: Onboarding](046.txt)
|
||||
- [Performance Management](047.txt)
|
||||
- [Performance Improvement Plans (PIPs)](048.txt)
|
||||
- [Changing Seats](049.txt)
|
||||
- [Firing](050.txt)
|
||||
- [Team Makeup](051.txt)
|
||||
- [Seniority Makeup](052.txt)
|
||||
- [Technical Specialization](053.txt)
|
||||
- [Project Maintenance: The Two Crews Philosophy](054.txt)
|
||||
- [Team Organization](055.txt)
|
||||
- [Managing Remote Teams](056.txt)
|
||||
- [Leadership Responsibilities](057.txt)
|
||||
- [Product and Design Teams](058.txt)
|
||||
- [Design Systems](059.txt)
|
||||
- [PRDs and Specs](060.txt)
|
||||
- [EPD](061.txt)
|
||||
- [Product vs. Project Management](062.txt)
|
||||
- [Managing Managers and Manager Training](063.txt)
|
||||
- [Finances and Budgeting](064.txt)
|
||||
- [The Budget](065.txt)
|
||||
- [Working with your CFO](066.txt)
|
||||
- [Measuring Engineering Velocity/Health](067.txt)
|
||||
- [Fundraising and Due Diligence](068.txt)
|
||||
- [Vendor Management](069.txt)
|
||||
- [Which Type of Startup CTO Are You?](070.txt)
|
||||
- [The Tech-Focused CTO *AKA The Chief Architect*](071.txt)
|
||||
- [The People-Focused CTO *AKA the VP of Engineering (VPE)*](072.txt)
|
||||
- [The Externally Focused CTO *AKA The Head of Technical Sales/Marketing*](073.txt)
|
||||
- [Technical Team Management](074.txt)
|
||||
- [Tech Culture and General Philosophy](075.txt)
|
||||
- [Ten Pillars of Tech Culture](076.txt)
|
||||
- [Tech Debt](077.txt)
|
||||
- [Tech Debt And The Product Lifecycle](078.txt)
|
||||
- [Communication of Tech Debt](079.txt)
|
||||
- [Technology Roadmap](080.txt)
|
||||
- [Timeframes](081.txt)
|
||||
- [Tech Process](082.txt)
|
||||
- [Workflow](083.txt)
|
||||
- [Engineering Estimates](084.txt)
|
||||
- [Burndown Charts](085.txt)
|
||||
- [Choosing A Workflow](086.txt)
|
||||
- [Cooldown/Innovation Sprints](087.txt)
|
||||
- [Technical Planning And Specifications](088.txt)
|
||||
- [Prototyping as Part of Spec Writing!](089.txt)
|
||||
- [Tech Spec Content](090.txt)
|
||||
- [Tech Spec Approval](091.txt)
|
||||
- [Developer Experience (DX)](092.txt)
|
||||
- [Prioritizing Developer Experience](093.txt)
|
||||
- [Easy Developer Experience Wins](094.txt)
|
||||
- [Changing Tools For Developer Experience](095.txt)
|
||||
- [Tech Architecture](096.txt)
|
||||
- [Architecture](097.txt)
|
||||
- [Domain-Driven Design](098.txt)
|
||||
- [Writing Readable, Good Code](099.txt)
|
||||
- [Coding Patterns](100.txt)
|
||||
- [API Contracts](101.txt)
|
||||
- [Documentation](102.txt)
|
||||
- [Idempotency](103.txt)
|
||||
- [Data And Analytics](104.txt)
|
||||
- [Transactional Data](105.txt)
|
||||
- [Analytical Business Intelligence Data](106.txt)
|
||||
- [Behavioral Data](107.txt)
|
||||
- [General Tips And Best Practices For Architecture Design](108.txt)
|
||||
- [Tools](109.txt)
|
||||
- [Implementing Internal Technology Radar](110.txt)
|
||||
- [Boring Technology](111.txt)
|
||||
- [Tool Cost](112.txt)
|
||||
- [Budget](113.txt)
|
||||
- [Tracking](114.txt)
|
||||
- [DevOps](115.txt)
|
||||
- [Four Key Metrics (DORA)](116.txt)
|
||||
- [Reproducibility](117.txt)
|
||||
- [Containerization](118.txt)
|
||||
- [Continuous Integration](119.txt)
|
||||
- [Continuous Deployment](120.txt)
|
||||
- [Feature Branch Environments](121.txt)
|
||||
- [Managing DNS](122.txt)
|
||||
- [Decoupling Shipping Code from Shipping Features (Feature Toggles)](123.txt)
|
||||
- [System Monitoring: APMs and RUMs](124.txt)
|
||||
- [Testing](125.txt)
|
||||
- [Testing/Quality Assurance Teams](126.txt)
|
||||
- [Test Quality](127.txt)
|
||||
- [What To Test](128.txt)
|
||||
- [Testing Type Comparison](129.txt)
|
||||
- [Unit Tests](130.txt)
|
||||
- [Integration Tests](131.txt)
|
||||
- [End-To-End Tests](132.txt)
|
||||
- [Semi-Automated Testing](133.txt)
|
||||
- [Source Control](134.txt)
|
||||
- [Peer Review](135.txt)
|
||||
- [Ship, Show, Ask](136.txt)
|
||||
- [Branching Models](137.txt)
|
||||
- [Long-Lived Vs. Short-Lived Branches](138.txt)
|
||||
- [Production Escalations](139.txt)
|
||||
- [Implementing Escalators](140.txt)
|
||||
- [Root Cause Analysis (RCA) Exercises](141.txt)
|
||||
- [IT](142.txt)
|
||||
- [Security and Compliance](143.txt)
|
||||
- [Auth Security Terminology](144.txt)
|
||||
- [Security At Startups](145.txt)
|
||||
- [Compliance](146.txt)
|
||||
- [Conclusion: Measuring Success](147.txt)
|
||||
- [Book References](148.txt)
|
||||
- [Digital References](149.txt)
|
||||
- [Glossary](150.txt)
|
||||
- [About the author](151.txt)
|
||||
- [About the publisher](152.txt)
|
||||
|
|
|
|||
Loading…
Reference in New Issue