Hacker News new | ask | show | jobs
by austin-cheney 534 days ago
Build something ambitious as a personal project. You learn systems design from successfully refactoring complex systems into simple systems. That’s it. Through a lot of practice you will just have a vision for it that you can easily talk through. That vision occurs because through practice you learn what the pain points are and what the low hanging fruit is. You also learn from this that software which scales well only does so because other unrelated things were executed well.

In my case I learned a collection of tiny things contribute to application performance improvements more than any single big thing. That in combination with very fast test automation allowed me to do very big changes on personal projects in 2-4 hours at very low risk while much smaller efforts at work were taking me more than 2 weeks at substantially greater risk. I had learned good systems design and by learning to build more simple architecture the flow control became very short.