How, after a 15 year hiatus, I rebooted my developer skills
Is it possible to relearn coding skills 15 years out, in a world where a developer’s skills can become obsolete in a year? In this blog, I will discuss my seemingly backwards career journey.
How I got into software development
I discovered programming in high school when I was 16 years old. It was late in 1979. This was before the internet and even before people had personal computers in their homes, but it was the dawn of the PC era. Just a two years before, Steve Jobs and Steve Wozniak introduced the Apple II, a revolutionary computer.
There was no such thing as Windows. Bill Gates and Microsoft had yet to ink a deal with IBM for their Disk Operating System that would set them on a rocket trajectory of success.
I was fortunate that my high school in Huntington, NY had a new computer lab and a new class in programming. However, the class was taught by the chemistry teacher who knew virtually nothing about programming and so we had to teach ourselves, and the teacher. The computer lab was filled with Commodore PETs, which began selling in 1977. The PETs had 4k of RAM, 1 Mhz CPU and no hard drive. Programs were written in an early version of Microsoft BASIC and were stored on cassette tapes.
I was a geek and spent as much time as I could in the computer lab. Eventually, I was allowed to take a PET home for the weekend, which I did fairly regularly. This was the time of video game arcades, and some games were making their ways to these rudimentary PCs. I wrote my own version of my favorite one, Space Invaders, in which one could use the arrow keys to move a gun left and right and the space bar to fire shots at invaders dropping down from above. I also wrote a program that when running, simulated the PET start-up screen with a blinking cursor and ran this on every PET in the lab. The lab assistant was dumbfounded as to why the machines were ‘freezing up’, but found a reboot did the trick. Haha.
As I was thinking about college, I was thrilled to discover that I could major in something called Computer Science, and I could get paid to program. Colleges and businesses in that time used mainframe computers as PCs were considered toys. My first job after college in 1985 was at one of the largest Wall Street investment banks called Drexel, Burnham, Lambert coding in COBOL and CICS on the IBM mainframe.
Over the years I worked at many large companies such as HBO, applying my programming skills, happy that I could make money doing something that I loved. In those days there was not much off-the-shelf software. We had to write all the software the companies used. For HBO, I worked with a small team that created a billing system and an accounts receivable system.
I learned early on that I had to constantly learn new skills to keep up with the pace of change. I think in my life I have coded in 16 different languages. By the early 90’s the business world had realized the potential of the PC and smaller servers vs. mainframes. Packaged software was becoming a thing and I realized that I had to choose between being the guy that implemented software packages or being the guy that wrote software packages. I choose to write them because that was more fun.
I even started my own business with a friend in the late 90’s where we offered neighborhoods the ability to have a website and maintain it themselves. An early Software as a Service (SaaS). The company was called Hometown Technologies and we had dozens of neighborhoods online over a decade before NextDoor became a thing.
Around 2003, it was time to choose between management or staying a programmer. I had a family with 3 small children and decided I could make more money in management. I have since wondered if that was the right choice. But over time I got pretty good at it and learned management and leadership skills that brought me to the Vice President of Development level in 2014.
Moving away from coding
When I first became a manager, I tried to keep one foot in the programming world and one in management of other programmers, but eventually I found I did not have the time and needed to focus on helping others develop great software. This was rewarding in its own way. I always loved creating something from nothing, a virtual engineering feet, where people could use what I created to do something useful in the real world. As a manager with a team developing the software, I was still doing this, but in a bigger way!
When I jumped off the programming train around 2003, I had been very actively developing applications for the world wide web using technologies like Microsoft’s Active Server Pages (ASP) and Microsoft Visual Basic, which generated HTML that displayed in browsers.
But as any programmer knows, your programming skills become stale in 6 months and outright obsolete in a year or two. I thought I could keep my programming skills up-to-date working on home projects but with 3 children and a busy career, there just wasn’t time.
It would be 15 years before I rebooted my development skills.
Developer reboot
In 2017 my wife and I made a huge life-changing decision. We decided that when our youngest child graduated high school in 2019, that we would quit our jobs, sell our house and nearly all of our possessions and tour the country in an RV for a year. I had this idea that after the year, if I could regain my development skills, that I could get a remote job in development again and perhaps keep our nomadic life going beyond a year. After all, no one would hire a remote Vice President of Development or even a remote manager, right? Such jobs would be extremely rare because companies wanted their leadership in the office.
And so, in early 2018, I began the reboot process. I started with internet development basics of HTML, CSS and JavaScript. I had last programmed these 15 years earlier and much had changed. I started with a book and internet research. But how I really learn best is by doing, so I selected a project. I would create a responsively designed web site that we could use on our phone or laptops to score a card-game called Clagg that my family enjoyed. It was a real pain to score this on paper. The site still exists at http://davestaud.com. It looks pretty ugly, but it does the job!
My team at work was using a Single Page Application (SPA) JavaScript framework called Angular and I decided I wanted to learn that. It was so different than anything I had programmed previously. Remember, I jumped off the train with ASP and Visual Basic, programming languages that had a starting point and progressed logically from one step to the next. But now most programming languages were object-oriented and Angular was asynchronous in nature. I was familiar with these concepts, of course, but had no first-hand experience.
I purchased an Angular training course from Udemy to start. There was a LOT to learn, but when I felt sufficiently confident to try a small project, I started by looking for a non-production need at work where I could write something at home in Angular that could serve a purpose at work. I also realized that I needed a server component that could call some APIs and decided to write it in Node.JS. It took some time since I did the work after work hours, but eventually I finished it up and introduced it to the team, where it became a useful utility for Level 3 support.
Accelerated Learning
The reboot process didn’t really take off until we began our RV journey in the summer of 2019.
This was a once-in-a-lifetime opportunity to spend time learning and having fun developing, without any pressure! It felt like high school again. I didn’t have a job and had few responsibilities. We spent much of our time traveling, exploring, and hiking, but there was still a lot of time for development, about the same amount of time as a full-time job. And so I picked a challenging project. I would create a Progressive Web App (PWA) that would be a social network for RVers called RVLikeMe.com (I have since taken it down so no need to look). I would develop on the MEAN stack (MongoDB, Express, Angular, Node.JS) and would host it on AWS.
Other than my small experience with Angular and Node, all of this was completely new to me. I constantly ran into blockers that required me to go down huge time-sink rabbit holes of learning that seemed tangential but were absolutely necessary. Thankfully, the community of developers available these days is amazing. It seems that any problem you have, someone else has already had and there is a post on StackOverflow about it. Other resources I used included vendor documentation, YouTube videos, blogs and online training. Another technique was to blog myself, which is what this website is all about. Not only was I helping others, I was also helping myself nail down new concepts by creating and publishing small chunks of code for a specific issue.
I treated the RVLikeMe.com project as if it would be huge one day with many team members and millions of users. I researched and used only best practices for clean code, performance, scalability, and security. I used Git and GitHub as if I were on a team. I made tons of mistakes and had to regularly refactor my code to make it better. The project took me the entire year to complete, and I loved every minute of it!
Time to get a job again
By the summer of 2020, I began looking for a remote position as a Sr. Software Engineer. Thanks to the pandemic, there were plenty of remote engineering positions! But, it turned out that even though I had these modern development skills and a lifetime of development experience, it just was not enough for companies to get their heads around my strange situation. 15 years in leadership. A VP. And now wanting to be an engineer again? And from an RV traveling the country? Plus, there were still many things I needed to learn to be the best Sr. Software Engineer I could be.
By the fall of 2020, I abandoned the idea of being an individual contributor and looked for a Software Engineering Manager position where I could be hands on and really close to the development and responsible for the design. I was surprised to find out there were many Manager, Director and even VP remote positions available because of the pandeamic. Maybe I could get a manager position and keep traveling after all.
Finally, in October 2020 I took my first remote job as a Software Engineering Manager again. I had two small teams of young engineers and a familiar technology stack of Angular, Node and AWS. During this time, I became an AWS Certified Professional to beef up my cloud skills. It was a fun time, and I learned a lot in my 14 months there.
Soon after starting my remote position, I found that working in the RV, while possible, was not a great environment for working. So, we found another way to continue our nomadic lifestyle. We sold the RV and Jeep, and bought a pickup truck and small cargo trailer and began traveling from Airbnb to Airbnb, staying in each for a month.
BTW, if you are interested in such a lifestyle, I wrote a book about it you can buy from Amazon: Working on the Move: A guide for remote workers seeking adventure. It has a companion web site called WorkingOnTheMove.com. Of course, I had to write the web site in Angular and of course there was more to learn such as Search Engine Optimization, Angular Universal, dynamic meta data for link preview and more!
In December 2021, I took a remote Sr. Director position that requires significant hands-on architectural, design and coding skills. It is the best of both worlds because I have a small development team with no management layers between myself and the team, and so I can use my leadership and management abilities as well. I love my job and could not have gotten here were it not for rebooting my development skills.
Conclusion
If you have a passion for coding, but have gotten out of it for whatever reason and want to go back, my experience shows you that it is possible to reboot your development skills and have a more satisfying and exciting career. These days, there are so many online resources from Udemy to YouTube and sites like StackOverflow and social network groups that can help you figure things out.
Maybe the whole take-a-year-off-in-an-RV thing isn’t for you but if you really want to reboot your development skills, you can do it. Take your time and have fun. You never know what could happen!