I missed blogging for a few weeks over the holiday season (ie sickness season), but we’re finally back in good health and in the full swing of things again. Coming back, I thought it’d be fun to document Masset’s early tech stack. It’s bound to evolve over time, so tracking that evolution will be fun.
Innovation Tokens
Before dumping the list of technologies, I thought I’d mention innovation tokens. As far as I know, the concept of innovation tokens was first introduced in an essay by Dan McKinley called Choose Boring Technology. I’d recommend reading the article, but the crux of it is this: early companies get three innovation tokens. Each piece of non-boring tech that you choose uses a token. Spend too many, and… well you can’t spend too many. You only have 3.
It’s a methodology that I adore. Unfortunately, I feel like a lot of technology leaders conflate interesting technology with interesting problems. When interviewing developers, they over-emphasize the technologies they are using and underemphasize the types of problems they are solving. Novel tech becomes antiquated at an alarming rate. Interesting problems last much longer. I’d much rather hire someone interested in a problem than a technology.
That’s not to say that developers should ignore tech when they are job-searching; people have passions. But it definitely shouldn’t be the only thing.
From the outset, I decided that Masset would be a company meant to solve customer problems, not iterate on technology. In addition, as a startup, our purpose is to find product-market-fit and processes to scale. Technology should be simple enough to enable that, but not be the focus of delivery.
I’ll also admit that some tech startups should be spending as many innovation tokens as they can in order to keep up with emerging markets. But Masset is not that company. Instead, our company strategy relies on building unique differentiators and striving for profitability. Those can be accomplished in pretty much any technology (mostly).
So count us on the “boring” bandwagon. We love tech, but we love solving problems more.
The tech stack
All that said, here is the early Masset tech stack.
- Architecture: Backend REST Monolith with Single Page Application Frontend
- Backend: Spring Boot using Kotlin
- Frontend: SPA in React
- Database: Postgres on RDS
- CI/CD: Scripted Github actions for automated tests with rolling deployments
- Infrastructure as Code: Terraform
- Deployment: Docker containers deployed on Fargate ECS
- CDN: Cloudfront
- Monitoring: Sentry/CloudWatch/CloudTrail
So where did we spend our innovation tokens? Honestly? Probably just Kotlin. The true “boring” choice there would probably been pure Java. But with Kotlin being JVM-based, it has a low barrier to pulling the ripcord if needed. So maybe half an innovatation token. 😅 There might be an argument for Fargate ECS vs straight EC2 deployments, but at this point, ECS is pretty well established in the marketplace.
Why didn’t I spend more? Well, because I think we’re going to evolve into them. As we nail down our future focus areas, I fully expect them to be in emerging markets. Hot areas like AI-driven searches, content generation, and large scaling language models. Those will need some tokens for sure.
If using “boring technology” to solve interesting problems interests you, let’s get in contact. We’re not hiring yet, but we will be in the future. 😜