10 Years of Infra

Reflecting on 10 years building infra.

Nov 9
7:03 AM

Data Structures and Algorithms



Expanding My Knowledge


   I've been writing production software for about five years now. I've created a few monoliths and more microservices than I can count. Tens of thousands lines of code. Believe it or not, in all that time, I've never reversed a linked list for anything other than my personal understanding.
   This gap in my knowledge is a significant hinderance when speaking with potential employers. The ability to recall these design patterns and understand their application can only help me in my career, from finding the next developer job, to being good at that job,


Initial Approach


   Like clockwork, every year around January I'd spend a couple weeks doing Leetcode. Then I'd forget about it for basically the rest of the year. Needless to say, this didn't improve my comprehension, nor my confidence, as I'd learn a few algorithms and invest a bunch of time, only to find myself in the same position next year.


Fail Fast, Succeed Sooner


   What algorithms do I need to know? I'll never feel fully "ready" for coding interviews unless I put myself out there and become comfortable with the process of coding interviews. Testing, learning, and often failing. I've never learned anything valuable while remaining in my comfort zone. It's funny; I've conducted interviewed more than a few developers as potential hires, however I'd never sat on the other side of the table during a coding interview until moving to Seattle.


Structured Learning


   I recently celebrated ten years post-graduation. I'd argue I've learned more post graduation in this single job, than all my college education combined. One thing that never changes as we age is that learning a new skill takes practice and repetition. In a career it's easy to discover what skills you need. The job forces repetition of important workflows, either because you're good at them and get more similar work assigned, or because you're bad at it and need to keep doing the same thing over and over.
   This means it's been ~10 years since I've had to structure my own learning.


self  community  taught


One big differentiator between successful and unsuccessul people is the ability to find help. The older we get, the more resources we have available to help us. Ironically the older we get, the more reluctant we are to ask for help. Is this due to stubbornness? Ego? Embarrassment? Truly successful people transcend this facade.