Anybody Can Write It Again


Every now and again, an engineer will share that they are writing a new XML parser or a new Javascript framework. When I ask why, the answer is a mix of “I can’t find something that does exactly what I want,” or “mine is more efficient.” While technically the engineer is right, it doesn’t make it worth their time and it’s highly likely the best next step for the product they’re building.
Just like anybody can reinvent the wheel, anybody can write another XML parser or a framework or any number of other ‘solved problems’. It’s so rarely worth re-solving a problem that you should probably not entertain the idea unless you know for sure why you need to re-solve it. That is, build on whatever is close enough to your needs until replacing it becomes the highest priority.

Continue reading Anybody Can Write It Again

Extreme Design

This week, I spoke at IteratePHX, a local tech conference, about specific tactics to build a DevOps culture. One of the tactics asking questions along a line of reasoning that I’m calling …. EXTREME Design!!! (Apologies, I might yell EXTREME a couple of more times because, well, it’s fun.)

I still can’t believe that’s not a term that already means something in the tech world, so I’m coining it, Extreme Design™ or XD for short.

What is Extreme Design? It’s designing your software with the notion that, one day,  your software will will need to deal with situation that sounds extremely unlikely today.

Continue reading Extreme Design

Write Code For Others

Continuing with the theme of interviewing, I’d like to talk a little bit about style. One of the things interviewers are looking for is your style of code. They have seen tons of people solve their question and they want to see not only if you can solve it, but how you solve it. Do you like to write really terse code? Can I read your code easily?

You: What!? In a 45 minute interview, they expect a solution written in nice code? Continue reading Write Code For Others

Favorite Interview Question

Greetings, I come in peace!

Today, I’d like to hit the ground running by telling you how to solve my favorite interview question, step-by-step. I’ve asked this question to over 250 candidates and it does a great job testing basic software skills.

First, the question:

We know that spreadsheet applications use letters to name their columns. For example, the first column is labled 'A' and second is 'B'. Eventually, we get to 'Z', and then 'AA', 'AB', and so on.

Let's write a function that, when given the name of a column, returns its index. So 'A' would return 1, 'B' would return 2, 'Z' would return 26 and 'AA' would return 27. 

Let’s talk a little bit about these types of problems. There are systematic techniques to approach problem solving and our goal is to explicitly define them. That way, they become concrete tools in your problem solving toolbox. Once you have these tools, if your intuition fails you, you can reach into your toolbox and see if anything can get you unstuck. Continue reading Favorite Interview Question