Photo by Hannah Busing on Unsplash

Cross-Functional Team. It’s one of the nifty buzzwords we run into so often these days. But unlike some buzzwords whose meanings are vague, this one has a fairly unambiguous definition. Moreover, this one is actually quite useful. …


Photo by noor Younis on Unsplash

Phil Karlton famously said that the two hardest things in programming are cache invalidation, and naming things. I’d add dates and times to that list. For something so seemingly simple and intuitive to humans, the interaction of dates & times, and timestamps & timezones, has proven deceptively tricky for many…


Photo by J. Kelly Brito on Unsplash

I’ve been writing as a hobby since I was a kid. But it’s been only recently that I’ve written articles for wide publication.

Still, in that relatively short period of time, I’ve learned a lot about how to write compelling, informative articles (well, I hope that they are compelling and…


Photo by Fernando Andrade on Unsplash

Anti-patterns — as the name suggests — are the opposite of patterns. Whereas the latter describes repeatable, effective solutions to common programming problems, anti-patterns illustrate common attempts to solve programming problems which, ultimately, tend to result in even worse problems.

Certain anti-patterns crop up again and again in our engineering…


Photo by Marko Horvat on Unsplash

If you work long enough as a software engineer, you’ll see them. Those “funny” log messages sprinkled throughout your company’s codebase. A line written by someone who wanted to show that they’re a humorist as well as an engineer. Something like:

log.error(
"Couldn’t find the server. Guess it went…


Photo by Austin Distel on Unsplash

Most of us get to a point in our engineering careers, after having learned from our architects and managers, and after having put up with our companies’ issues and inefficiencies. One day — as if by magic — we realize that the things we’ve been learning from our “superiors” haven’t…


Bad sketches by the author

In this series’ first two articles, I described myself as a long-time Java engineer who has recently decided to give Go a go. Although I’ll always love Java, I know that it’s important to keep learning languages. …


Bad sketches by the author

In this series’ first article, I described myself as a long-time Java engineer who has recently decided to give Go a go. Although I’ll always love Java, I know that it’s important to keep learning languages. …


Bad sketches by the author

As someone who’s programmed in Java for almost as long as the language has existed, I’ll always consider myself a “Java guy”. Sure, as one of the predominant platforms in the industry, Java is sometimes looked down on today (“It’s verbose!” “It’s slow!” “It’s old!”) …


Photo by Rory McKeever on Unsplash

Your company’s monolithic web application has become too big and brittle. Deploying it has become slow and scary. So as a company, you’ve decided to follow the path so many others have taken — breaking apart the monolith into microservices.

As you probably know, the journey can be long and…

Dave Taubler

Software architect, engineering leader, musician, husband, dad

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store