(An introduction to a book in progress.)
Ages pass, and still thou pourest, and still there is room to fill.
— Rabindranath Tagore
This is a book about how to become stronger. Specifically, it is about how to become stronger as a software engineer. Much of it is tactical and of minor interest to the general reader. But its core principles transcend mere discipline and cut across the realms of life.
This is not a book of breezy clichés. It was existentially vital for me to understand what I write down here and to transmute it into something I could use in my work. And to give some color to that work, perhaps I should first explain two insights that bent the arc of my life and brought me to this point.
The first that I was finally able to give name to the deep aspirations I have for this world. Naming is totemic: it gathers the inchoate yearnings of the heart and molds them into a form that is almost physical. And when that form enters thought and word and action, and joins with them so tightly that it touches the ground of being itself, then the will to realize it becomes deep and driving.
The second was that I had been sleepwalking through life and had failed to deeply consider how my actions connect with my aspirations. When I realized this, I mourned the time I had wasted and resolved to do better.
Together, these two insights wove a simple message: get on the right path as fast as you can.
Step by step, I started to make changes. I quit a job that no longer aligned with my values, which was an immense and immediate relief. With the yoke of work off my shoulders, I spent two months examining how I got to this point in my life and how I could take the next step toward something better. Along the way, I kept a blog to hold myself accountable to using this time well. And partly through that blog, I ended up joining a company that aligned with one of my deep aspirations: to protect the world I love for the generations to come.
All of these are positive steps. But as I kept moving into the unknown, my world became larger, and my ignorance became greater, and I realized how much more, and more, and more I needed to grow.
Spend enough time in tech circles and you'll hear of the 10x engineer. But there's vehement disagreement on whether such an engineer even exists. Could it really be that one engineer could be ten times more effective than another?
Yes. And I'm sure there are 100x and 1000x engineers as well.
We don't need to search for an exotic example. Think of summing up all the rows in a spreadsheet. With pen and paper, a person could feasibly work with about a hundred rows. With Excel, they might manage up to a million. With Python, perhaps up to a billion. With Presto, perhaps up to a trillion.
Is that too trivial? Think instead of creating a library to handle HTTP requests. Someone who doesn't share their work helps nobody else. Someone who shares it poorly helps perhaps 10 other people. And someone who shares it effectively helps thousands.
When we do work that aligns with our talents and interests and goals, we can easily 10x our performance over our mediocre baseline. But 10x isn't as far as we could go, either. As we refine our process and continually become more effective, we can achieve things that would have been unimaginable at the outset.
Hence this book. I don't know what shape it will have by the end, but the major themes are clear.
The first is measuring. How well do you know where your time goes? How much of your time is spent in deep focus? How do you track the health of your system, your company, and your environment?
The second is learning. How do you learn as quickly and cheaply as possible? How do you retain that knowledge long-term? When do you learn for breadth, and when do you learn for depth? How much do you know about what you don't know?
The third is practicing. How do you internalize knowledge and make it automatic? How much practice do you need, and which kinds of practice are most effective? How can you practice each aspect of your job?
The fourth is doing. How do you make good decisions? How do you make a good plan, and how do you know when to throw it out? How do you keep energy and motivation high? How do you do things you really don't want to do?
The fifth is teaching. How do you share what you've learned as effectively as possible? How do you write and speak in a way others can understand? What simply can't be taught? How do you teach someone who doesn't want to be taught?
The sixth is sustaining. How do you build systems to support all five of the factors above? How do you think about sleep, health, environment, culture, teams, mission, and goals?
I will write only what I have found true to my own experience. Time will tell how far this will go.
inch by inch climb
— Kobayashi Issa (trans. David Lanoue)