From Ski Instructor to Programmer – My Journey Back to Programming

On the surface, I have a stereotypical story for a programmer: I started programming at a young age, went to college for computer science and now I’m a senior JavaScript developer. But for around 8 years, I didn’t program at all and didn’t work in a technical field.

This is the story of how I left programming and how I made way back.

The Early Years

My parents bought their first computer, a Commodore 64, when I was 5 or 6.

The Commodore 64 (C64) didn’t come with any built-in programs. You could run programs off of cartridges and cassette tapes, or later, 5.25″ discs. The C64 also came with a BASIC interpreter that you could enter programs into.

I still remember watching my dad type that first program. The first one was simple:

10 PRINT "Hello World!"

I remember not being very impressed that this just printed “Hello World!” to the screen. The next program added just one line:

10 PRINT "Hello World!"
20 GOTO 10

This causes an infinite loop to print “Hello World!” over and over. I thought this was pure magic. The idea that you could tell the computer to do something and it would do it forever was amazing.

I soon got into BASIC programming. I don’t think I ever tried to come up with my own ideas but I got really good at typing up the code I found in programming manuals and C64 magazines. Eventually, I even learned to save my work to a cassette tape so that I wouldn’t lose it when I turned the computer off.

College

By the time I got to college, I knew I would be going to learn about computers. It was only 1997, but I had discovered the World Wide Web and enjoyed browsing it and the content on AOL. I even took a Visual BASIC programming class in high school and enjoyed it a great deal.

I was accepted into California State University, Chico with a good scholarship and they had a well-regarded computer science department. I excelled in college, making the dean’s list a number of times, and graduated Cum Laude. I also served as a TA for a remote class (Data Structure and Algorithms), built a tool for another professor and organized sponsorships for an on-campus club called Chico State Linux User Group (CSLUG), which would foreshadow my later work with Tahoe Silicon Mountain and TahoeJS.

Leaving Programming

The summer of 2000, before my senior year, I had an internship with a medium-sized company in Nevada. I enjoyed the work but I wasn’t ready to go back to small town life.

I also interviewed with some big companies in Silicon Valley, but I couldn’t picture making a life there. The city was too big and the culture too buttoned down. I couldn’t identify with the people that I met in either place.

And, to be honest, by this point, I was burnt out on programming. Every time I sat down to code, my mind would wander and I couldn’t focus. Fortunately, I didn’t have very many technical classes my senior year.

Yosemite

After graduation I ended up moving to Yosemite National Park because I’ve always been passionate about the outdoors. It was a great experience for me.

It was there that I learned to ski and snowboard, and I did a lot of rock climbing and hiking. I worked in a restaurant in the summers, and taught skiing and snowboarding in the winters. Growing up, I was always a shy kid. Those jobs helped me become comfortable speaking in front of large and small groups, approaching and meeting new people and working in a dynamic environment where you have no idea what the day will be like when you wake up.

In Yosemite, I found out that I love to teach. Initially, it was skiing and snowboarding but later I found other avenues where I could share my experience and help other people “get it”.

I also met my future wife, Rachel, in Yosemite.

Rachel and Garrett Yosemite

Rachel and I on our first date in Yosemite

After several years in the Park, Rachel and I moved to Truckee, CA. In the winter, we still taught skiing, and in the summer, we both worked at a small environmental consulting company.

At this company, I worked with a development company on the environmental compliance of their construction projects. Basically, my job was to keep their contractors from breaking any environmental regulations. I also dipped my toes back into tech when I started building maps and looking at using databases to track defects in enormous construction projects.

Returning to Programming

In 2009, the housing crisis hit the Tahoe area and they stopped work on the construction projects that I was overseeing.

So I took a non-technical job with a real estate valuations company, Clear Capital. It was there that I decided to get back into programming.

I interviewed with the VP of Technology but they only wanted experienced developers. That led me to buy books on programming in ColdFusion (one of the languages they use) and start learning.

The employee tools at Clear Capital are complex and I was always finding bugs and opportunities for improvements. After keeping a long list of these ideas and sharing it with my manager, they decided to move me from a non-technical role to software quality assurance. I quickly found that I’m pretty good at breaking websites and I loved that I could help improve the product, but my primary interest was still in software development.

My First Big Side Project

In 2010, I got the opportunity to take on a side-project and rebuild a popular, local site, Magnifeye.com, which shows traffic and road conditions in the Lake Tahoe/Truckee area. When I started the project, the site was outdated and disorganized. It was cluttered and hard to read. Data on the site was rendered dynamically from CalTrans information but it wasn’t saved.

So I taught myself PHP, JavaScript and MySQL and I got to work. I completely rebuilt the site and many of the underlying services. I persisted the data to a database and created several maps showing the location of traffic cameras and traffic speed sensors using Google Maps. This was in the days before Waze so it was pretty exciting work. CalTrans has since rebuilt their site and now uses many of the same features.

Magnifeye.com logo

My first, and last, attempt at logo design.

Back at Clear Capital, I had started fixing minor bugs, building custom test suites, and writing ad-hoc SQL reports for business intelligence. With all of that experience, I was able to finally transition to a full-stack developer position in 2013.

Growing as a Developer

Soon after I started as a full-stack developer, my team decided to build a small project with a, then relatively unknown, library, AngularJS. Since Angular was so young (v1.0.6), no one at the company had any experience. I spent a lot of my free time building small projects with Angular.

My [former] co-worker, Jordan, decided to start an after work event (that would later turn into TahoeJS) and I became a regular speaker, demonstrating my small projects and talking about what I’d learned about Angular and JavaScript.

It was these experiences, that helped unite my passion for teaching with my love of programming.

As I continued to grow as a developer, I found my self drawn to working on the front end. I love building powerful UIs that help make complex workflows simpler for users. After spending a couple years as a full-stack developer, I transitioned to a job as a UI developer and, more recently, I have moved into a senior mobile engineer position working in React Native.

And so that’s my story. It’s been a lot of hard work to get into programming but I’m fortunate that I’ve had a lot of support throughout my life that has brought me to the point where I can have a great career in a town that I love.

2 Comments

  1. Ashok on June 8, 2019 at 3:25 pm

    Well written article . Thanks for sharing your own experience. It’s really a tough journey what you had and it reassures everyone who read this that anything is possible if we have our mind and heart into it. Wish you to achieve more and more.

    • Garrett McCullough on June 23, 2019 at 3:03 pm

      thanks for reading, Ashok!

Leave a Comment