Meet David Woods (B.Sc. in Computing Science, '15)

October 09, 2015

David Woods (B.Sc. in Computing Science, '15), who graduated this fall with an almost perfect GPA (4.24/4.33), is proof that when it comes to landing a dream job, many roads lead to Rome. Raised in England, Woods says his childhood dream jobs included a garbage truck driver, lawyer and investment banker. Finally, the former professional online poker player found his niche in computer science, and was recently hired by Microsoft as a software developer.

We sat down with Woods as he prepared for his upcoming wedding and relocation to Redmond, WA, where Microsoft is headquartered, to find out more about his experience at SFU and his future aspirations.

What led you to study at SFU?

I actually took two years out after high school because I was uncertain what career I wanted to pursue. I was passionate about online poker, so initially I pursued this professionally. But after a few months, I landed a contract job as a junior developer for a downtown Vancouver-based company that develops iOS apps.

I got to work on an awesome project for one of the largest financial advising firms in the United States, working with a team to develop an app that now has millions of downloads. That’s when I decided I wanted to go to university. I started a joint major degree in business and computing science, with a plan to go into the finance sector, but in my final years at SFU I realized I really wanted to focus on computing because that’s what I was really enjoying.

Why did you choose computing science at SFU?

I came to the campus and spoke with staff about various things, and I got a good vibe from SFU. The staff members were very friendly and I liked the campus size. After taking two years out, I wanted to get through my degree quickly so the option to study three semesters a year was great.

In the end, I finished my degree in just three years, and I even took one semester off school to work at Microsoft. Every other semester I took five courses. I also received an entrance scholarship, which was awesome. I actually had a scholarship every year – the open scholarship was really great because I didn’t have to apply for that; I just had to maintain a high GPA.

Was it your childhood dream to be a computing scientist?

Actually when I was very young, I wanted to be a garbage man! I grew up in England, where the garbage men pick up the garbage and throw it into the truck. I don’t know why, but I really liked that idea. After that, I wanted to be a lawyer, but then I realized how much I love logic and solving problems. That’s what really attracted me to computing science.

My dad works in computing science, so I grew up around that, but I first really got interested when I was about 11. It was around the time my dad and I both entered a contest run by Microsoft to create an AI creature in a virtual world. My dad actually came second and won us our first Xbox! I didn’t do as well of course because I was just starting out, but it was it was still a good introduction to the field.

What advice would you give to new students?

Get out of your comfort zone, take a wide variety of classes, and get involved in side projects with friends. I’m really glad I did the internship with Microsoft. It was a great experience because they throw you right in and they have high expectations.

I’m also really glad I took part in the ACM International Collegiate Programming Contest, because that really prepared me for the Microsoft interviews. I was asked a technical question in each one of my four interviews, which were very similar to the ACM questions.

I took part in the ACM competition three times, and in 2014 our team came in 9th, which is something I’m proud of. It’s a tough competition and top universities like Stanford and Berkeley take part. You’re given five hours and to solve 10 problems using a certain set of algorithms and applying math, logic and problem solving skills in general.

What has been your most memorable experience at SFU?

I remember during a machine-learning task, we created a stock prediction algorithm. The goal is to predict closing price for next day given the historical data. We had a lot of fun with that and thought we were doing really well – we were like “Wow, our program makes so much money!” Then we realized the algorithm we’d created already knew the closing price: you’re given all this data and you to ‘hide’ the answer – we hid the wrong piece of information! We still had a blast, though.

Are there any particular courses that really captured your imagination?

I had some great professors. I took two classes with professor Greg Mori, CMPT 225 on algorithms and data structures, and then later a machine learning class which was also awesome. Professor Mori is so enthusiastic about the content, incredibly knowledgeable, really friendly, and he gives hands-on coding assignments.

He also had a bonus assignment to create your own project using the course material. I did what was essentially a Google search for your hard drive. You would give it a directory and it would index all your files and show all the documents that match the query. It was a lot fun.

I really like clean code – it’s solving a problem, but doing it in a way that’s clever and efficient; that’s reusable and well designed. The architecture is something that interests me a lot.

I also took a class on distributed systems with professor Alexandra Fedorova – there were no textbooks, and we read research articles starting from the beginning of distributed systems all the way up to Google. We did a lot of programming and hands-on work in that one too, which was great.

Congratulation on your new position at Microsoft! What are you most excited about?

It’s such a great company, and I loved my internship there. My friend from SFU actually referred me for the position – he graduated last year, and is also working there now. They have lots of product lines and the community is great too. They have so many clubs you can join like kayaking, hiking, board games, volleyball and soccer. I’ll be joining the board game group and poker group! They also encourage you to switch teams every 18 months, which keep you fresh and excited.

I would have to say the single biggest contributor that helped me prepare for this job was the ACM competition. It teaches you so many ways to problem solve, apply the algorithms you learn, and work in a team under time pressure to debug really quickly. I’m going to be working in the operating systems team, so the course I took in operating systems with Brian Fraser, who is a fantastic professor, will be very helpful too. In general I’m really glad I got a wide base of computing science courses – that’s helped me a lot to face the challenges I had at Microsoft.

What’s your plan for the long-term future?

Someday, I would love to have a tech start-up company with a couple of close friends of mine who are all in computer science. Perhaps something in cloud computing and distributed systems as it’s a big topic that offers a lot of power and opportunities, or something related to machine learning.