Oct 312023
 

It’s common for online applications to refer to themselves as a “platform” as soon as they have a public-facing API. Facebook is probably the biggest example of this, but it’s a fairly standard marketing tactic (I used to work for a company that did the same thing). Basically you make some public-facing endpoints, and voila, you’re now a “platform” – and developers please build stuff for us, so we can increase customer lock-in. That’s not how this actually, or ever, works – because that’s not how platforms work.

Continue reading »

 Posted by at 11:45 AM
Sep 292023
 

The term “exit” always irritated me when people write about startups. Especially because it only happens when a company is either bought or IPOs. I’m not saying that startups don’t use acquisition (or IPOs if you’re Twitter – never X) as an exit strategy to avoid actually making money, but a lot of times companies do this after they’ve become a profitable, self-sustaining business. Despite that, we still don’t have a clear definition of when non-retail companies stop being startups and start being plain old businesses (even if they’re small), and it needs to be fixed.

Continue reading »

 Posted by at 11:45 AM
Aug 312023
 

If you spend any time on any system that involves importing data, and you’ll likely have heard the phrase “garbage in, garbage out (GIGO).” It’s usually muttered (obscenities optional) right around the point a developer has given up on trying to “fix” the data coming into a system and willing to abandon users to whatever crappy, unusable, incorrect data they have floating around on their system. As long as whatever junk users were importing doesn’t actually break your code, let them suffer.

Continue reading »

 Posted by at 11:45 AM
Jul 312023
 

The world is full of applications that are big enough that companies need multiple development teams to work on them. No matter how these teams are organized (but I’m going to go out on a limb and guess they’re not completely cross-functional, even ignoring the hard parts). The benefits to organizing multiple software teams is they can operate independently, but the downside is that any best practices learned are hard to propagate across teams. After all, the whole point is they only need to interact with each other to inform each other of service-level changes. So how can all these development teams actually learn (and adopt) best practices?

Continue reading »

 Posted by at 11:45 AM
Jun 302023
 

OK, so the phrase “caching was a bad choice” isn’t exactly something you expect to hear about software development. Generally, caching is a good thing – it improves performance by reducing calls to your database or external services, saving time and resources by not re-querying or re-computing. What’s not to love? Well, as with everything else in life, the devil’s in the details, and if you don’t get those right then anything can become a failure.

Continue reading »

 Posted by at 11:45 AM
May 312023
 

Like just about everybody else who runs software post dot-com bust, I read about Amazon Prime Video re-architecting their monitoring service, and saw all the microservices vs monolith hot takes. For the best monolith vs microservice analysis on the post, I recommend CodeOpinion’s video. What I found more interesting about the post wasn’t the monolith vs. microservice debate (I agree with CodeOpinion – that’s not really the relevant point to the original article), but rather the limits to using Functions as a Service (FaaS)…as a service.

Continue reading »

 Posted by at 11:45 AM
Apr 302023
 

Working in software development, it’s easy to get caught up in thinking the code is everything, and everything must be in service to the code. After all, not only is the product or service we deliver code, but running on the cloud means your operations are now code, infrastructure is code..it seems like literally everything about software has been turned into “just code.” Software has eaten the world, after all, and yet, writing the code is still the least important part of the whole software development process. That doesn’t mean it’s unimportant, mind you – “least” is a relative term – but there’s so much more that goes into building and running a successful application or service than commands and semicolons.

Continue reading »

 Posted by at 12:45 PM
Mar 312023
 

Reading a lot about platform engineering kept reminding me about the concept of the paved road (I’ve also seen the term “golden path”) in software engineering. It’s easy to understand why – if you do platform engineering correctly, then you end up with a paved road. Spotify probably has the best definition of a golden path (emphasis mine): “The Golden Path — as we define it today — is the ‘opinionated and supported’ path to ‘build something’ (for example, build a backend service, put up a website, create a data pipeline).” For all practical intents and purposes, a paved road is essentially the output of platform engineering. But why should we be trying to pave these roads? Shouldn’t we just build a stack and incorporate toolsets specific to each project, app, or service? Surely that way we can optimize for the specific problems each was built to solve, right? Wrong.

Continue reading »

 Posted by at 11:45 AM
Feb 282023
 

Back in December, Scott Adams (of Dilbert fame) posted a tweet commenting on the general dissatisfaction on the budget omnibus bill that had recently passed.  It’s a surprisingly interesting problem, because Congress largely sets its own rules, so any change can be just as easily undone or even ignored in the name of an “emergency” or “extenuating circumstances” (which are incredibly easy to find if you don’t want to live by the rules). In other words, how do we convince people to act against their own self-interest without having the direct power to set the rules they’re operating under? I think there’s a potential solution, but it’s going to hinge on several states getting on board.

Continue reading »

 Posted by at 11:45 AM
Jan 312023
 

So after taking a brief break to write about Twitter, because that’s everyone’s new favorite hobby, I wanted to revisit part of my central thesis in my posts on platform engineering –  that it’s hard to find places with actual cross-functional teams capable of doing everything needed to build and run an application or service from concept to being used in production. I’m not totally sure why this is something that organizations don’t want to do, but I still don’t platform engineering is the solution (or as I’m sure some companies will try to spin it, “compromise”). Continue reading »

 Posted by at 11:45 AM