5 posts

Programmer’s discipline

Programmers face inherent challenges of programming - ambiguity, complexity, integration, and paradox - while building solutions for hard problems.…

code review

Pairing vs. Code Review: Comparing Developer Cultures

In pairing, everybody on the team gets better together because of constant communication. In teams that follow the practice of code review, there is a motivating pressure to perform well for the review.…


Dropbox’s journey to type checking 4 million lines of Python

A type checker finds many subtle (and not so subtle) bugs. Refactoring is much easier Type checking provides quick feedback and allows to iterate faster.…

software architecture

5 Key Principles of Software Architecture

SOLID principles and the principle of Least Astonishment, Least Effort, Opportunity Cost, Last Responsible Moment.…


The Product-Minded Software Engineer

Engineers who have a thirst for using technologies to leapfrog human/user problems. Those with empathy to reach for magical experiences. That is what defined a product engineer in my books.…