Skip to content

Instantly share code, notes, and snippets.


FWIW: I'm not the author of the content presented here (which is an outline from Edmond Lau's book). I've just copy-pasted it from somewhere over the Internet, but I cannot remember what exactly the original source is. I was also not able to find the author's name, so I cannot give him/her the proper credits.

Effective Engineer - Notes

What's an Effective Engineer?



  • Single responsibility principle: a class should have only a single responsibility
  • Open/closed principle: software entities should be open for extension, but closed for modification
  • Liskov substitution principle: objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program
  • Interface segregation principle: many client-specific interfaces are better than one general-purpose interface
  • Dependency inversion principle: high level modules should not depend on low level modules, both should depend on abstractions

View gist:5999939
Building with Confidence
- Investment into quality i.e. spending time improving infrastructure, refactoring code, looking for better solutions (CRITICAL)
- Once a week half a day bug hunt with dev team or full-time Automated QA Engineer
- Demanding and giving developers time to do proper testing of their own effort.
- Test-driven development (or BDD) and Continuous Integration
- Code reviews
- Investment into writing library-style code
Running Tight Ship
- Pre-planning meeting where the dev teams play "Planning poker" (CRITICAL)