Inspired by Steph Jang’s awesome blog post about hustling her way to a job at Khan Academy, I’ve decided to write up a little something on how I found myself in a tech job after graduating two years ago with a double major in English and Philosophy. Prior to a year ago, I had no coding experience whatsoever. My privacy paranoia had pushed me to become a Linux hobbyist, so I had some limited Linux and command line experience, but that’s about it in terms of technology or computers.

I spent my four years in college writing poetry, essays on literary theory, essays on political philosophy and justice and the minimal state and anarchy, and short stories about desk jobs driving people crazy. I spent one semester in Calculus II and one semester in Statistics, another in Chemistry and Chem Lab—where I got my first C and B, respectively. All my math and sciences classes were taken in my first three semesters. From that point forward, it was humanities all day everyday. Four poetry writing classes, two with a mix of undergraduate and graduate students; three political philosophy classes (with the amazing Kit Wellmon); theory classes on Marxism and Freud in literature; philosophy of language and the philosophies of Plato and Aristotle—most of which I confuse for the other, student for teacher or teacher for student; countless weeks spent practicing performance poetry, and four or five weeks spent traveling and performing all over the country.

None of this taught me anything about technology other than it was useful for video chats when away from St. Louis, or that it was annoying when Google Docs wouldn’t work with all 20 members of our poetry group logged-in to a single spreadsheet. With my limited experience installing and using Ubuntu, Linux Mint, and finally Arch, I guess you could say I was starting from a quarter-step above no-experience-at-all? A half beat above nothing?

I spent the year after graduation working for the Admissions department of WashU (shout-out to the awesome people working there) after somehow landing the job—I think it had something to do with my final interview presentation on the newborn kittens me and my partner were bottle-raising. Nobody can resist tiny kittehs:

Newborn Jane the day Sloane found her Jane, the day Sloane found her

Admissions officer was a super cool job, and I faced a lot of challenges that made me a stronger person. I also learned a lot about what I do and do not like in a job—for one, the job required traveling for about 6 weeks in the fall, which initially drew me to the job. I found out, contrary to how I thought of myself, that I’m quite a homebody and missed Sloane and my cats way way way too much. I also discovered during application reading season, that I loved the freedom and productivity provided by working from home, and that I knew more about technology than I thought. I’d lived with lots of engineers and coders during college, and as a result had compared my skill level in technology to their far more advanced skills. In Admissions, however, I became the kind of go-to person on troubleshooting with the file-reading system, or the VPN for working from home, or for writing up spreadsheets during app decisions.

There was another catalyzing moment, that while small, sticks with me still: while traveling in Kansas City for work, I stopped at a chic coffeeshop for lunch between school visits and somehow found myself messing around on Codecademy, I think after reading some comment on Reddit claiming that everyone should learn a little bit of code. One of the other patrons in the cafe kind of looked over my shoulder and asked “What are you working on?” He ended up giving me some pointers on resources to look into and took down my email address in case I wanted to work on something down the road (sorry anonymous guy! I’ve since misplaced both your email address and your name… but thanks for the confidence boost!).

How it happened

After a stressful but rewarding year in Admissions, I decided to leave at the end of June with the intention of studying full time until I found a job. I had some savings and knew that having no job would but my back against a wall. Plus, I thought I could learn faster if my attention was fully devoted to coding. Right before I left Admissions, I found a free 3-course summer program through LaunchCode that would cover the basics of programming in Python, developing a web server, and a third option between front-end or backend specialization. I signed up, starting working through Python exercises I found online, and then when July rolled around, spent every day at my computer screen, leaving pretty much only to get groceries with my partner, go to LaunchCode classes on Mondays and Wednesdays, or visit family on the weekends.

In LaunchCode, I:

  • Refreshed my knowledge on the basics of data types in Python, Object-Oriented Programming, iteration, functions, and classes
  • Created a few toy applications with Google App Engine, including a profile page and a movie-tracking app called Flicklist
  • Built photo filters to blur or desaturate
  • Performed language analysis on free novel texts from Project Gutenberg
  • Started learning some principles of Java and building a backend framework with Java

I also got to meet a bunch of really cool people from all walks of life who were making the same decision to try out a career in technology, most for the first time. LaunchCode is a gem in St. Louis and the country as a whole and deserves all the support it gets and more. In my list above, I say that I ‘started’ learning Java—I actually didn’t finish the last module in the LaunchCode course. Having spent the last 3 months learning to code at home, looking for part-time jobs that I could balance with my coding goals, I’d grown eager to get an actual job in technology. Our finances were fine but not as good as they were before I quit my job, and I started putting some pressure on myself to apply to full-time tech jobs, just to see what employers would say.

I started working ahead of schedule on the coursework, which wasn’t tough since the course was designed for people with full-time jobs or families and I had all day every day to work. After getting a few weeks ahead on the LaunchCode work, I started working on a personal project to submit with an application to the LaunchCode apprenticeship program. See, the LaunchCode Summer of Code course was a new venture—LaunchCode’s bread and butter is as a sort of recruiter. You can apply to LaunchCode with a resume, a large coding project, and some references and they’ll work with partner corporations and organizations to find you an apprenticeship where you’ll be paid $15/hr to learn coding in a real work environment. The vast majority of apprentices placed by LaunchCode end up working full time at the company they’re placed in. This was my original aim, to work through Summer of Code as a backbone for my self-study, and to finish my application project early so I could begin the apprenticeship placement process.

Inspired by my obsession with coffee, I decided to make something related to coffee. I ended up creating Brew, a proof-of-concept site for tracking different coffee brews using different brewing techniques, water temperatures, beans, and water-to-bean ratios. It was something that I hadn’t really seen anywhere else, at least not in an easy-to-use format and with a modern design language—something part notebook, part reference manual. The project was intended to show off what I’d learned about designing a web page, setting up a backend server (in this case the microframework Flask), and implementing a database to make the site dynamic.

Shortly after submitting my application to LaunchCode, I set up an interview with Sally Steuterman, their Candidate Engagement Manager, and at the interview we worked through a few coding problems that I can’t for the life of me remember at the moment. Sally was super cool and said I had enough to move forward in the placement process, and that LaunchCode would be in touch when they found something for me.

This was right around my birthday in late September. The Summer of Code course was set to end in early November IIRC, and I’d set myself up to hopefully have an actual workplace by the end of the year. I compulsively checked my email every 15 minutes, waiting for something to come through from LC. I also began sending applications to whatever junior dev job postings I could find on LinkedIn, remote job boards, and wherever else.

Then a stroke of networking good luck came my way—I woke up one morning, shortly after my interview with Sally, with a message from my hometown friend Thomas Gardner. He’d been working as an Information Security Engineer for a couple years, having started as an intern during college. He let me know about a job opening on his team, the Cyber Incident Response Team at CenturyLink and urged me to apply. I almost didn’t—I protested that I had pretty much no experience in security, that I knew how to code but didn’t see how that would be useful in the position, that I wasn’t ready to interview somewhere, etc. But he urged me on, and a well-timed profile view on LinkedIn by one of the senior members of his team convinced me that maybe I should give it a shot. I had a friend on the inside, after all.

I attribute my not-complete failure in the interview to the fact that I’d been without a job for about 4 months and therefore had nothing to lose, and the fact that I’d studied up on the common port numbers and their associated protocols. I probably could’ve spent more time learning about actual security practices (d’oh), but lo and behold I survived the interview in one piece, drove the 20 minutes back to my house with a huge weight off my shoulders, thinking “There it was. My first technical interview. That wasn’t so bad,” fully expecting to endure many more such interviews in the coming months. Well, the manager of the team called me back the next day and asked me if I still wanted to work there.

Why I think I didn’t crash and burn

All in all, the process from start to finish looked like this:

  • Run-in with coder guy at coffee shop in KC to landing a full time job: about 1 year
  • Very beginning of self-study until full time job: about 9 months
  • Time spent coding full time, without a job: 3 and a half months

Looking back on this experience, I couldn’t be happier with the timing. I had forecast landing an actual job sometime after the winter holidays, and landing that job through the LaunchCode apprenticeship process. Sure enough, they did hit me up right after the new year with some opportunities, which I respectfully and with much gratitude turned down, letting them know that their amazing summer program had already landed me a job.

I think saving up some money and then forcing my hand by quitting my job in Admissions was a huge motivator to succeed. The time I spent learning to code while still in Admissions was difficult and slow-going. Jumping into a completely new discipline, for myself, at least, requires a high level of immersion that I wasn’t able to achieve while still working.

Finding something like LaunchCode to provide some structure to my self-study also made a huge difference. Some days the only thing that lifted the malaise looking at my blank calendar was returning to the lesson plan for the next class, or branching off of my notes from the previous session. I eventually deviated from the course a bit when I worked on my project, but everything I learned in LaunchCode I used in building Brew and in landing my job offer.

Lastly, the providence provided in the form of Thomas’s out-of-the-blue message and my personal relationship with him probably cannot be overstated. I’ve applied to a fair share of jobs by now, and almost every single job I’ve ever had, I learned about through a friend or acquaintance.

Hopefully somebody can glean something useful from my experiences. I’m continuing to use and nourish the habits I developed during my time coding at home, full time, hoping for the best. Moving forward, I hope I can sustain self-learning and self-improvement, but for now it’s been motivating to look back on this experience and know that I accomplished something I wasn’t sure I could do.

Also I totally didn’t write a post last week so my streak is technically broken, but I’m letting myself off the hook since this post is so long. Here’s a picture of my other cat as a tiny baby:

Little Baby Charlotte taking a nap Baby Charlotte taking a nap

Quote of the Week

Besides, nowadays, almost all capable people are terribly afraid of being ridiculous, and are miserable because of it.

—Fyodor Dostoyevsky, from The Brothers Karamazov

(Yes, I’m still reading this. Halfway through!)