The HAMYBURGER: My 2023 tech stack
I saw this fun meme where people show their tech stack in the form of a burger. So I decided to build my very own HAMYBURGER to show how I like it.
The HAMYBURGER Tech Stack 2023
We'll go through the tech starting roughly from the "outermost" part (what a user might hit first) through to the "innermost" part (me coding on my machine).
Note: a 3S stamp of approval means it's a Simple Scalable System. We like Simple Scalable Systems.
- [Preferred] SvelteKit - SvelteKit has been my go-to frontend framework for over a year now. It lets me build fast and safe which I love. 3S stamp of approval.
- React on NextJS - I previously built my frontends with NextJS and still would recommend it to people. I find SvelteKit much easier to work with but could see NextJS makings sense if I needed to use React for something.
- [Preferred] REST with JSON - REST APIs with JSON is a battle-tested, boring technology. It works and it works well. Yes gRPC, Thrift, GraphQL etc give you cool features in certain scenarios but REST works well in most. So I build with REST. 3S stamp of approval.
- [Preferred] F# on Giraffe - F# has been my favorite general purpose language for over a year. It's got great ergonomics, can leverage the entire C# .NET ecosystem of tools, and is generally very fast. 3S for sure. Giraffe is my top F# Backend Web Framework in 2023
- C# on ASP.NET - I still like C# and will sometimes drop down into C# for certain things. C# plays nice with F# so these are complimentary.
- TypeScript on Node - TypeScript has been growing on me and honestly I'd probably recommend this to someone trying to pick up a first language since it's both web-native and can build fullstack pretty easy. I use it for my frontends in SvelteKit and have seen a lot of engineers find success spinning up successful projects quickly with this stack.
- [Preferred] Server-side - This is easy, doesn't require external resources, and typically is enough to handle the small scale my projects get. So server-side caching is my goto to start with.
- Redis - If I need to have more caching in hot paths, I will use Redis. It's simple, scales well, and is highly battle-tested - 3S approved.
- CDN - I've never had to do this in my own projects but if you're handling lots of traffic this is the natural next step.
- [Preferred] Postgres - Postgres wins. 3S. Can be used as hybrid relational and non-relational to get the best of both worlds. It's very fast and continues to get better with lots of support from industry. If you're having data scalability problems, easy to scale vertically / horizontally to very high load.
- [Preferred] Serverless Containers - I host everything in serverless containers. This gives me all the benefits of a Modular Monolith (ergonomics, performance, etc) with the ergonomics and scalability of serverless. Best of both worlds - 3S
- For platform I don't really have a preference other than use a big cloud provider - GCP, AWS, Azure.
- [Preferred] VS Code - Gets the job done, great tooling support, easy to use.
- [Preferred] Windows (wsl) - Windows has come a long way and is now my preferred OS for general computing. It used to suck at coding but WSL feels like native linux without the bugs.
- Mac / Linux - I've used both extensively and think they're fine.