How I became a software engineer for under $200


A memoir of my transition to tech. Jump to the end for a breakdown of my timeline and total costs.

When I graduated with my Bachelor’s degree in May of 2015, I had no real career prospects. Truth be told, I struggled for the first half of college deciding what major to pursue and eventually settled on biology. I knew the only way I’d make a living in that field was with a Ph.D. So, I embarked down the prescribed academic track, gathering lab and fieldwork experience and hoping to land co-authorships in scientific journal articles. My plan fell apart my senior year of college when I got cold feet. I was doing voluntary lab work for my mentor — a Ph.D. candidate in quantitative genetics — who was absolutely miserable. She convinced me to explore career opportunities outside of academia before committing to this exhausting and frequently unglamorous life. In my final year of college, I decided against applying to graduate school and instead stepped into a job industry for which I was woefully unequipped.

My post-graduation job search was brutal. Networking is exceedingly important in academia, and as a lowly undergraduate, I was still an outsider. In addition, the field jobs I was competing for were often physically demanding or involved working in extreme conditions, yet they offered very little pay. The minuscule funding for biology and ecology research was undoubtedly the crux of my problems.

Thanks to the limited networking I accomplished by committing volunteer labor hours as an undergraduate, I landed a part-time job in an ecology lab that paid $13 an hour. I began waitressing, which paid more, to cover the rest of my living expenses. I passed six months this way, working two (or sometimes three) jobs.

I was drifting. I spent my free time trying not to think too much about the future college had promised yet failed to deliver. Still avoiding graduate school, I reminded myself that the top career prospects in my field for a person with a bachelor’s degree meant being a technician for roughly $30,000 a year. What had I done? When would my personal revelation strike, when I’d suddenly revel in the delight of studying something for years to get that Ph.D.? Freshly out of college, I already felt left behind compared to my peers.

My prospects changed shortly after I went on a blind date with someone named Trey. Trey was a few months shy of graduating with a Masters's degree in computer science, and he already had a job lined up at Amazon in Seattle. At the time, dating with a defined expiration date appealed to me. When Trey asked me about my career goals, I admitted I was just as unsure about what I wanted to do now as when I started college. He suggested I check out the website 80,000 Hours.

I took direction from some articles that suggested, given my interests and my academic background, I would enjoy a career in data science. The seedlings of a new plan began sprouting in my mind, and I started small. I jumped at opportunities in the lab job to write small snippets of code. No one in the lab knew how to code, but with the help of search engines and Stack Overflow, I created a histogram using R. I later wrote some lines of python to populate custom columns in my ArcGIS database. Tiny successes built up my confidence, but my coding experience didn’t take off until Trey and I moved together to Seattle in June 2016.

While Trey was at work, I planned to study programming, on my own, full-time. I had around $10,000 in savings and later secured an unemployment income of around $1,000 a month after my part-time stint with the ecology lab ended. Because I wasn’t gainfully employed, my biggest requirement was that my studies cost nothing. I wanted to spend $0 on my education in data science. My plan of attack was Codecademy’s free tier for learning python plus several top-rated data science certifications from Coursera. In 6 months, I completed 17 Coursera data science certificates. I applied for and received Coursera’s scholarships (free certifications) for people without the financial means to purchase them. I built a personal portfolio using Jekyll and GitHub pages. Two months into my studies, I began applying for as many entry-level data science positions as I could find, but I never heard back from any of them.

Several more months passed this way, and just as my rejections were piling up and my prospects were looking from bad to dismal, I got a job offer at a local market research firm as a data analyst. Unfortunately, due to my desperation, I ignored many red flags, such as the job being advertised on Craigslist; paying far below market rate; hiring me on the spot, and existing inside a filthy office infested with mice. Yes, I’m embarrassed to say I not only took it, but I also commuted by bus 3 hours round trip to get there.

In an incredible turn of fate, two weeks into this job that was quickly revealing itself to also be a hostile work environment, a recruiter called me about a job I’d applied to at the Institute for Health Metrics and Evaluation, a public health research group based out of the University of Washington. I interviewed for and eventually accepted their job offer for an entry-level data analyst.

Five months after I started my full-time studies, I took my first real leap in the data science world. The job description, coupled with the online technical screen I took, suggested I would be regularly writing code in this job. Largely, I found, I was not. The coding tasks were inexplicably assigned to other analysts on my team, and I was often copying and pasting tables into Excel workbooks. I had no mentors. I was unhappy, but it was my first full-time job, so I didn’t have anything to compare it to. I made excuses. I eased back into drifting mode and spent the next 9 months staying out late and dancing as much as possible.

One day, in a sudden wake-up call, my brilliant coworker who had started a few weeks after I got promoted to an internal software developer position. Meanwhile, I was still making below-market rate for data analysts in Seattle in an entry-level job where I wasn’t growing. I was not ready to settle, and an internal fire ignited within me that still burns to this day. I quit dancing. I started attending programming book clubs at work. I started standing up for myself, rejecting copy-paste work and convinced my manager to let me work on more interesting projects. I started transitioning from writing small, repetitive, single-use scripts to building a reusable framework that used variables and modifiable inputs.

As my daily work became more technical, I realized I enjoyed building tools that made others’ jobs easier. Inspired by my promoted coworker, I shifted gears to pursue software engineering positions. I enrolled in two undergraduate courses — Intro to Computer Programming I and II — at the University of Washington using my employee tuition exemption. I signed up for a school hackathon. At work, I was loud about the effort I put in, hoping the right people would take notice. That summer, I won the first, annual company award for “Rookie of the Year” that came with a plaque and a $1,000 bonus.

While skilling up at IHME, I started applying to software engineering positions at different companies. Unfortunately, my success was reminiscent of my data analyst job hunt: most employers seemed unwilling to take a chance without specific job experience. I managed to land technical interviews with two companies — Zillow and a local startup —both of which I bombed. (Later I realized I did not sufficiently practice for technical and systems design interviews.) I did receive a job offer from one company for a data analyst position for slightly higher pay which I ultimately turned down. I didn’t want a lateral move within the industry — I wanted to switch careers. I tried to leverage the offer at IHME for a raise or promotion, but they refused to budge.

I started reaching out to different managers at the institute inquiring about open positions on their teams. In late summer, I energetically accepted an offer from IHME as a full-stack web developer on a different team.

I worked on the institute’s prominent websites using the Drupal CMS and performed sundry custom tooling. However, I didn’t stop my studies. I pursued freeCodeCamp’s online certificates in web development in my free time. Around the same time, a grassroots effort (that later turned into an early unionization effort) started at the institute. I stepped up to lead the ~40 software developers. While collecting data to negotiate for higher wages, I realized I was being underpaid. No, I don’t mean that I was making non-profit wages. I mean that I was underpaid compared to every other software developer at the institute. New hires, straight out of Bootcamp, were making $8,000+ per year more than me, even though I had acquired 1.5 years of institute-specific knowledge. I was livid, and I restarted my job hunt that night.

The very first job I applied to was at Fred Hutch Cancer Research Center in Seattle. It was at the Bedford lab, which studies the evolution of viruses. In my cover letter, I emphasized my studies in biology and my contributions to public health research at IHME. I had by then learned that owning my experience and marketing my non-traditional background as a selling point was my golden ticket to getting the most positive responses from employers.

Truth be told, I was feeling jaded by the low pay and high demands of working for a research enterprise like IHME. So, while the job at Fred Hutch sounded interesting, I was mostly considering them for interview practice. After interviewing with the tech lead, who ended up being one of the best colleagues I have ever had the pleasure of working with, I was sold on the position. Their interview process, entirely behavioral, was atypical in tech, so my lack of preparation for live coding or systems design questions was of no concern. While they still could only afford non-profit wages, their offer was much more competitive than my salary at IHME, and I immediately accepted. I canceled my upcoming technical and informational interviews at Amazon and Facebook (but truth be told, I was not prepared for them). Two weeks later and seven months after I first started as a web developer, I quit IHME and started my new role as a full-stack software engineer in the Bedford lab at Fred Hutch.

Leaving for a new company was a game-changer for me. Not only did I step into a position with a less stressful workload, but I finally began to reap the invaluable benefits of having a kind, thoughtful, and experienced mentor. Getting paid forty percent more also all but eliminated the financial stress in my life from living in a high cost of living area.

Thus, after feeling like I was incessantly on the grind for the past two and a half years, I could finally breathe. While I wouldn’t recommend my specific, meandering journey to someone starting out in tech, I share this story because I think it pays off to follow one’s inclinations and keep an open mind at each step along the path. My story is not one of overnight success, but rather the cumulative payoff of incessantly pursuing what I deeply wanted.

A computer terminal with the text “Hello, world!”

While I sacrificed many late nights out and weekends with friends, I wouldn’t trade anything for the deep, personal satisfaction of having fought my way into a well-paying, an intellectually stimulating vocation that exercises both my logical and creative brain. If I meet anyone having doubts or experiencing roadblocks along with their transition to tech — I tell them they’re not alone. It’s crucial to find communities of like-minded people at work, in local coding Meetups, or in online communities like #100DaysOfCode who provide guidance and support along the way. The journey will not be easy — but when you arrive at your destination, the experience will be uniquely yours to share.


May 2015

  • Graduate with Bachelor’s degree in Biology

Jun 2015

  • Start working part-time as a lab tech and a waitress

Feb 2016

  • Learn about 80,000 hours; decide to pursue a career in Data Science

Jul 2016

  • Move to Seattle

Aug 2016

  • Study Codecademy’s Python curriculum
  • Study Coursera’s data science specializations

Feb 2017

  • Start the first job as a data analyst at IHME

Nov 2018

  • Start attending programming book clubs
  • Start speaking up at work about concerns about personal growth

Jan 2018

  • Start Intro to Computer Programming I at UW

Mar 2018

  • Receive an offer for data analyst at a different company; unsuccessfully leverage it for a promotion or raise at IHME

May 2018

  • Start Intro to Computer Programming II at UW

Jun 2018

  • Awarded “Rookie of the Year” at work

Oct 2018

  • Start position as Full Stack Web Developer at IHME

Nov 2018

  • Study freeCodeCamp’s full-stack web development curriculum

Feb 2019

  • Get fed up with being underpaid relative to my colleagues; apply to external positions

Apr 2019

  • Start new position as Full Stack Software Developer at Fred Hutch

Total realized costs:

  • $70 × 2 undergraduate course registration fees

Opportunity costs:

  • 6 mos. self-study (unpaid)
  • 2 years working for below-market pay at a non-profit


  • I previously had an undergraduate degree in Biology, and some employers require or place emphasis on an undergraduate degree, even if it’s not in the same field.
  • I am a white cis woman and a U.S. citizen. I understand I have some level of privileged access to opportunities that is not unilaterally shared.

Post a Comment

Previous Post Next Post