Software Engineering Advice

Be happy – the field you are in and the stuff you get to do is amazing and in its infancy. We have no idea what is possible yet, any more than a cave man could about the wheel. Luckily for us we can progress faster than it took for the wheel to progress to the BMW.

Be inquisitive – Although disputed, I believe our field is a science like biology and physics. All the universe is just information, and this information cannot be destroyed — even in a black hole. Let this sink in: you are participating in the discovery of the workings of the universe, and the universe does a much better job at information processing than we do. Discover the way it works. Turing had one idea, but it is not the universal model for making miracles out of information.

Be confident – Doubt yourself, challenge yourself, but always be true to yourself.  In the words of Dorianne Laux, “You’ve traveled this far on the back of every mistake” and Ralph Waldo Emerson, “To believe your own thought, to believe that what is true for you in your private heart is true for all men, — that is genius.” The time of the field we are in requires constant re-assurance, and belief in yourself and your intuition are essential.

Be a builder – Always be building something. When building, as much as possible never start from scratch. Like the knowledge that allows them, new things come from placing of our brick on the back of older bricks. Use these bricks as much as possible. Build on old foundations slowly and prove them frequently as they may be built on assumptions that no longer hold merit. Adopt new foundations wearily, as they are unproven and may not hold all the weight you will need them to support. Shore up an old foundation before building a new one.

Be quiet – a lot of people are interested in the exchange of ideas and theories and it’s important to participate in the discussion in the places where that discussion happens. However, do not contribute just to be in the room or be on the web – the current way we’ve set up information discovery on this planet rewards noise vs. signal. Don’t add to that – be scholarly and genuine. You will be rewarded by better conversations with better people. As far as seeking fame, don’t. In the words of Rainer Rilke:

“Don’t ask anyone to speak about you, not even disparagingly. And if the time should come that you notice your name circulating among the people, don’t take it any more seriously than anything else you might find in their mouths. Think: it has become tainted, and dismiss it. Then take another, any other, by which God can call you in the night. And hide it from everyone.” – The Notebooks of Malte Laurids Brigge

Be serious – people depend on technology more now than ever – and they expect us to make sure it works for them. They aren’t friends, they are people with a life that needs to be bettered. Fans of your technology will not get you as far as you need to go, and aren’t to be relied on for signals of your progress.

Be open – Engineers have common traits of sarcasm, cynicism, and desire to only stay within a safe group of like-minded people who share our views. We become insular. This can happen in the media we consume, in our associations, or even geographically.  This is our biggest hurdle.  Don’t do it. It will prevent you from connecting to others and seeing the bigger problems and the bigger solutions. You need the world — you are practicing your art in it.

Be supportive – as much as possible, run your friend’s code and listen to their ideas. If you are smarter than all your friends, then you aren’t making friends — you’re making a cult. This happens more often than you think, especially in startups. You should always leave a group of friends feeling energized and provoked, and with a desire to make them as successful as you wish for yourself.

Be aggressive, but patient – This is as much about ensuring your ideas find expression as it is about self-advancement. To quote Emerson again:

“In every work of genius we recognize our own rejected thoughts: they come back to us with a certain alienated majesty… to-morrow a stranger will say with masterly good sense precisely what we have thought and felt all the time, and we shall be forced to take with shame our own opinion from another.”

I would call this more than shame, but for the ambitious is it like eating glass. Still, don’t fall for the desire to reveal everything to get a small credit from a thief that would build your work. Ideas are often credited not to those that first had them but to those that first built them. Always push forward with your ideas without apology, and aid in the refinement of the ideas of others, but don’t rush out that which is still unformed. Build it, then reveal it.

Be humble – on this I have little practice, but many requests.