Sam is the Head Instructor for our iOS Development Bootcamp in Vancouver! When he's not teaching at Lighthouse, you can find him snowboarding in Whistler, lounging on Kits beach or supporting his strange habit of eating 5+ coconuts a day. Keep reading to learn a little more about Sam, his programming background and why he loves to teach.
Where did you work before teaching at Lighthouse Labs?
Before starting at Lighthouse Labs, I worked for 4 months at Eventbase as a developer on the core iOS team. If you haven’t heard of Eventbase, they built the mobile apps for the Vancouver and London Olympics. Before that I worked for 9 months as a full-stack developer at Two Tall Totems.
Why did you first get started with coding?
I’ve always been interested in computers. As a teenager I would mess around with the HTML on my myspace page - remember myspace? I would make animations in flash and add some actionscript to make them interactive.
The defining moment that caused me to commit to a career of coding, and specifically coding for iOS was the launch of the iPhone 3Gs. I was fortunate enough to buy one of these phones, and one of the first things I did was go to the app store and browse through every app that existed. That’s right, I went through every single app on the app store and it took me about an hour. The next time I went to the apple store, I saw a book on how to program iOS apps, I thought “yeah, why not”. I picked up a copy of the book and pulled out my hair out as I tried to learn Objective-C.
What's one cool non-development job you've done?
I lived in the Cayman Islands for two years after graduating High School. While I was there I had a job as a snorkel guide / bartender on a party boat. I would take tourists out to see a reef and some fishies, then get them really really drunk. This combination worked out better than you might expect, I only had to play lifeguard a couple of times.
What do you enjoy doing outside of teaching and coding?
Snowboarding and cooking. In the winter, you can find me up the mountain on any good powder day, as long as I’m not teaching that day. I also love a good spring skiing day. I’ve been getting plenty sunburn this season up at Whistler.
In case you don’t know, Lighthouse Labs has a fully stocked kitchen. Students learn quickly check in the kitchen if they’re trying to find me. I cook all my own meals, but I try to be healthy and cook everything from scratch. This just means that everything I cook takes a really long time.
Why did you get into teaching?
Most of what I know about programming was learned from online resources or books. I found that the best way to make a subject stick was to take what other people had written and try to explain it to myself in a simple way. I will go on a walk and in my head I will try to explain a new topic to myself in different ways until I feel I really get it, I really like to try and come up with different analogies. Working at Lighthouse Labs just means that I get paid to do this outloud.
Tell us about your teaching philosophy.
It’s the same as my learning philosophy, simplify everything. When I say simplify everything, I mean everything, avoid all unnecessary complexities. Never utilize utilize when you can use use.
I think another important thing to add here is that you can’t be a good teacher if you’re not excited about the subject. Teaching software development is easy for me because I’m excited about it, I always want to learn more and get other people excited about it too. I would be a terrible history teacher because it just doesn’t interest me the same way.
What do you love most about teaching at Lighthouse Labs?
The people! Students, staff, mentors… everyone. You know how when companies say they’re like “family” but they’re more like a dysfunctional dinner party. This is an actual family. I can’t imagine Lighthouse Labs being anything but A players - everyone pulls their weight.
What is the most rewarding part about teaching at Lighthouse Labs?
Every cohort I see students with little or no programming experience being an 8 week journey to becoming an iOS developer. 8 Weeks later I see those students graduate with the skills to go out into the world and get employed as iOS developers. An important thing I want to add here is that if I owned a company that needed software engineers, these graduates would all have jobs. It’s unbelievably rewarding to be a part of that process, watching every day as they add that little bit more knowledge to their skill set.
Your first coding project?
That’s a difficult one, because I don’t really remember, but I can tell you about my most successful coding project. When I was 18 years old I built an entertainment iPad app. It was a free app that ended up getting pretty popular in the app store.
Since releasing it, it’s had about 1.5 million downloads, which I’m pretty proud of. It’s hard getting that much attention on one of your apps, so this is definitely my most successful app, by a lot. The only problem is that the app I’m talking about is a Burp and Fart piano and no matter how hard I try, I can never out do the success of that app. So I feel my most popular app will always be a Burp and Fart app.
What open source or side projects are you working on right now?
I’ve been working on a BDD style testing framework for Swift called Observe. I’m a TDD evangelists, I think everyone should be writing tests, and I think our test frameworks need to be great. The current selection of BDD style frameworks for Swift didn’t have everything I wanted, so I made a simple framework and open sourced it.
What is your advice for aspiring developers?
Do it. Make the leap. Just do it. The internet is full of free resources so there’s no excuse not to learn anymore. If you want to learn how to code quickly, and have fun with like minded people, check out Lighthouse Labs.
What has been your most memorable moment at Lighthouse Labs so far?
The day the students made the photo of me (actually Finnick Odair from the Hunger Games) with a cucumber.
What's one thing students should know about you before coming to Lighthouse Labs?
I am terrible at spelling. For some reason, I just have trouble understanding how to spell things. This usually becomes obvious pretty early in bootcamp when I try to write stuff on a whiteboard, or name a variable during a live code.