"What is most appealing about young folks, after all, is the changes, not the still photograph of finished character but the movie, the soul in flux."

Thomas Pynchon Slow Learner: Early Stories

My Web Dev Journey

What are "streetlight people"?

Like a lot of people who followed a “non-traditional” path into web development, my professional trajectory was more a gradual process of self-discovery than a tightly choreographed training montage.

And much like the World Wide Web itself, my growth as a web developer was rhizomatic; it branched out in a multitude of directions; it was full of criss-crossing paths that, with the benefit of retrospect, had something like a general direction, but only in retrospect.

There were plenty of blind alleys. There were plenty of strange digressions. There were protracted periods of time where I didn’t seem to move at all, or even seemed to be moving backwards. Throughout it all, though, the Web was always there, pursuing its own peripatetic development, somehow both serenely indifferent to my progress and yet always eager to welcome me back whenever (and whyever) I logged on to learn more.

And why did I keep logging back on? I like to think the answer was that I understood the liberatory potential of the web from a pretty early age. (I know, I know: don’t worry. I realize this had more to do with dumb luck - being born at the right time, in the right place, to the right people - than youthful precociousness.) Quite improbably, for instance, my adolescence coincided with the handful of years when the Web’s residual counter-cultural/utopian weirdness existed in an uneasy equilibrium with the rising, and much more overtly commercial, ambitions of venture capitalists, entrepreneurs, and early adopters. Serendipitously, the Web was trying to figure out who it was right around the same time I (and a few hundred-thousand-other teenagers with dial-up access) were trying to figure out who we were, too.

With the help of Altavista, Geocities, and (then ubiquitous) web rings, we put our questions on the Information Superhighway and helped each other parse the contradictory answers. Together, we discovered zines, culture jamming, online (h)ac(k)tivism, indie film, and music you couldn’t hear on the radio . Inspired by the efforts of our analog predecessors in the punk & DIY movements, we taught ourselves the basics of web development and began creating our own communities and our own content. Quite often, these formative online experiences had equally formative offline consequences - in my case, for example, my first website was an underground newspaper that got me kicked out of Catholic prep school - but conflict & personal drama were not, strictly speaking, the most formative aspects of our work. Underneath it all, I believe we always appreciated the fact the basic building blocks of the Web - the things that we were using to build other things - were freely available to anyone who wanted to use them.

Free Press (underground newspaper) masthead.
RIP The Free Press. No regrets!

I guess what I'm trying to say here is: I've always been a web developer. It just took me a little longer than most to realize it.

A young Labhrás sitting in front of an old school keyboard in an old school computer lab.
(Not pictured: MOONROCKS.)

Why did it take me so long? Again, it seems important to stress the role of circumstances largely beyond my control.

When I started college back in the early Aughts, web development, at least where I was, was very much the red-headed stepchild of the Computer Science department. Smartphones had yet to send developers on their long march through the viewports, which meant that HTML & CSS were viewed more as design tools than business-critical programming languages in their own right, a bias reflected in the fact so many professionals working in (what we would now call) "front-end development" felt more comfortable in Dreamweaver than on the command line. Studying web development at the university-level obliged you to study a bunch of other stuff, like von Neumann architecture, as well and, although it was all conceptually interesting enough, you went in with the understanding most of your courses would focus on things that were at best Web adjacent; there were little-to-no opportunities to develop your understanding of the Web as a rapidly evolving technology in its own right; and the few opportunities that did exist were, to borrow Randy Connolly's striking turn of phrase, "facing backwards while stumbling forwards."

Compounding this relatively recent problem was another, older problem: the "two cultures" problem identified by C. P. Snow way back in 1959. My academic interests weren't narrowly focused on computers & technology; I was also interested in the humanities, specifically in Continental philosophy, literary theory, avant-garde poetry, American regionalism, and Irish Studies; even more specifically, I was interested in becoming a (bonafide) professor, which meant cultivating a (bonafide) set of specializations, ideally with the assistance of a mentor who could teach me the professoriat's secret handshakes and vouch for me when it came time to apply to (bonafide) PhD programs. There were zero ongoing inter-disciplinary exchanges connecting my university's literary scholars to its computer scientists, which meant there were zero professors on campus who could credibly evaluate that sort of inter-disciplinary work. It also meant there were zero professors on campus who could direct my academic progress as someone operating at the intersection of bytes and books.

Rather than go it alone I opted, quite understandably I think, to take advantage of the academic resources already at my disposal.

Over the next few years, I gradually drifted further away from the Web and deeper into the groves of academe. My initial attempts to get into a top-tier PhD program were unsuccessful, but, after a brief interlude as an admin, many sleepless nights rethinking my application strategy, relentless networking, and somehow managing to be in two Master's programs simultaneously, the University of Notre Dame invited me to begin my PhD under the auspices of their Department of Irish Language and Literature.

Victory! Or so I thought. When I tried to renew my lease at the end of my first year, the landlords raised the rent by more than $2,000 a month. (Unbeknownst to me, the property I was living in was usually rented by the room to undergraduates, not en bloc to poor doctoral students. Now that the owners had a chance to triple their unit's monthly revenue, I had to go!) Moving out to South Bend had exhausted my savings, and the modest stipend Notre Dame gave me each month didn't come close to covering two months' rent plus a security deposit. After trying, and failing, to convince my landlords to change their minds, I quietly withdrew from the University of Notre Dame, called up my family, and asked them to lend me the money to move back to Philadelphia. Almost as quickly as it had begun, my academic career was over.

As any academic will tell you, the professional culture of American higher ed is kind of a mess. (If you don't believe me, do a quick Google search for "academia" and "failure".) The process which "prepares" you to become a professor also encourages you to conflate your personal and professional selves. Frank discussion about the abmyssal job market is discouraged, as are most attempts to chart a professional course outside the university system. For many, the prospect of life outside of academia seems all-but-unthinkable, until it becomes all-but-inescapable. Thankfully, I had some sense of this going into my PhD program, and, although I hadn't expected my academic career to collapse quite so soon, I'd already begun hedging my bets.

With the help from some friends, I was able to wrangle admission to my old alma matar's "flex track" MBA program; within a semester of starting business school, I was also able to talk my way into an MBA Fellowship, which was a Godsend because it allowed me to get my MBA for free. Less than a year after leaving Notre Dame, I'd done a professional 180. I had a new focus and a new plan: if I couldn't beat them, I was going to join them! I set my sights on a new career in the financial services industry.

Unfortunately, I hadn't anticipated the possibility that I could neither beat them nor join them. Although I graduated from business school with solid references, great grades, a somewhat unhealthy love of Excel spreadsheets (which persists to this day), and a killer origin story, most financial service firms didn't want to take a chance on a freshly-minted MBA with no prior business experience.

A screencap of an Excel spreadsheet showing a small fraction of the 552 financial positions I applied for after graduating from business school.
"If at first you don't succeed, exhaustively document everything in Excel."

Much to my chagrin, I once again found myself in professional limbo. To keep the lights on while I searched for a full-time role, I took a part-time adjuncting gig in Villanova's Department of Theology & Religious Studies teaching a required 101 course. I genuinely enjoyed the challenge of transforming something most students dreaded into an accesible and personally relevent learning experience, especially for non-Christian students, but I'd worked hard in business school to build a stable & prosperous life for myself beyond academia. Adjuncting was a dead-end, and a potentially dangerous one at that; gradually, out of sheer necessity, I began to widen the scope of my job search.

Inspiration came from an unlikely place. One day in class we were discussing the anxiety-inducing process of choosing an undergraduate major and, by extension, a career. To situate this process within the historical evolution of the American university system, I sketched out the differences between pre-professionalization and the German concept of "self-cultivation" or bildung. I'd lectured on this topic before but, for whatever reason, on this particular day, I felt compelled to share my own experiences as an undergraduate, including my near-hit of a Computer Science major. My regret must have been palpable because, after class, a young Comp Sci major approached me and offered to give me a crash course in basic coding! I gratefully accepted the offer and, about a week later, I was sitting in an empty classroom in front of my own student, walking through the first piece of real code I'd "write" in over a decade.

class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
The Bit Of Java That (Re)Started It All

This little piece of code ended up having huge implications for me and my career.

It convinced me to take (yet another) leap into the dark and start cold calling & e-mailing local tech companies. (The Web had been an integral part of my adolescence; perhaps it could be it an integral part of my adulthood as well?) My pitch was fairly straightforward: I was a part-time adjunct with ~15 hours of free time a week; I had no desire to remain an adjunct; I had a business degree; I was interested in web development; I was happy to intern anywhere in their organization they thought I might add value. To my surprise and delight, almost everyone I reached out to took the time to get back to me. I had some great conversations with some wonderful people, which pretty much all ended with the same feedback:

"You seem like a highly-motivated candidate with lots of potential, but you'll have a hard time convincing anyone to let you anywhere near a technical role if you don't know at least some code."

That was enough for me: I began the laborious process of teaching myself HTML, CSS, and JavaScript almost immediately!

I say "laborious" because I couldn't afford a coding bootcamp and was obliged to create my own curricula utilizing whatever resources were free or cheaply available. Although there was no shortage of "teach yourself to code" content on the Web, finding sources that were up-to-date and focused on methodically learning web dev fundamentals proved challenging, especially since I didn't already know precisely what "web dev fundamentals" were. Quora & Stack Overflow forums became invaluable tools, as did a "4-Ask" reading and note-taking system I developed to efficiently triage and consume the firehose of content I was now consuming.

                flowchat outlined my
My "4-Ask" Reading & Note-Taking System Click here to view a full-screen, accessible PDF of this chart in a separate window.

Staff reductions at Villanova lead to me being laid off about a semester or so after I'd begun teaching myself how to code. Mercifully, by then I'd realized there were plenty of web dev learning roadmaps available that could help me scaffold out my self-study and serve as springboards for filling in my "unknown unknowns"; less mercifully, the loss of my adjuncting gig meant studying web development took a back seat to finding a new job.

My coding skills weren't where they needed to be for a full-time web dev offer, but I nevertheless managed to find a hybrid tech/marketing/content creation role at a small coaching firm that, among other things, allowed me to apply my burgeoning dev skills to event landing pages created via Unbounce. After a year-or-so, I felt my opportunities for on-the-job growth had plateaued, so I transitioned to another hybrid role in the non-profit sector I hoped would allow me to continue levelling-up. The work was rewarding and the organization's mission was laudable but, as is so often in the case with non-profits, my colleagues & I often found ourselves under-resourced & over-worked. This left little time for developing and testing new tools, even less time for on-the-job training in web-based technologies, and virtually no time after work for self-directed study. Although I was able to identify & leverage several SaaS tools that helped us streamline existing processes, these were all WYSIWYG web apps that placed a UI between myself and the underlying code I was (still) trying to understand and master.

Although my situation was by no means dire, it felt like the possibility of breaking into web development was slipping away. I decided to take a gamble and reached out to my previous employer. Like a lot of small business owners, she was still struggling to build & maintain her brand on the web; and, like a lot of small business owners, she couldn't afford to hire an experienced dev to help her. I, on the other hand, knew enough about web development to do some things, but not enough to convince a tech firm to take me on full-time. In short, it seemed like our respective interests & limitations were well-aligned. I proposed she hire me to do web development for her business, with the understanding that, at least initially, I'd be spending part of every working day learning my craft and the remaining part of the day applying what I learned to her business.

She agreed...and thank God she did!

That single "yes" gave me permission to begin thinking of myself as an honest-to-God "front-end web developer." More importantly, it also gave me permission to place the Web at the center of my working life. Web development was no longer something I was learning "in the evenings", "on the weekends", or "in my spare time"; it was now an integral part of what I was expected to do, and to know, everyday.

This was thrilling and, at least initially, also frustrating and a more than bit terrifying. I set down a list of professional objectives I wanted to achieve in the first six months and worked hard to achieve each one, a process which quickly introduced me to the high-highs & low-lows of web development. Seemingly simple fixes or subtle UI tweaks regularly cropped up to stretch my debugging skills and remind me just how much more there was for me to learn. (On the plus side, these pain points gave me an early & abiding respect for CSS's elegance, importance, and underlying logic.) On other days, though, when I was able to to rapidly identify & fix a problem, carefully think through a dev impasse using first principles, or finish implementing a new UI idea, working with the Web felt genuinely intoxicating.

As time passed and my confidence as a developer grew, it all finally started to come together for me:

  • the research, critical thinking, communication, and pedagogical skills I'd honed as an academic;
  • the bottom-line, results-driven emphasis on process I'd acquired in business school;
  • the creative thrill of using code to build things on the Web I'd experienced as a teenager;

They all formed a feedback loop that allowed me to "earn and learn" while helping a business owner translate their creative vision into a tangible set of digital assets. In the course of a few years, I took my employer from an identikit WordPress template website, to a semi-customized WordPress site, to a fully customized site built using (mostly) core HMTL & CSS functionality, learning a ton about development while also building out my branding & web design skills along the way. Most recently, in December of 2020, I launched my first serious side-project, a community fansite for an amazing Christmas marathon I've regularly listened to for decades. The positive feedback (and insane web traffic) I received from fellow listeners was humbling, to put it mildly, as was the real sense of accomplishment I hadn't experienced since I was admitted to Notre Dame.

                screencap from the 2020 WPRBXmas listener chat showing listeners
                complimenting my work on marathon.chrisrtmas
"This is what it sounds like ... when devs cry."
A screen cap showing marathon.christmas' site traffic on 12/25/20.
#WPRBXmas Server Traffic!Click here to view a full-screen image of this screencap in a separate window.

And that brings us up to today! I've never been more confident that I'm working in the right field, and I'm so incredibly grateful to Compatible Connections for taking a chance and giving me the freedom (and concrete deliverables) I needed to move from aspiring-to-professional web developer. For the first time in quite a while, I'm genuinely excited at the prospect of what the future holds for me...and everyone else working on this incredible platform we call the World Wide Web.

My Web Dev Journey has been a long & winding one and, if I'm being honest, there are still days I wake up half-amazed at how far I've come. I know I'm not the only liberal arts major out there who's had to navigate one, two, or even three career shifts before the age of 40, so let me end with a few pieces of unsolicited advice, caution, and encouragement for anyone who may be about to embark on a Web Dev Journey of their own:

  • No matter how hard it seems, no matter how much you still have to learn, no matter how stupid you might feel, now matter how discouraged you get, no matter how little time you might have to spend learning code at any given moment: KEEP GOING. You can do this. Trust me.
  • When you're initially learning CSS, it can be challenging to come up with ideas to implement as a budding developer. Strange as may sound, the street signs you pass everyday can be a invaluable design shortcut here. Recreating them using HTML & CSS can help you apply much of what you're learning without taking on the additional mental overhead of design work. Once you've mastered the art of recreating street signs, move over to Pinterest and start searching for interesting magazine layouts to recreate using more advanced CSS techniques & tools.
  • The transition into web development takes time and, although it (probably) can be expedited with the proper guidance and planning, it can't be rushed. Why? Because there's an important distinction to be made between "knowing how to code" and "knowing how to think like a developer." If you approach development as a bag-of-tricks (e.g. snippets, fashionable frameworks, third-party tools, etc.), you'll learn how to work with code but you'll struggle to understand why code works, either in general or in specific use cases. If you're serious about becoming a web dev, be patient with yourself and push yourself to develop the latter while you're familiarizing yourself with the former.
  • The discipline, resilience, and adaptability you'll cultivate learning how to think like a developer are what make you valuable; the fluency, speed, and efficiency you'll cultivate learning how to code are what make you profitable. The latter is what will land you your first job; the former is what will sustain you over the course of your career. Don't neglect the need to be profitable, but always prioritize sources of value over sources of profit.
  • If the prospect of learning something new, everyday, for the rest of your career appeals to you, then you may (already) be a web dev. That said, there's an important corrollary to continuous learning that's often overlooked: the impossibility of ever knowing "everything" there is to know about the Web. If approached correctly, working as a web developer gets easier over time, but it will never really be easy. You can optimize for change, but this isn't a line of work (like teaching an intro-level undergrad course) where, after an initial period of intense study & practice, you can indefinitely coast on what you already know. If you're not prepared to perpetually return to a beginner's state of mind, this isn't the career path for you.