Shipping for Two Fractional-CTO Clients in 2024: What I Learned
A year of working with two early-stage startups in parallel.
Two clients, very different stacks, very different problems, lots of overlap in what failure modes I saw. Year-end retrospective.
Year-end retrospective. Two fractional CTO engagements ran most of 2024. Both still going.
Client A: AI-first dev tools company
Stack: Next.js, Postgres, Anthropic API. Pre-seed.
Started: April 2024.
Where we started: founder had a working prototype in v0/Vercel. Beautiful design, no architecture. Three engineers about to start; nobody had picked their stack or set up CI.
What I did first 30 days:
- Picked the stack (Next.js 15, Postgres, Drizzle, Vercel, Sentry)
- Set up the monorepo (one app, shared types, eslint config)
- Built the first auth flow (Clerk → Supabase, took 2 days)
- Hired the first full-time engineer (out of 60 candidates, ran 8 interviews)
- Wrote the first arch doc
Where we are now: 4 engineers, $200K MRR, Series A in progress.
What I learned: the highest leverage was the first month. Architectural decisions made then are still in place. Boring tech compounded.
Client B: fintech (regulated)
Stack: Spring Boot, Postgres, Kafka, AWS. Series A.
Started: Aug 2024.
Where we started: 12 engineers, monolithic Spring Boot, getting paged constantly, p95 latency 3 seconds, no deploy in production for 6 weeks.
What I did first 60 days:
- Wrote the deploy automation (manual deploy was the bottleneck)
- Instrumented OTel everywhere (we couldn't see what was slow)
- Identified two N+1 query patterns that explained 40% of latency
- Killed two unused services that were ringing pages
Where we are now: deploys multiple times per day, p95 latency under 500ms, sustainable on-call.
What I learned: don't refactor before you instrument. The entire eng team was sure microservices were the answer. They were wrong; the answer was "fix the slow queries."
Common patterns across both
- Founders ALWAYS think the problem is more strategic than it is. Usually the problem is execution: deploy automation, instrumentation, basic discipline.
- Hiring is the most leveraged thing I do. The right second engineer compounds. The wrong one drags the team for a year.
- Boring tech wins. Both clients are on tech that was mature in 2020. They're successful because the tech is invisible.
What I'd do differently
I underbilled the fintech client for the first month. The instrumentation work was unflashy - they kept asking "when do we ship features?" I should have set the expectation that month one was foundations, with a clear unlock for month two.
Going forward, I include "outcomes by phase" in every engagement letter. Easier to align expectations.
What's next for 2025
I'm taking on one more fractional engagement and one project-based fintech architecture review. Going to write more - at least one substantive post per month.
If you're a founder considering fractional support, drop me a line. I'll be honest about whether it's the right fit.