On API Gateways

Do you or your company build Web APIs and, if so, do you use an API gateway to broker traffic between your customers and your products? In this post, I want to tell you a little about our experience with this class of products and add a little of my opinion, but if you’re using an API gateway, I want to hear about your experience - the good and the bad.

9 Months In - Reflections on Teams and Agile

I’ve been a dev manager now for about 9 months and I have to say that I’m really enjoying this role. It’s not a job without frustrations, and I haven’t escaped the all of the frustrations that I had as a PM - particularly that of trying to balance writing code with “other duties as assigned.” However, when it’s all summed, I think that I’m a much better fit for operating on the engineering side of the house than I am at the business side.

Enterprise Software Must Die

Yup. All of it. (Warning: this is a bit of a rant, so thoughts are based more in anecdote than data) I understand that there was a point in time where building software that was capable of supporting large companies used to be an incredibly difficult task. At some levels, it still presents challenges. However, in the world of multi-tenant, mobile-driven, Internet-facing consumer applications, this characteristic of scale is no longer what is associated with the term “enterprise software”.

Untangling a Monolith

We all have see them; most of us have to deal with them; many of us contributed to writing at least one of them. Legacy code bases tend to evolve over decades and will with rare exception get messier and more entangled as a function of the number of people working on the project and the lines of code they produce (a phenomenon that seems pretty consistent with the rest of the known universe).

Our Development Pipeline and Process

I’ve been going around to different teams inside of my company recently and talking about how we’ve gone about the task of selecting different tools and technologies for our projects. I figured that if this many people inside the company were curious, there may be some value in sharing it with you good folks as well. So here, I’ll attempt to cover the principles, strategies, and technologies for both our development process/pipeline and our projects themselves.

How This Blog is Setup

I’ve been trying to get caught up on my backlog of things that I generally like doing but haven’t been finding the time to do recently, and a current project at work has me working in the same technology on which this blog is based - so it gave me a convenient excuse to - yet again - try and revive this blog. We’ll have to see how well I do in keeping up with writing.

Research List

I’ve been kind of quiet in the weeks since leaving Microsoft. It’s been a good quiet - in fact, the best kind of quiet there is. It’s the quiet the results from being completely overwhelmed, engrossed, and excited about the challenge ahead. I’ll describe some of these challenges over the next few weeks in more detail, but one of them is about making large scale architectural and technology shifts. Specifically, my team is out in front, figuring out the best way to design and build lots of interoperating large-scale services that run reliably and cheaply in the public cloud.

Leaving Microsoft

After 8 amazing years, it’s time for me to move on. I’ll articulate my own rationale for leaving shortly, but it would be disingenuous to not first list some of the many, many ways that I have grown and benefited from my time working at Microsoft. I got to run the developer certification program where I designed and built programs that helped start and grow the careers of many. It was also in this role that I had the opportunity to file my first patent.

Managing a Database Connection in an ExpressJS Application

A Web API or Web application backed by a database of some sort is a pretty typical application architecture regardless of what language or platform we might be looking at. So you can imagine my surprise that I haven’t really ever been able to find a satisfactory answer for how to best accomplish this kind of thing for an Express application that uses MongoDB. Maybe I either don’t know how to search very well, or maybe I just don’t really understand the answers that I’m finding, but the typical kind of answer that I’ve come across in the past reads something like this:

Stuck in a Rut

Warning: This is a completely downer of a post. If you don’t want to risk being pulled down with me, stop now. I don’t know whether the place I’m at is particular to software folks or whether it’s something more general that everybody has to deal with at one point or another. I feel stuck. Stuck between holding onto the technical skills that I spent more than a decade developing and building up more abstract skills like management and business development.