Most experienced programmers have no experience deploying apps (or their experience is from earlier in their career). Especially engineers at big companies where there are whole teams dedicated to infra/devops.
The percentage of programmers with side projects they deploy themselves is very small. I’d guess less than 10% have a side project deployed somewhere. (And these days
> Most experienced programmers have no experience deploying apps (or their experience is from earlier in their career)
Most experienced programmers in my circles have evening/weekend projects. We are notorious for hoarding unused domains for the "brilliant side project" that gets a burst of commits right after domain-renewal time
Yeah. I'd say about 1/4 of my time on my new app has been spent on deployment-related stuff, rather than the app itself. And I'm not inexperienced with servers and cloud. It's a pretty big deal to integrate that stuff.
I have a habit now of getting that out of the way first just so I don't have to think about it. Get a basic functioning prototype and then figure out my infra and deployment as early as possible.
Depending on my projects, I tend to keep it pretty simple.
For personal projects, usually Firebase (+ occasional Cloud Run mixed in) which makes it relatively easy.
For professional projects, it's pretty easy now on AWS with their (unfortunately named) Copilot CLI [0] (highly, highly recommended).
But mostly, I keep my infra simple and bias towards modular monoliths [1] which ends up being the majority of my infra work (container packaging and deployment of the initial runtime infra).
Both make it pretty dead simple to deploy. AWS Copilot being the "more powerful" of the two, but still dead simple to use compared to CDK, Cloud Formation, or writing Terraform or Pulumi scripts.
I've really shortened the loop on deploying my side projects with Claude Code. I run it with `--dangerously-skip-permissions` on a prompt I've written and it adapts it for the project in hand with a "safe" set of defaults, and I've got a basic verification script to ensure it's not unsafe (e.g. can't access postgres from the web, firewall blocking all non-required ports). The rest - which can vary from project to project, like creating VMs, configuring rules, whether it's a rust project or a docker compose file - Claude knows how to handle pretty well. Super super simple now.