Working Theories are semi-polished concepts and ideas that I’m screwing around with.
Over the last few months I've been reflecting on my time at Daybreak Health and thinking through what's different in the tech ecosystem. Back then (2020) I chose to use a Ruby on Rails + React stack. My reasoning was that it would simplify the initial prototyping phase (I'm a RoR dev) by minimizing the learning curve and allowing me to easily hire in expertise in my known weaknesses in the next proximate objective (e.g. get a frontend dev).
That first year or so went really well on the technical front because I had what Rumelt would call Good Strategy. My objective was to get us through the prototyping phase to PMF. My guiding policy was to minimize my own learning curve and ease my hiring burden. My actions were to work within my own core competency (RoR), select technologies for immediate use that would be easy to hire for (React > Angular), and leverage as many consumer off the shelf technologies as I could. It wasn't perfect, but it enabled the business in a big way in that first year and a half, and I'm pretty proud of that.
As I've been debating next steps I've found myself repeating portions of this exercise and I'm starting to realize that if I want similar success in the prototyping phase and more success in the PMF and post-PMF phase it's probably not going to be the same tech stack. The world's moved on, and while RoR is still a solid API backend, I don't think the technical org you end up with is flexible enough for the modern startup world.
I think a full TS/JS stack is ideal now for early CRUD app prototyping because it means your team will be massively more flexible. The syntax barrier is lower across the frontend and backend and core concepts (async, promises, callbacks, etc) are similar across all elements of the stack. Mix in the latest co-pilots and I suspect a team of Senior devs would be damn near full stack by default. Thinking a little deeper, the real question is whether or not you can survive as a pure-play TS shop. You can delegate out to vendors via API for your AI/ML (and let's face it, everyone's going to need AI/ML), but I don't think you can escape the slither that is python wrapping your data stack. With that in mind a Django or Flask stack might be competitive post-PMF, but would probably suffer pre-PMF.
Do the engineers amongst you have any thoughts?
Yeah agreed. I’m also in RoR but literally no one uses it. I find that a lot of younger programmers really know TS/JS well. And it used to be that you couldn’t do some things in Node, but I haven’t run into that anymore
Interesting, but how do you propose that backend switch once PMF happens and there is zero time, nor resources to change anything, but now need lots more features, scale, stability, maybe enterprise features, observability, and so on? I’m not a fan of switching horses mid-stream, just as the water is rising fast.