Independently Executable Units
Often people talk about their applications as Console Apps, Web Apps, Mobile Apps, etc. There is nothing wrong with using those terms for marketing purposes, but there is a major flaw if they are designed structurally with that idea. Creating an “X App” will make the resulting code rigid and non-portable. Instead, create independently executable units.
Making a Concrete Behavior Reusable
Solving a software engineering problem once in your application is good. Taking a solution and making it reusable inside your application is even better. Recently, I had fun writing a simple scene transition, and then making it reusable. Join me in watching it evolve.
Your Code Is Terrible
A boss developer works hard to improve his skills! Improving absolutely requires both humility and desire. If you want to be great, you must be extremely passionate and incredibly humble. There is no other way.
Make Your Interfaces Small
Well-designed interfaces are a delight to read, use, and implement. The really elegant ones stick in your brain and satisfy your artistic yearnings. They possess beauty similar to a math theorem or a law of physics. To be an effective software craftsman, you must be very good at designing interfaces.