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!