General Articles
Why Take-Home Assessments Are Better
Let's face it: traditional technical interviews like leetcode-style challenges can feel disconnected from real-world software development. They often focus more on memorization of algorithms than on the practical, collaborative skills engineers use every day.
Leveling Up for System Design Interviews

As I've navigated the tech leadership job market, I've encountered an unexpected emphasis on system design interviews. These interviews have proven to be both challenging and enlightening, pushing me to develop a more structured approach to solving complex architectural problems. Here's what I've learned along the way.
Principles for Leading Remote Teams
I've learned a few hard earned lessons about what works for distributed teams and what doesn't. They've started to form foundational principles I use to help ensure my teams have the best opportunity to navigate collaborating and working remotely.
Crafting Team Roles Through Analogy
Whenever I'm presented with a complex problem my brain immediately tries to generate a mental model to classify and categorize the component parts and help understand the cohesive whole. My favorite approach is using analogy to abstract away hyper-specialized terms or ideas in favor of representing them with generic replacements.
Splitting Teams Gone Wrong
Congratulations! Your engineering team has grown to the point where they must take on more engineers to simply keep up with maintenance demand, let alone tackling the tsunami of new features being requested. Each new team member adds additional overhead, communication becomes harder, and you have to find a way to make things more efficient.