A short history of my personal experience with software engineers and why I’m optimistic about our future.
For my entire professional life, I’ve worked closely with software engineers and loved what they do. The math lover in me has always been envious of their everyday work — they pretty much get to solve puzzles every day, trying to write elegant solutions so other engineers can follow and build on their work — there’s hardly a better application of your logical/mathematical brain.
My first exposure to leading an engineering team came after just 2 years as a derivatives trader (my first real job) when I was lucky enough to be put in charge of a flagship engineering project we called “Robot trader” at Optiver. I had come up with a strategy for trading options on the Korean Index (the Kospi200 — which at the time was the most actively traded options market in the world) that was making consistent profits without significant added risks. Being such a liquid market it was the kind of strategy that could potentially be automated so I was tasked with explaining the rationale behind good trading decisions to the engineering team to try and do just that. The aim was to elevate the human trader to non-routine decision making and let the computer do the routine stuff. I was in awe of the engineering team’s approach. I had assumed they would see this as an algorithm to be solved but was surprised at the time they took to deeply understand the problem, and the motivations behind the user (in this case me and my trading team), questioning all our decisions, forcing us to codify our thinking and strategy before committing any code.
I learned there early in my career, that most good engineers will be able to come up with a solution to a well defined problem — the HOW to solve it. But great engineers are deeply concerned with understanding the problem itself — the WHAT we’re trying to solve.
So after leaving my job at Optiver to start up my own education company at the ripe old age of 25 I knew the type of engineers I was looking for. It took us 3 months to find our very first engineer but when we did I knew he was the right person. Of all the people we met for the role he was the one most concerned with the WHAT we’re trying to solve. His name is Alvin Savoy and I can’t imagine a better person to have been my co-founder on this journey. And after 8 years we’re still riding this wave together. And this brings me to my point…
As we’ve grown we’ve naturally raised the bar on what we require from our new software engineers. Our product has evolved over time to incorporate a lot of moving parts that need to work together seamlessly to support the millions of weekly interactions from our students, so we need seasoned senior engineers with experience working in complex products solving difficult challenges dealing with scalability, infrastructure, big data all while continuing to innovate on our product. And this is where it gets interesting. These extremely talented individuals are all over the HOW and WHAT but what I didn’t realise was just how much they care about the WHY.
At first this was a bit confronting for me. I’d get all excited after speaking to our customers and come back to the product team and say we need to build this feature and instead of getting the chorus of “let’s do it” I’d get our senior engineers asking:
“Why are we doing this? How does it align with our vision? Are we prioritizing short term market share or long term product strategy?”
Wow! As if I didn’t already have a hard enough time living up to the expectations of our customers and our investors, now I had our internal engineering team raising the bar even higher. Of course these were things that I constantly thought about but it wasn’t enough that I was thinking about them. Our engineering team wanted to know the “why” behind our decision making because they care about where they spend their time. So after the initial shock reaction I actually found this very refreshing.
There’s been much written about software eating the world and the war for engineering talent, particularly in places like Silicon Valley. It’s easy to think that in this environment engineers will just join the companies that pay the most. But that’s not the case. I have found software engineers to be among the most empathetic and idealistic people I know (perhaps it’s because they need to deeply understand the people their building solutions for). So in this war for talent they are very conscious of the importance of their time and they want to spend their time on something they believe will make a difference. So when they ask “why are we doing this?” it’s not out of a sense of entitlement but the burden of responsibility to make the best use of their powers. They want to believe that the work they’re doing is part of some bigger picture that will create some good in the world. In order to see that they need to know what that bigger picture is (the vision) but also they need to believe that we have a good plan to get there (the strategy) and they challenge me to communicate that in a way that makes them believe.
So why can they change the world?
I remember marching with over 200,000 people in Sydney and tens of millions around the world on 15 Feb 2003 against the war in Iraq. I was just 19 years old at the time and it was the first time I ever attended a protest. The turnout was bigger than anyone had imagined and the global coordination of marches was a clear message that millions of people from diverse backgrounds and walks of life all opposed a pre-emptive war. Social movement researchers have since described the 15 February protest as “the largest protest event in human history” and as a young adult I was filled with optimism that the voice of the people would be heard and we would be able to avert the war. It was only a month later that I watched Australia join the US coalition and declare war on Iraq. I felt powerless — there was nothing we could do. It’s only now as I write this that I reflect that it was not only the first protest, but also the last one I ever attended.
I was recently reminded about this late last year. I was backstage preparing for my TED talk and was lucky enough to mix with 15 remarkable people who would share the stage with me that day. Company like that will often get you thinking. One of those people was Rach Ranton, a war veteran, who gave an insightful talk on what the army calls “Commander’s intent”. Back stage I asked Rach about whether she had any thoughts about the war itself and she said
Soldiers try not to get involved with the politics of it all. Once we are ‘in country’, we focus on the elements we can control, not those that we can’t. Basically, we have a job to do and we have to do that well. If we don’t then people die.
Rach didn’t really have a choice in the matter as to whether she wanted to fight a war — that decision was made way over her head. Her role was to do her job and do it well.
That’s how things work in the army. And to a large extent it’s the way the workforce used to work for centuries. But as the world becomes increasingly connected things are changing fast. Much of this power is moving from governments to technology companies (who have an enormous responsibility which would make for another piece someday) so software engineers are at the modern day coalface making some very important decisions about how this power is used.
And while that might scare many people it feels me with great optimism. Sure, there are engineers who would use their superpowers for things like hacking servers, selling data, blackmailing but for each of those I believe there are dozens of engineers who take this incredible power and put it in the hands of the people. Why? Because software engineers build things that way. They rarely care about centralizing power. Look at open source. Look at the Bill and Melinda Gates foundation. Look at Pledge 1%. They care about the WHY.Look at Wael Ghonim, the former Google executive, computer engineer and Internet activist who unwittingly became the unofficial spokesman for Egypt’s revolutionaries in 2011.
There is an idealism among software engineers. They imagine a better world. And increasingly they have the power to create it.
So if you’re a software engineer, think about this incredible power that you have. And think about the world you want to live in. Do you really want to make it easier to gamble or binge watch the next great TV series? Do you really want to have people spending more time on Facebook only to live with the “tremendous guilt” afterwards in what might be the modern day version of Tony Blair’s “more sorrow, regret and apology than you may ever know” over Iraq.
Instead, hold your leaders up to the standards that my team does of me. Ask them “why?” and if you’re not convinced by their answers then join a place where you are and start changing the world.