Have you heard that the Excel team has their own C compiler? Or that Amazon has their own version of Linux? How about Dropbox building their own cloud infrastructure and moving off of AWS S3?
These lessons probably apply to your cat mom blogging platform because they are best practices. I mean, the people you work with are so smart, and they get bored really easily. In tech you need to keep the smartest people busy, and working at your company instead of going to a competitor.
Build it yourself, you have plenty of time
One of the beautiful things about software teams is that even if it takes 10 people to build the first version of an application, it takes 10 people to maintain the second version. It is pretty amazing, and very different than how, say, highways are built. Imagine if the entire construction crew just stood around near highways, ready to fix huge sinkholes that we all expected to appear.
Sometimes, if you let this dynamic play out, you will be on the 8th version of a piece of software and there are still 10 developers1, somehow. Nobody says it outloud, but you run out of things to do. Not that anybody is aware of it, but it happens. Everybody is happy and the new critical features just slow down and you start nitpicking. It starts out slow and low risk - maybe you make a Visual Studio Code extension that helps you with some custom code generation in your particular project. Then you look at the vscode extension library and think - it would be nicer if….
The Absence of Cash Rules Everything Around Me
Next thing you know you are writing TerryScript, which compiles down to ECMA, but only via TerryStudioPlus, which is a custom editor with specific features like JIRA and Slack integration for your particular project, so that you can attach the requirements you received via Slack messages into the comments of the code. In addition, everyone is using a house font that is specifically recognized by the compiler.2
And then suddenly you can’t keep any developers. You can hire super smart ones, and you have a group of super smart ones - I mean one of them built their own language! And another one built their own editor! And they hate each other, just a little bit.
But every time you hire someone new, the pattern is the same: they are very excited by how hard the interview is (some of that extra time was spent coming up with a great interview process), are excited to learn about all the new custom tech, but they leave right at 8 months. Everytime.
Keep Growing, Always Be Hiring
Why are you hiring anyway? There's still a lot to do. The application works great and the developer experience is fantastic, but the application crashes - Segmentation Terry’s Fault3, the team has t-shirts that they think are so funny - after lunch everyday when everyone logs back in.
Terry said something about garbage collection, and his desk is a freaking mess so that sounds right but you aren’t sure what it has to do with anything and you have already talked to the custodians and they still refuse to go into Terry’s office. You have been told that we are weeks away from a real fix for the “daily system siesta” as the users call it. Terry just needs to finish the new version of the runtime, which is compatible with Version 3 of TerryScript, which he says is really close. But only Terry can work on that, so I guess the reason you are hiring is that the business thinks that it takes 10 people to run the team and you only have 9, so you are just trying to find someone to fill the team out. And somebody has to write and maintain The Restarter, which is the watcher program that restarts the primary program when it crashes. The restarter doesn’t work if the primary program crashes explorer.exe, but that’s just a Windows thing which will be fixed once Terry’s friend Tim finishes up Timdows 98 which is due any minute now.
Or 20, or 30.
How does a specific _font_ get passed to a compiler? By the custom linter, of course, which translates certain symbols into longer plaintext versions of them. Or something - ask Terry.