I’ve told parts of this story in presentations in the past, but this is the detailed version of the key moments throughout my education and career that have led to where I am today.
So, how exactly did a kid growing up in small town rural Canada find himself at one of the most influential technology companies in the world?
Growing up in Canada’s Chocolate Town
I grew up in a small town in Canada in the province of New Brunswick. New Brunswick is quite rural, roughly about 95% trees and the largest city is around 90,000 people.
My home town of St. Stephen, also self-titled as Canada’s Chocolate Town because there’s a chocolate factory there, has a population of around 4,000 people and is the largest town in its’ county of Charlotte County. My high school graduating class of around 100 people were nearly all the same people I started grade 1 with.
The town is situated at the southern tip of the province just north of Maine. You can actually walk or drive across a bridge to Calais, Maine within 10 minutes from the house I grew up in, which I did many times a day at various points in my childhood. We didn’t have a movie theatre, but there was one in Calais. We didn’t have a McDonald’s, but there was one in Calais. My parents would cross for cheap gas and we took the occasional family vacation through the New England states.
Growing up there in the 80s and 90s, it was incredibly safe, we never locked our doors and I never locked my bike up, I’d just throw it on the lawn. My early childhood was a lot of family time, a lot of sports, camping, fishing, and pond hockey. Looking back on it, it was fantastic and I’m very thankful for all that my parents did for us.
However, high school was more of a challenge. As I’m sure many teenagers full of hormones and emotions feel, I started to feel more and more frustrated with being trapped in this small town. I felt stuck and like I was just waiting for graduation so I could start my real life.
Luckily this time period coincided with the desktop computer revolution, the commercial birth of the Internet, and Windows 95. Up until this point, most of my world was the area I grew up in. Suddenly having access to something that allowed me to look up anything I wanted to learn about was incredible and freeing. I also found I had a natural talent for computers and that combined with access to the greater world through the Internet, I started to spend every minute on the computer.
Back in those dial-up Internet days, you only had so many hours of Internet a month, which was a challenge because I wanted to spend all my time on there. Luckily, the Internet was free from 12am to 8am, so I started waking up at 5am everyday before school to use the Internet for free. I think my parents thought I was crazy, but they likely figured I could be doing far worse things with my time as a teenager.
I was drinking from this new found knowledge firehose called the Internet. I started building websites, which inevitably led me to dabbling with JavaScript so I could make them do cool things and eventually Perl to make them dynamic.
I still felt stuck, but I had an outlet and a way to connect with other curious individuals.
From shy introvert to the ACM ICPC World Programming Finals
In the Fall of 1998 I started my undergraduate degree in Computer Science at the University of New Brunswick (UNB), about an hour and a half drive from where I grew up. I was initially excited, this was what I had been waiting for through four years of high school. Unfortunately, the first few years were really tough and not tough from an academic sense, but tough on me emotionally. I had become so shy and introverted that through my first two years at university I hardly spoke to a single other student.
Fortunately, UNB had a co-op program for Computer Science students where students could leave school for 4 to 8 month periods to work at companies in the real world. Halfway through my second year, I managed to land my first real engineering job at a pre-dot-com boom startup called icGlobal.
This was an amazing experience for me to be actually working on a product and I started drinking from the knowledge firehose once again. I worked all the time, I was the first person to arrive, often the last to leave, I worked weekends, and when I wasn’t working, I was doing side programming projects.
This experience helped build a lot of confidence in my abilities. I still remember at one point the founders of the company holding a town hall meeting with all the engineers telling them that the software was far too buggy and that all development on new features would stop until the bugs were fixed. All we did for a week was fix bugs. At the end of that week I received an email from one of the founders (which I kept for years), telling me that he had noticed that I had fixed more than 3 times as many bugs as the next closest person and that he wanted to personally thank me for all the work I put in.
Throughout the next 4 years of my life in New Brunswick every job I got came from the relationships I built at icGlobal.
My life as a competitive programmer
After my workplace confidence boost, I came back to university significantly more motivated and happy.
Returning school, I took a class in Data Structures and Algorithms, typically one of the more dreaded undergrad classes. My class was taught by a PhD student by the name of Oleg Golubitsky. Unbeknownst to me at the time, the mentorship and eventual friendship I developed with Oleg would help shape my career for the next 15 years.
Oleg was like no one had I ever met before.
First of all, he was brilliant. He started university at 15 and did two PhDs simultaneously in two different universities in two different countries at the same time. He was only a few years older than me, and he was the first person I could really talk to about science, math, and various ideas that I had.
The next year, Oleg asked me to come to a try out for a competitive programming team to compete in something called The ICPC International Collegiate Programming Contest. He had competed twice in the world finals of this event as a student for Moscow State University and he was going to coach a team. UNB had never made it past the second round of this competition before.
I went to the try out and over the course of three hours proceeded to completely embarrass myself. I didn’t solve a single problem. I was so angry with myself I couldn’t sleep that night. The following week every moment I had, I practiced and I came back the next week and tried again. And then the next week and the next.
Eventually, I ended up on UNB’s top team along with Graham Fyffe and Nathan Scott. Graham had competed a bunch in the past and was a really strong programmer.
The first round of competition for us was to go up against teams from all the Northeastern Canadian provinces. It was an incredibly frustrating experience, we didn’t work very well as a team, and after the competition I left immediately and didn’t bother to stick around for the results. It turned out that we had actually finished third and would be moving onto the next round in Rochester, New York, going up against all the best teams from the Northeastern United States and Quebec. This meant we’d be competing against schools like MIT, Harvard, Brown, and so on.
I remember leading up to the competition, the UNB professors were excited that we had made it this far and the general byline from our department was that we were lucky to even be in the same competition as schools like MIT. For me, I hated this defeatist attitude and all it did was light a fire under my ass to train harder.
Oleg started having us train as a team twice a week and in between team training, I was working solo on solving problems. I was putting everything into getting better.
And all that training paid off. In November 2002, we beat every school but Harvard (including MIT) to land an invitation to the 2003 world finals in Beverly Hills, California.
Participating in those finals was an incredible growth experience for me, meeting young brilliant engineers from all around the world and traveling to Los Angeles. I had never met a single person in my life in New Brunswick that had been west of Toronto, let alone California.
We didn’t do that well in the finals, but it was an amazing experience. Graham graduated and I was more motivated than ever to get back to the finals. I also wanted to prove that I could do it without Graham’s help. Oleg also moved on, and without a motivated faculty member to help out, I founded the UNB Programming Club to recruit and train other students to compete in these competitions.
I started going around to classrooms and explaining the competitions and inviting anyone to come try out. I wanted to recruit first year students because even though they couldn’t really code yet, I knew the top teams in the world start training in high school so if we wanted to be competitive we needed to start younger.
Although I didn’t realize it at the time, leading the programming club was really my first experience with developer relations and I loved it. I loved trying to inspire other students to care as much about these competitions as I did and I felt like if I could train myself into being competitive at this thing, I could train anyone to do the same.
The following year we made it back to Rochester to compete against the big Ivy League schools but this time, we did terrible. I again felt super embarrassed and angry with myself, which ended up motivating me even more. Nathan and I started training all the time and we eventually met another student who was equally motivated, Aaron Small.
Again, all of the training paid off.
In my third year of competing, in the first competition, we solved all the problems an hour before the competition was complete and just had to hang out for an hour. The next closest team only solved two problems. We traveled to Rochester again and during the five hour competition, I was probably the most focused I’ve ever been in my life. This time we beat every team but MIT, tying them in problems solved, but they did it in less time, but it didn’t matter, we were going back to the world finals, this time in Shanghai, China.
If 22 year old Sean thought Los Angeles was eye opening, well, China was a whole other universe. It was amazing to be there and again, meeting engineers from all over the world was incredible.
My first attempt at Google
In the Spring of 2005, I had competed in the world programming finals twice and I was graduating from my Masters degree and trying to figure out what to do next. I knew I could get a job locally, but I felt like that would be too comfortable, I wanted to push myself and do something different.
Because of the programming finals, I had offers to interview at both Microsoft and IBM, but at the time, I wasn’t super interested in those companies. However, in 2005, Google was the hottest company in the world and a company I was fascinated by. Everyone and their dog wanted to work there.
It really felt like an impossibility for me because it was so far away and I didn’t go to a fancy school, but I did have the programming finals experience that I thought might catch their eye. I ended up applying.
Back then, Google only had one role that you applied for and that was Software Engineer. They only accepted a resume in HTML format, so I went online and found a Doc to HTML converter, converted my resume and submitted it.
Unbelievable to me at the time, the next day I received a call from a recruiter who asked if I was serious about applying. I of course said yes, and that was the start of my interview process. I went through several phone screens and was eventually invited to an on-site in Mountain View, California.
I flew out to Mountain View and went through a grueling full day of interviews. At the end of the day, I was exhausted but super excited, I thought I had killed the interviews. I started to think that this would be my life. I spent the weekend in Northern California, traveling to San Francisco and Monterey for the first time and headed back to New Brunswick eagerly awaiting the official good news.
Several weeks later I received an email from the recruiter letting me know that they were passing on making an offer.
At the time, I was pretty shattered by this. I couldn’t understand the decision and I also had to face dealing with the embarrassment that a lot of people knew I was going out there to interview with Google and assumed I’d get the job.
Years later, looking back at this experience I realize now how woefully unprepared I was for those interviews. I had no idea how to prepare for the kinds of interviews that top-tier tech companies put you through. But luckily I was able to later use this disappointment as motivation.
See you in a few years Google, and hello PhD
Google didn’t work out, so I decided to pursue a different path. I packed up my limited possessions and moved across Canada to the western most point, Victoria, British Columbia to start my PhD at the University of Victoria.
I spent 4.5 years in Victoria, working in a Software Engineering and HCI research lab. During this time, I founded another programming club and started coaching University of Victoria students in how to prepare and compete in the ACM ICPC competitions. The school had never had students compete before, but in my second and final year as coach, the team beat all other schools in the West Coast regional except the top teams from Stanford and UBC, both schools with significantly larger computer science programs. Eventually, two of the students I coached went onto careers as Google engineers.
During my PhD, I was fortunate to collaborate with some research scientists and professors at Stanford University. As I finished my degree, they recruited me to do a Postdoc at the Stanford Medical School working in Bioinformatics.
I had always dreamed about attending a university like Stanford and at that time, I wanted to pursue a career as a professor or research scientist so this was an amazing opportunity to open doors to that career. So in January of 2010, I packed up a UHaul and drove from Victoria to Menlo Park to start my life as an academic.
Stanford University and founding a company
In January 2010, I started as a Postdoc at Stanford University’s medical school. My PhD had been focused on designing models and software for solving large data integration problems with semi-automated systems. There’s a lot of data in biomedical research, so that’s where I came in.
I think my parents were super proud. It likely helped give some context for the work I did, even if they struggled to describe it to people when asked about what I was doing, they could say I was at Stanford University and people knew what that was.
About 6 months into my Postdoc, I was approached by two other students who I had met through a local gym. One was doing his MBA and the other was at Stanford’s design school. They had raised some capital to start a company focused on bringing technology to the blue collar staffing industry. They were looking for any engineer they knew that might be able to help them make their idea into a reality.
I initially got involved part-time, but as I started to build more and more of the system, I was spending nearly all my time on it. And I loved it. I loved building something that was solving a real world problem that I could see and I could see the potential positive impact this could have on people’s lives. Giving workers in these fields more flexibility and autonomy.
So after 12 months at Stanford, much to the initial disappointment of my parents, I left and joined as CTO and co-founder of what at that time was called WorkerExpress.
Failing miserably as a founder
Shortly after leaving Stanford to do the startup full-time, we raised an additional round of financing and started expanding our workforce. Over the next 9 months, we grew to 15 people and somewhere along that way we realized staffing was really hard and we kind of sucked at it :-).
From a technology standpoint, our tech at the time was pretty revolutionary with a heavy focus on mobile in a pre-smartphone era, but we were kind of terrible at the actual selling and execution of a staffing company.
Realizing this, we attempted to pivot into the permanent hire space, but as we floundered around trying to redesign the product earning zero revenue, we burned through a ton of our money doing all the classic startup mistakes.
In October 2011, after failing to raise more money, we realized our only course of action was to let everyone go in the company and try to grind out a new business with the money we had left. So we let everyone go in one day, including one of my best friends who I had recruited and two friends from Canada who had just moved to San Francisco to join the company. This was day two for them.
Two weeks later, one of my co-founders quit and a few weeks after that, the one employee we kept informed us he could not make a customer meeting because he had a job interview. We ended up parting ways and that same day we went and re-hired the Canadian engineer that we had let go on his second day. He happened to be sleeping on my couch at the time because he had no where to go. His wife, who we had also hired and let go eventually found her way to Google as a UX researcher.
The three of us essentially threw out everything we had and started from scratch. Over the next 9 months we met with any small business owner in San Francisco that would talk to us, interviewed them about their current hiring process and pain, built a new product, iterated with the small business owners, and somehow managed to get enough traction to raise money from Andreessen Horowitz to save the company.
Over the next several years, we worked hard on trying to make Proven a big success. We really wanted to try to bring new technology to a field of work that traditionally does not have technology built for it, that is, high turnover, hourly wage jobs like at restaurants and hotels.
After raising a few more small rounds, we realized that we weren’t going to be able to sustain the business by continuing to raise capital. We needed to focus on making money with a sustainable business model.
In the job space we operated in, it’s largely low margin in comparison to something like tech placement, so you can’t really afford to have people selling the solution. The only option is either virality or super cheap lead generation through something like SEO. No job product in the history of job products has grown through virality (maybe LinkedIn if you consider it a job product), so we went the SEO route.
Becoming an SEO ninja
Now most startups tend to avoid investing in SEO, I think in part because it takes a lot of time to develop and when you’re looking to show numbers to secure further investment, it’s difficult to predict when SEO is going to hit. At the beginning, it’s a lot of investment and then waiting 6 months to see if it worked.
But, we had no choice. Nothing makes you focus like a lack of capital.
I once again turned on the firehose of learning and read everything I could about SEO and marketing from experts like Brian Dean and Neil Patel and companies like Moz, ahrefs, and Hubspot. I took online courses and built out a content plan to try to own keywords related to job boards and small business hiring.
And we did it, we grinded it out. With zero budget and no advertising, we captured the number #1 ranking on Google for terms like “job board” and we went from zero traffic to over 100K organic visitors a month. We grew revenue to over 7 figures, reaching cashflow positive.
Becoming the busiest unemployed man in the Bay Area
After 7 years of the ups and downs that come with running a startup, especially one that was kind of always in the grinding it out phase, I was ready for something different. I didn’t feel like I was really learning anything new and although we were cashflow positive we were also extremely resource strapped, making it hard to really expand the business.
In the Fall of 2017, I told everyone at Proven that I was moving on.
This left me in kind of a weird spot. I didn’t quite know where I fit in the world of tech at this point. I had been programming in some fashion for 20 years, but I’d never worked purely as a software engineer at one company for any significant time. I had founded a company, grew and managed employees, but we were always small so I wasn’t sure that would count for much. And I had all this marketing experience, but I didn’t think I wanted to be a full-time marketer. I was a million miles wide and an inch deep, which is not always a great thing.
I did know one thing for sure though. I knew that if I got another opportunity for a job I really wanted like Google in 2005, I wasn’t going to screw it up this time.
I immediately threw myself into interview prep. I would get up at 5am everyday and do coding interview problems and then system design problems. I took online mock interviews. I started a ton of side projects so I could learn other programming languages and tech stacks that I always wanted to play with. One week I built tetris five times in five different programming languages. I was reading books and listening to podcasts. Whenever I heard a technology mentioned on a podcast I wasn’t familiar with, I’d study up on what it is. I also spent a lot of time driving around the Bay Area meeting with different friends and connections that I had to get their advice.
My wife called me the busiest unemployed person she had ever met.
After a few months of this, I started lining up interviews. Several of these interviews came from the informal conversations I had with people where I was seeking advice and one of these people I sought advice from was my old friend Oleg Golubitsky.
By this time Oleg had been an engineer at Google for several years. We talked on the phone and he wrote me a referral to be interviewed as an engineer. Eventually I received a call from a recruiter who told me she saw my resume and thought I’d be a good fit for developer relations and I said, “Awesome, what’s developer relations?”
What’s developer relations?
She explained to me that developer relations is the engineering function at Google that builds all the resources for third-party developers to build on Google platforms and that it involves engineering, working on open source, writing, speaking, educating, and working with internal engineering and product to make sure we are building the right things to best serve the community.
I thought this was amazing, this is exactly a role built for me. Being a million miles wide is not only great for developer relations, but likely necessary.
As excited as I was for this job, I didn’t want to put all my eggs in one basket, I had learned that has lesson back in 2005. I ended up interviewing with a number of great companies and to my surprise, my prep paid off and I received offers from all the companies I did on-site interviews with.
But Google was the only developer relations role I interviewed for and after spending a lunch with the Assistant developer relations team, I knew this was a role where my breadth of experience could be best utilized.
In February 2018, I joined Google to build out their developer relations program for their business communication platform.
It’s been an amazing journey so far and I am looking forward to writing more about developer relations and the lessons I’ve learned.
Next up, I’ll be talking about what developer relations is and why it exists.
If you have questions or found this useful, let me know in the comments.