A balanced composition feels right. It feels stable and aesthetically pleasing. While some of its elements might be focal points and attract your eye, no one area of the composition draws your eye so much that you can’t see the other areas.


Learning Clojure and/or Haskell will make you a better programmer. Even if you don’t use it day to day, there are a ton of prescient lessons to be taken back to your language of choice.


Web Components v1 is the foundation that will help us build better component libraries, enabling developers to deliver a refined, maintainable and consistent user experience across products.


Floating point numbers are everywhere. It’s hard to find software that doesn’t use any. For something so essential to writing software you’d think we take great care in working with them. But generally we don’t. A lot of code treats floating point as real numbers; a lot of code produces invalid results.


Just as excellent testers must understand they provide a service, they must also understand that they are not “quality” people. They simply hold the light so that other people can work. Testers do not create quality.


You weren't hired to do specific fully-defined tasks, but rather to further the goals of the team and company. It's up to you to learn voraciously and think critically about the problem, the solution, the constraints. It's up to you to become fully aware of all you're contexts - business pressure, schedule, financial considerations, deployment strategy, etc etc.


It’s terribly difficult to manage unmotivated people. Make your job easier and don’t...


When it comes to writing code, the number one most important skill is how to keep a tangle of features from collapsing under the weight of its own complexity.


Too many managers believe in the myth of 100 percent utilization. That’s the belief that every single technical person must be fully utilized every single minute of every single day. The problem with this myth is that there is no time for innovation, no time for serendipitous thinking, no time for exploration.


Effective interfaces are visually apparent and forgiving, instilling in their users a sense of control. Users quickly see the breadth of their options, grasp how to achieve their goals, and can settle down to do their work. Effective interfaces do not concern the user with the inner workings of the system. Work is carefully and continuously saved, with full option for the user to undo any activity at any time. Effective applications and services perform a maximum of work, while requiring a minimum of information from users.