← Back to context

Comment by tim333

1 day ago

I think experienced programmers underestimate how tricky it is to sort the deploying to cloud platforms bit for beginners.

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.

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

I'm an experienced programmer and deploying is a clusterfuck these days. It's by far the worst part of making software

  • I use a mix of Firebase and AWS Copilot CLI (https://aws.github.io/copilot-cli/) depending on which platform I'm on.

    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 invested a couple of days to setup a K3S cluster a few years ago and I still use that for any deployment (and I deployed a few more).

    I don't have to worry about cloud providers ruining my life with updates, free cloudflare in front so I get caching.

    It's not too bad but there is an initial investment

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.