My Story

Learning to make websites for fun

Like many, I started making websites in my early teens—partially for fun and partially just to see if I could. I’d spend hours in Microsoft FrontPage (this was circa 2006, mind you) playing with the various wizards and GUI options, more than a little impressed with myself that I’d made a real website all on my own. Granted, it was very basic and would never see the light of the real world, but there was something about that small achievement that I found alluring. Suddenly, the world of big-company technology didn’t seem quite so distant and out-of-reach. Big, professional companies may have employed entire teams of experienced programmers far smarter than me, but at the end of the day, the technologies they used could be learned and used by anyone—including me, a curious teenager sitting there in his bedroom wondering what could be.

As time went on, I continued venturing into this captivating realm, learning to perform the various functions that the GUI tool afforded me. Eventually, I grew discontented with the limitations of a GUI tool and began to branch out beyond its limits, modifying the HTML source code directly. By using snippets of JavaScript code from sites I found online, I was able to sprinkle bits of interactive functionality into the sites I developed.

Maintaining a website wasn’t without its challenges though. If I wanted to show the same content on multiple pages, that meant I’d have to manually keep the same content updated in several places. That just wouldn’t do. Surely, I thought, there had to be a better way. And what if I wanted to have a contact form like I’d seen on other websites? How would that work? Each question lead to the next, and before long I began teaching myself PHP using various websites and tutorials I found online. Out with FrontPage and in with “hand-coding” HTML, CSS, and PHP. I found a text editor that even highlighted the code syntax to make it easier to read. (That sounds amazingly basic now, but at the time I thought it was rather cool, especially coming from the “code view” in FrontPage.)

In time, I found that while I enjoyed writing source code directly, sometimes other people would need to update the websites I built. Making a simple text change or uploading new content to a website shouldn’t require someone to have the same technical skillset as me, I thought. After all, that wasn’t the way “big companies” did it, right? By this time I’d gained some experience making dynamic web pages that loaded content from a MySQL database, but lately I’d been hearing more about “content management systems” and it seemed like that was how “big companies” did things. I tried Mambo (this was before Joomla was forked) but it seemed difficult and for a while I gave up, returning to hand-crafted PHP and SQL statements. A while later, I tried again, but this time successfully with Joomla. A few sites later, I came to appreciate Drupal’s codebase and functionality, so began to learn that technology more and use it on nearly every site I built for several years.

Discovering a way to make money

It was somewhere around this time that I figured out other people needed websites for their businesses but didn’t share my passion for the technology and so were willing to pay me money to make websites for them. Still being a teenager, I thought that was pretty cool. A way to continue doing what I enjoyed, but people would pay me for it? Sure, I thought. Sign me up.

Over the next few years, I continued making websites for family friends and acquaintances I met through college. Those clients liked what I did for them and referred others. The process repeated, and eventually I had several clients of various sizes and industries. After graduating from college, I continued freelancing full-time. It was going well, but I wanted to do better—to be better.

Uncovering true business needs

I began reading everything I could on business and marketing, especially as it revolved around web design and getting more clients. I came to understand that the small business clients who hired me didn’t need websites as a core business objective. What they really needed was more customers. A website was just a means to that end. A good one, perhaps, but still just a means.

After uncovering the true needs of my clients that lay behind their stated needs, I began to read everything I could to learn more about how to help them grow their businesses. It was at this point that I began to have fundamentally different conversations with prospective clients. No longer were the conversations focused so much about technology details like which CMS had what features or how easy it would be for them to update their website. Instead, I was focusing on their true business needs and how I could help solve them. The fact that I was using technology to do that was now just a detail.

Growing to the next level

Eventually, I found myself at a crossroads. On one hand, I enjoyed working for myself and the flexibility it provided. On the other, I felt it should be more profitable. After much consideration, I decided to join a business bootcamp program I’d found online—one aimed specifically at freelance web developers just like me. I applied myself to this program fully and gave it everything I had. In turn, I learned a lot and gained valuable experience that still to this day shapes my understanding of the relationship between business and technology. No longer was I going it alone; I had a group of peers just like me all across the country (and the world, for that matter) who were facing many of the same issues and solving the same basic problems. Together, we were smarter than any one individual among us and having this “mastermind” group proved invaluable in positively altering the trajectory of my career.

Prior to joining this program, I understood that my clients had business needs that were related, but ultimately separate from their technology needs. This program exposed me to a firehose of information that built upon that key distinction and helped me become better at both. There were weekly trainings and virtual meetups as well as a vast library of content from all sorts of industry experts and thought leaders. I learned much about both the business of web design and the design of business. I learned that people and processes were just as important (and sometimes more) than a specific technology choice. I also learned to create vastly superior technical assets than I’d ever produced before.

Through this experience, I stopped thinking of myself as just another freelancer and instead as a virtual agency owner. I began to contract out work for things like UI design and web copy writing. I wasn’t just a web developer anymore; I was a business owner. It was this mindset shift that was required to reach the next level.

Re-focusing on the technology

After a while, I was much better at both having big-picture business conversations and implementing the lower-level technical details. I was surrounded by group of industry peers second to none, but ultimately found myself at another fork in the road. If I continued pursuing the virtual digital agency path, it would mean less and less technical work over time and more and more business/sales work instead. I decided that although I enjoyed participating in and even leading those big-picture business conversations, my heart was still in the lower-level technical details that originally drew me into this industry. After much soul-searching and discussion with close family, I decided it was time for a change.

After a short while, I found myself in my first full-time “pure development” role as “Web Developer” at a locally-based company. (What I’d later learn the industry calls an “individual contributor” role.) While there was naturally a bit of an adjustment from the many hats I wore previously, I adapted quickly and found this was the change I’d been looking for. I still participated in big-picture business conversations when the opportunity arose, but my day-to-day efforts were focused on digging deeper into web technologies and solving technical needs. I understood the greater business context in which those technical solutions lived, but I no longer had to concern myself with the hassles and stresses of day-to-day business operations and sales. Instead, I could focus on the technology itself—a welcome change of pace from the entrepreneurial pursuits of the past. (The new hours were nice too—I now had 2-day weekends every week!) After a brief ramp-up period, I quickly began working on initiatives to improve developer productivity as well as refine my frontend development skillset, learning things like ES6, Gulp, Docker, and eventually React along the way. This was what I’d been searching for—a way to solve high-level business problems by diving deep into technical solutions.

Manager vs individual contributor role

About a year-and-a-half into my first “individual contributor” role, I was offered the chance to lead a new team to build upon some of the successes I’d demonstrated as an individual contributor. I was excited about the new challenge, and once again began to dive deep into learning everything I could about how to succeed in my new role. This time, instead of diving into a specific technology, I dove into software development processes—specifically Agile and DevOps.

Over the next year, I read many books, articles, and blog posts on concepts ranging from software engineering management, to agile software development, to DevOps. Along the way, I was privileged to have the opportunity to attend DerbyCon IX: Finish Line, which was a great experience that allowed me to both learn new things and be exposed IRL to the wider industry that until then I’d only found online.

After a while, I found myself once again at a crossroads: Should I focus on being a better manager, or dig deeper into the technologies itself? This time, I found the question a bit more difficult to answer. What I really wanted was a way to dive deep into low-level technical details at times, but still be involved with big-picture strategic conversations and technical leadership. Eventually, it became clear that what I was really after was a “Staff+” track as the tech industry would call it. A few years and a job change later, I eventually achieved this goal, and couldn’t be happier with the decision.