Development Process

Software processes are essential to coordinating software projects, but they are best used as nudges. No process is an adequate substitute for good culture. This blog post provides a deeper description of this philosophy.

Team Building

The most common mistake most companies make in hiring is to interview using standard coding questions. This has created an industry around "cracking the technical interview". But if you're trying to hire someone with 5+ years of experience, does it make sense to have an interview process that they can "study" for in 2 weeks?

These blog posts describe my experiences in interviewing:

Why I Don't Prepare For Job Interviews

Interviewing Developers For The Skills You Actually Need"

Software Architecture

Discussions around software architecture tend to be focused solely on the technical aspects. While this makes obvious sense, it is important to remember that software is written by people. How people think and work matters. Good architecture isn't just software that can scale with few bugs. Good architecture is designed with the understanding that it will be people maintaining that software, not machines.

Technical debt is also a common topic that comes up in software development. I view technical debt like financial debt: a tool that can be used wisely or foolishly. The challenge is that technical debt doesn't come with clear terms like financial debt does.

More on this topic:

Technical Debt

All Code Is Technical Debt

Get In Touch

If you're interested in talking to me, you can send me an email

I do have some availability for consulting, but I also like talking to smart people in general. Feel free to get in touch!