All Insights
essays

Shipping for Two Fractional-CTO Clients in 2024: What I Learned

A year of working with two early-stage startups in parallel.

December 30, 20248 min read

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.

fractional-ctoyear-in-reviewconsulting

Want to discuss this topic?

I'm always happy to dive deeper. Reach out if you have questions or want to collaborate.

Get in Touch

Command Palette

Search for a command to run...