Your Life recently caught up with Will Demaine, a Senior Software Engineer for global automotive technology company, Uber. Here he talks us through what the role entails and reveals why there might be more human facing skills required in software engineering jobs than you might think!
Please introduce us to your role at Uber and exactly what you do…
I’m a Senior Senior Software Engineer at Uber. Software Engineering is about understanding problems, then designing and programming systems to solve them. As an engineer, I work alongside designers, product managers and data scientists to figure out how we can move something in the real world from A to B, safely and efficiently. That work might manifest in something familiar such as a website or an app, or it might be work in the background that most people don’t think about. Day to day, I spend most of my time programming, with some time dedicated to designing new systems, planning how to improve our products or fixing things that go wrong!
What are some of the more interesting and rewarding parts of being a software engineer?
The best part of my job is being able to work with a really smart group of people. I love that I’m able to manage my own time and I’m encouraged to think up new projects to work on rather than being told what to do. I love programming and learning about technology and I get to spend a lot of time improving my skills at work. Working on products that millions of people use every day to earn a living is a great feeling.
How did you get the job?
I didn’t even know what Software Engineering was whilst I was in school. As a kid, I liked playing computer games, but at some point I realised that I was more interested in figuring out how they worked than I was actually playing them. I discovered programming and taught myself by trail and error (which is definitely the most effective way to get started). I then took Maths, Computer Science and Biology at A level, and went on to study Computer Science at university. I did a placement year during my degree working as a Software Engineer for Credit Suisse which improved my programming more than any number of years in a classroom ever could. After graduating, I moved to San Francisco to work with tech startups which I’ve been doing ever since.
What other skills or attributes does this role require, in addition to technical software skills?
Some people think programming is all about logic and maths, but really, there’s a very human element to it. Empathy is definitely the most underrated skill for a programmer to have. Whether it’s writing code that other people in your team can understand, or putting yourself in the shoes of an 70 year old who wants to get from A to B but has never used a smart phone before, it’s always important to consider the other people around us.