Engineering: Adventures of a New Developer

October 14, 2020

  •  Christy Vojvodich
Reading Time: 4 minutes

Hi, my name is Jev, I’ve been a software developer for 7 months, and my following posts are about what I’m learning.

I work at a media, tech, and analytics start-up called Turbine Labs. We deliver thoughtful and unbiased reporting, analytics, and media insights to our customers, all powered by our 3rd generation AI-driven software platform called T3.

Our tech stack is TypeScript/React/Apollo on the Front End — as well as our own home-brewed Styled-Component library dubbed Jetstream — and ElixirElasticSearchPostgreSQL, and GraphQL on the Back End, all running in Kubernetes on GCP.

I work mostly with the Front End, although because of our small team size — our Dev Department is only 9 people — I’ve gotten lucky enough to touch all aspects of our software, from UI/UX design and architecture to database management, and continuous integration pipelines.

With that said, most of the insights in this blog will be related to JavaScript/TypeScript, React, and GraphQL, since that is tech with which I spend most of my time.

I was born into the vast world of software development on a Tuesday evening in early 2019 when a friend of mine helped my set up my GiHub account. Of course, I had no idea at the time what GitHub was, nor why I needed an account for it, but I took their advice anyway and started my first project: a static HTML page with poorly written CSS and little to no JavaScript — which can still be found here if you’re interested.

Before my foray into the world of software development, I was a pastor. An atheist one, mind you, but a pastor nonetheless (looooong story). In 2012 I finished my Master’s Degree (Sociology of Religion and Postmodern Theory), and began working at a United Methodist Church in Seattle, Washington as their Pastor of Community Life.

Despite my atheist/agnostic sensibilities, I deeply loved the work. For 7 years I educated, mentored, and advocated for low-income, at-risk, and minority college students and young adults — both at the public policy/legislative level — and also on the ground: enrollment assistance, study skills, self-advocacy, therapeutic/pastoral care, life skills, and academic success strategies. And while it was some of the most meaningful, life-giving, and maturing work I have ever done in my life, I quickly learned that the only thing more political than politics, is religion; and eventually, the bureaucratic muck and mire became too much, and made the decision to leave.

Soon after that decision, I was on the phone with a long-time friend and software engineer who — at the time — worked at X Development (formerly Google X), a semi-secret research and development facility and organization founded by Google. My friend told me that the thing he loved most about software engineering is that he gets paid to go to work every day and problem-solve real-world issues that deeply affect those who are closest to him.

At the time, he was working on some ML for a self-driving car software they were developing. His sister, who has been living with MS for the last 10 years, and has incredible trouble getting around, as you can imagine, had the opportunity to visit him a few times, and actually got to take part in the self-driving/navigating vehicle experience. She told him it was the first time in years she was able to “get around without bothering anyone.” “Jev, can you imagine the deep satisfaction that came with hearing those words?” he asked me.

In fact, I could. It reminded me profoundly of my experience pastoring. I think it was that conversation that, pardon the pun, drove me down the road of software engineering.

3 weeks later I was enrolled in an 8 month, 70+ hour a week, accelerated Front End Software Engineering course at Turing School of Software and Design here in Denver. I absolutely loved my time there, and will forever be grateful for the close friends that I made. But most importantly, my Turing instructors were the ones that forcefully Sparta Kicked me down the abyssal and bottomless well that I now know to be software engineering.

Fast forward through 8 months @ 70 hours a week of deep learning about HTML, CSS, JavaScript, TDD, compiled vs interpreted languages, dynamic vs static typing, OOP vs functional programming, closures, coercion, primitives vs references/objects, stacks, heaps, control structures, logic gates, git workflows, single vs multi-thread processing, synchronous vs asynchronous operations, prototypal vs class inheritance, HTTP/TCP protocols, network management, memory load, hierarchical structures, blah blah blah blah, you get the idea. After 8 months of this insanity (keep in mind previous to this I knew nothing about software engineering), I find myself in the job search (which, is a whole ‘nother discussion as a fresh-faced dev with 0 experience).

While I was lucky enough to have a few offers in the pipeline, Turbine Labs was by far my first choice. It was a small team of incredibly dedicated and deeply passionate engineers who had decades of experience in high-level, international, enterprise-grade engineering contexts. If chosen for the role, I wouldn’t be stuck working on bug-fix tickets for the first 6 months; no, I would be expected to be writing and deploying high-visibility production code within the first 4 weeks of hire. And, in fact, that’s exactly what happened. Stressful? Yes. An incredible learning experience? You’re damn right.

Something I love about our team at Turbine Labs is that nothing we do is half-assed. No technology we choose, no architectural decision we make, no line of code we produce isn’t thoughtfully discussed, thoroughly tested, and intensely reviewed. But what I think I appreciate most about our team is that we’re not just colleagues; we’re all also friends. We care for each other. If someone seems burned out, we make sure they get time to refresh. We care about mentorship. We ask hard questions and sometimes get hard answers. We look out for each other, and always make sure we do what is best for whoever needs the most.

Not all posts, of course, will be this long or involve so little code, but I wanted to introduce myself and our team first. In my next post, we’ll be looking at the Null type in JavaScript, why it’s weird, and why its weirdness dropped me down a Stack Overflow rabbit hole!