Managing engineering teams

February 15, 2019 - by David
last edited April 24, 2020

This is not a definitive list, just a collection of observations of effective and efficient software engineering teams.

Another excellent list of lessons learned writing software can be found in Things I Learnt The Hard Way (in 30 Years of Software Development).

They see me coding. They hatin.
They see me coding. They hatin.

No waterfalls

Software development can be particularly prone to the waterfall method. Avoid it as much as possible. There is something religious about this method, on the 7th day the engineer created the code.

In nature, the equivalent would be tadpoles laying eggs, millions of years ago, and the next day a fully formed human being walking out of the water. Evolution is an incremental process, almost all engineering is as well. No ‘Divine Coding’.

Code reviews

This can be difficult, for people not accustomed to it, as it can temporarily bruise the ego. Get over yourself.

Having your code reviewed will catch bugs you’ve become blind to, having looked at the problem for too long. It will also validate or test your assumptions.

Most importantly, even if your code is always perfect, it helps other engineers on your team learn; a technique they might not know, how team practices are done (especially for new team members), and stay up to date with how the system is implemented.

Keep changelists small

Every changelist should be concise and manageable. If you’re following the advice above, every changelist will be reviewed by at least one person. Large changelists are exponentially more difficult to review the larger they get. Asking for a review is asking a teammate for their time, be respectful of that.

Don’t break the build

If you can break the product without breaking the build, add more tests, ideally as pre-commits.

Simplest case first

If a teammate suggests replacing your brilliant, never before seen, solution to a problem, with a simple, existing, language native feature/package, they’re right, 99% of the time.

Lint everything

Decide on a code formatting style and always enforce it. Reading a codebase without consistent style is like reading Beowulf, as rewritten by Chaucer, and proofread by Shakespeare.

No martyrs

Working 120 hour weeks to deliver is not heroic. You either failed to plan your time appropriately or wildly misestimated the time to complete the work. In both cases, you’re doing a disservice to your team and risking quality. There’s a reason why truck drivers and pilots aren’t allowed to work more than a consecutive number of hours per day.

Don’t micro manage

Hire smart people you can find, and guide them.


engineering management

Notebook

Specialized AI and the Road to AGI

January 12, 2026 - by David

Exploring the future of specialized artificial intelligence and its path towards artificial general intelligence.

AI AGI technology
Simple Steps for Securing Your Data

January 5, 2026 - by David

Practical advice on how to protect your personal information and maintain your online security.

security data protection privacy
Go-Bag Packing Checklist

December 31, 2025 - by David

A comprehensive checklist for packing an emergency travel go-bag.

travel packing emergency
Dev bookmarks

April 26, 2022 - by David

A collection of bookmarks to interesting dev projects or resources.

development programming
The Joe Rogan bot

December 19, 2021 - by David

Prolific podcasters/vloggers/bloggers or even social media users, in the future, will be able to recreate a "bot" of themselves that easily crosses the uncanney valley.

ai bots uncanney valley eternal life
Everything is a System

September 17, 2020 - by David

The entire physical universe acts as a system, from the galaxies all the way down to the sub-atomic level.

systems thinking
Original Sources

June 11, 2020 - by David

All interviews in the future will link to unaltered original video sources.

video blockchain interview journalism
UI/UX Please Don't

May 5, 2020 - by David

A list of UI/UX implementations to avoid at all costs.

ux ui engineering design
Importance of writing

April 30, 2020 - by David

Proper written communication is more important than ever.

writing email remote hiring
Managing engineering teams

February 15, 2019 - by David

Thoughts on the best practices of the most efficient engineering teams.

engineering management
No Comments

February 1, 2019 - by David

Don't bother with a comments section on a personal or company blog.

blogging social media comments
One Wish

January 7, 2019 - by David

The importance of quality user experience to crypto cannot be overstated.

blockchain crypto ux