Software engineering principles to live by

github logo ・1 min read

There are three ways to solve problems: bring the problem closer to an existing solution, bring an existing solution closer to the problem, invalidate the problem by changing all your underlying assumptions.

It is impossible to maintain large codebases in dynamic languages. Anyone that thinks otherwise hasn’t yet written enough dynamic code.

Be proud of your work but do not be your work. Be critical of the code but not the person that wrote the code.

The tools must always be subordinate to human intentions and not the other way around.

Capabilities are always better than features. Capabilities can be composed. Features can only be contextualized.

Finally, and most importantly, be kinder to your fellow human beings because humanity is a team effort.

twitter logo DISCUSS
Classic DEV Post from Jun 13

Async, Parallel, Concurrent Explained - Starring Gordon Ramsay

Complex computing concepts simplified

david karapetyan profile image
Dispassionate problem solver. I enjoy building minimal and efficient systems. I like to think I don't drink the kool-aid