Nov 302020
 

Anyone remember back when companies would try to be “cool” by advertising that they were looking for a “ninja” or “rock-start” software engineer? Thankfully, those days really are just memories (hopefully the days of the “10X egnineer” will go extinct soon, too). These terms were stupid as job titles because they had no bearing on what you actually did for a living. A “rock star” means that you spent some amount of time being playing in the Silver Bullet Band. And if people know that you’re a ninja, then you were really bad at it. I suppose these job titles stemmed from words people used to describe some the better developers where they worked, but there’s a difference between internal compliments and an actual role at a company. That said, the most useful role within any company is probably the programming equivalent of a plumber.

Continue reading »

 Posted by at 11:45 AM
Aug 242020
 

I’ve seen a lot of bad stuff about how to best work from home (because apparently that’s not going to stop any time soon) floating around, either from people I know offline or being posted on social media. Given that most people were going into work every day, I’m guessing a lotheirt of employers were scrambling to define what they expected about working from home. Judging by some of the dictates I’ve seen come out, these employers they only really know how to operate off the “butts in seats” school of management. So, when faced with this brave new world of employees not being on-site anymore, they appear to have turned to how-to guides that were already out there online, which means they were pre-pandemic, when people working from home were generally there by themselves. Now that we’re all doing it, that’s a dumb assumption, but I haven’t seen anything that acknowledges the realities of trying to put in a productive workday with the whole family at home, so let’s revisit the whole “how to work from home” thing, shall we?

Continue reading »

 Posted by at 11:45 AM
Jul 312020
 

Generally speaking, when a software development organization says that they’re going or practicing agile development, they mean they’re following the Scrum methodology. Most jokes about doing software development have nothing to do idiosyncrasies of programming itself (Gary Bernhardt’s classic “Wat” presentation notwithstanding), but rather about dealing with Scrum. I get the frustration, As fun as it is to make fun of Scrum (and I’ve made my fair share of jokes about it), I really do think it’s a good development process (when done well), and that we would do well to keep it in mind. So having said that, here’s my attempt to defend Scrum.

Continue reading »

 Posted by at 11:45 AM
May 312020
 

1 of the most iconic components to running software in production are consoles full of graphs and metrics about how that software’s performing. Generally, they’re called “dashboards,” but in my experience you want something that provides the ability to act on the data being shown on the console as opposed to a dashboard which is generally read-only. That action could take the form of filtering or drilling down on the data being shown, or triggering some administrative task. Like with everything else in life, 1 size, or in this case 1 administrative console, doesn’t fit all. If you group the different types of users who have a need for an administrative console, you’ll find they fall into 3 general personas.

Continue reading »

 Posted by at 3:00 PM
Nov 302019
 

Part of having mature infrastructure management is treating infrastructure as code. If your infrastructure is on a public cloud, Terraform is a good choice for that “code.” It’s platform-agnostic (at least as agnostic as you’re going to get), easy to learn, and easy to run. If you’re coming from something platform-specific, like AWS’s CloudFormation, you’ll probably feel right at home with Terraform in short order.

Continue reading »
 Posted by at 10:19 PM
Dec 312018
 

Generally speaking, my posts are for people who are already working professionals. However, after a couple of spectacularly bad initial interviews (not even making it to a technical screen), I’m starting to think it may be prudent to offer some advice to the younger set hoping to become working professionals.

Continue reading »
 Posted by at 11:45 AM
Nov 272017
 

Following what’s probably a very predictable course of operational maturity, my team at work started out manually uploading jars onto VMs, maybe with a few simple services, scripts, and setup tricks to keep the manual steps for deploying software to a minimum. As the amount of code we wrote and maintained grew, we started to focus on automating more and more of our code deployments, with an emphasis both on rolling deployments (so there’s no visible downtime to users), and on increasing reliability by reducing the number of steps we could possibly mis-type or forget. Since our code was heavily deployed on AWS anyways, OpsWorks seemed like the perfect setup for us. So far, while it isn’t actually perfect, it’s been a good tool for getting our app deployments and instance configuration more automated, which is what we really needed.

Continue reading »

 Posted by at 9:00 PM
Jun 262017
 

Java 8 introduced a lot of cool features, 1 of the most useful of which was the stream() method. This nifty little method lets you treat an Iterable as a stream, enabling cool things like lambdas operating over a list. Related to stream() is parallelStream(). This lets you group your stream into smaller streams that are run in, you guessed it, parallel. Specifically, your data is processed in a thread pool the size of the number of cores on your machine, minus the one running your app. That’s a handy piece of information you’re going to want to keep in mind before you start throwing this nifty little call around in your code.  Continue reading »

 Posted by at 2:44 PM
Apr 302017
 

For a while, I worked for a manager that wore a lot of different hats on our team, including that of “product manager.” Sadly, that meant he was often really busy and thus hard to pin down to get a product answer from. He knew that this was an issue, and wanted to get a full-time product manager for our team. At the time, I was thrilled about the idea. Fast forward a few months, and a little reorganization later, and our team now has a dedicated product manager, and I’m regretting my earlier enthusiasm. There seems to be a disconnect between product people and developers, so for any product managers reading this, here’s a few tips to help improve your interactions with developers.

Continue reading »

 Posted by at 1:00 PM