Skip to content

About

Hi, I'm Keaton.

I'm a software engineer. I build AI products, full-stack applications, and the data systems underneath them, and ByteCraft is how I do that work with companies directly.

Keaton Conrad, founder of ByteCraft, in front of a painted mural

I started ByteCraft because the best parts of my job kept getting further away. More process, more handoffs, less time in the problem. I wanted to work on hard things with people who cared about them, without a layer of translation in between.

I move across the stack: frontend, backend, infrastructure, data, AI. That range isn't a party trick. Most genuinely hard problems refuse to stay in one discipline, and the right fix is often somewhere a specialist wouldn't think to look. A slow page turns out to be a schema decision. A hallucinating assistant turns out to be a chunking bug.

Most of my career has been inside startup teams, owning work that mattered and sitting in the arguments about what to build next. I've shipped things I'm proud of and a few I'd do differently, which is where most of the useful judgment came from.

AI tooling is part of how I work, and it's a real part of why I can move quickly. It runs inside whatever environment you approve — your repo access rules, your data-handling requirements, your review process — and I agree that with you before anything starts. Every line that reaches your codebase is one I've read, understand, and am accountable for.

Usually working in

  • TypeScript
  • React
  • Python
  • PostgreSQL
  • AWS
  • LLM APIs

Availability

I keep a small number of clients at once, which is the only way the "you get me, not a handoff" part stays true. It also means I'm sometimes booked. Worth asking either way.

Things I believe about building software.

Shipped is the only done

A branch that works on my machine isn't progress. I count the work finished when it's in production and holding up.

You'll hear the bad news first

If an estimate slipped or an approach isn't panning out, you'll know that week. Surprises at the deadline are a choice someone made earlier.

Boring technology, mostly

Postgres solves more problems than people expect. I save the interesting choices for the parts of the system that actually need them.

I write the tests I'd want to inherit

Not coverage theater. The handful of tests that catch the thing that will actually break at 2am.

Product questions are engineering questions

Half of what looks like a technical decision is really a question about what users need. I'd rather ask it out loud than guess in the schema.

Think this might be a fit?

Tell me what you're building. I'll give you a straight read on whether I'm the right person for it, and how I'd start.