After 30+ years of developing software and leading teams at Code.org, Amazon, Concur (SAP), Neudesic (IBM), Microsoft, and many others, I’ve seen a lot.

I've written code on almost every platform that exists. I’ve led teams ranging from a couple of developers to complex organizations spanning hundreds. And I’ve helped ship software that powers top websites and mobile apps, used in offices, homes, factories, schools, and vehicles across the world.

Through all of this, I’ve discovered many things that increase developer productivity - and thanks to many mistakes, have found many more things that don’t!

My goal is to share my experience, giving you the tools and insight to make you as a developer (or, if you are a manager, your team) more productive and happy.

Topics I write about:

This isn’t just about the latest IDE plugins or shortcuts. Instead, I take a holistic view across the following areas:

How to measure developer productivity: a.k.a. if you are trying to measure the number of lines of code, commits, or features, you are thinking about this the wrong way!

How to design a productive software development team: Hiring. Onboarding. Reporting structure. In-person vs. remote vs. hybrid.

How to create a streamlined development methodology: Agile or not agile. Defining communication norms. Effective partnerships with product, design, and other stakeholders.

How to design systems: Monolith vs. microservices. Picking libraries and frameworks you will not regret. Avoiding pre-optimization. Embracing prototyping and experimentation. Creating APIs for other developers.

How to manage technical debt: Identifying, avoiding, inheriting, and eventually paying off technical debt in your codebase.

How to optimize source control and pipelines: Code repo and feature branch design. Patching and rollbacks. Deployment strategies. Containerization or bare-metal.

How to select and use tools for increased productivity: Local and/or cloud-based development environment. IDE selection. AI coding assistants. Efficient debugging. Testing strategies.

How to invest in yourself (or your team): Staying up to date. Mentoring others. Time management. Communication skills. Leadership and influence.

All the content I write here is freely available, released under the Creative Commons BY-NC-SA license.

Subscribe to Developer Productivity

Experience, insight, and tools for more productive and happy developers.

People

Author of Developer Productivity. CTO at Code.org. Previously at Amazon, Concur, and Microsoft. Contributor to open-source projects, articles, and books.