Small Skills
A small, seemingly insignificant skill has made a big difference in my career as a software engineer.
When I transitioned from being an independent developer to working in a company, I remember one of the technical tests. At the time, as I was sweating through the full-stack assessment with various questions, I felt like I was doing terribly. I only had a couple of hours, and I was spending time applying concepts that I sensed were important, but the final result looked incomplete. Despite that, I got the job—and later, to my surprise, I was told that I had been by far the best candidate.
Looking back, I can imagine how my focus on applying design patterns, separating responsibilities, and normalizing the database design made a difference. Though far from perfect in execution, these are powerful ideas, and taking them into account shapes the direction in which you can grow as a developer. As a system scales, approaches that seem productive on a small scale become unmanageable in larger projects.
Being exposed early on to open source projects—and suffering through the pain of figuring out how they worked through trial and error—gave me a solid foundation to grow from the start. Also, beginning to read more abstract and less hands-on books helped me understand and appreciate ideas that go beyond memorizing technical manuals.
exit(0);