Skip to content

Conor Hastings

Netflix

Conor is a Senior Software Engineer working on Studio Apps at Netflix. When he’s not at work he likes to see what parts of the internet he can break and get away from his computer by spending an inordinate amount of time decorating a dollhouse which for some reason still has a Macbook.

Inteview image for Conor Hastings

What led you to become a developer?

It’s been a long and winding road. I’ve been interested and programming probably since I was around 12 years old and started out just hacking around with some really gnarly PHP code. The ability to make things appear on screens even if I had no idea how it actually worked was super exciting to me.

Although I had been programming the same bad PHP for about 6 years when I entered college it always seemed like more of a hobby than a career to me. My interest ebbed and flowed but never really went away.

After graduating college in 2010 I just kind of bounced around trying to figure out something that made me excited and for some reason programming still just seemed like a hobby and not a “career”.

In 2015, in full quarter-life crisis (very ambitious of me to think I’ll live to 108) I got super duper lucky and landed a job at a startup in Washington DC that just so happened to be working in Node and React. Honestly, I knew just about nothing going in and was totally terrified, but I landed in the right place at the right time. React ended up taking off and I was able to work with one of the smartest people I’ve ever met. Without his help (https://twitter.com/danmactough) I’m not sure I’d still be doing this as a career. I can only imagine the patience it took to listen to me when I had some half baked idea of how to do something.

I’m not sure I’ve answered the question and I’m not sure I have a really great one, I just took a long time to realize something I actually liked doing could be a job. It still kind of astounds me that I can get paid to make things on the internet, and feel just extremely lucky that I happened upon the right people along the way.

What’s your setup and development environment?

I like to keep it super simple, I get distracted super easily and am in awe of individuals that are able to work with wild multi-monitor setups. I use the latest 13” MacBook air with the RAM maxed out and have the same ~5 apps running pretty much all the time — VS Code, Chrome, Slack, Terminal, and Superhuman for email. — luckily most of our development environment is in the cloud and I’m only running a pretty simple node app locally so I don’t need a more complicated setup. Similarly, on my phone, I mostly use it to read twitter and emails.

Honestly, I think the more complicated the setup the more mental energy you end up committing to the setup instead of the code or the idea.

My desk is quite bare as I don’t actually use it as a desk, more of a footrest, that being said our office has a lot of great spaces to tuck yourself away in for heads-down work.

Primary Workspace
I swear it’s efficient for me.

Here are some of the other places I’ll often find myself in the office when my desolate desk becomes not quite the place I want to be.

What’s your favorite stack to work with?

I’ve spent most of my professional career working with Node, React, and just Javascript in general.

On the API/BFF side, I’ve been using GraphQL for about 3 years and the mental model just came super naturally to me.

I really enjoy the freedom of Javascript. There are fair arguments around the cruft in the language but TC39 has been fantastic in pushing out new features while keeping the old web alive and well. The second the Space Jam website doesn’t work (https://www.spacejam.com/archive/spacejam/movie/jam.htm ) I’m getting out of developing for the web.

I also enjoy experimenting with languages like Reason and Elixir and bringing the mental model from these languages back into Javascript. I would say as of now though that I don’t really enjoy anything more than just GraphQL in Javascript;

What are your top 5 go-to repos?

This is a tough question so I’ll try to go outside of the super obvious.

  1. The utility function in graphql-js are great, https://github.com/graphql/graphql-js/tree/master/src , I love being about to test queries in application code against my schema by just pulling in validate from there.

  2. astexplorer (https://github.com/fkling/astexplorer) has been life-changing for me. I love hacking around with static analysis and before this, it was just wild guessing and console.logs to try to figure out the syntax tree.

  3. I’ve really enjoyed the movement Luxon (https://github.com/moment/luxon) and date-fns (https://github.com/date-fns/date-fns) have created in the seemingly never-ending problem of working with dates and times in Javascript. As performance becomes more and more part of the table stakes of our applications modularization of dates and movement away from the all or nothing moment.js is super duper exciting for me.

  4. Maybe more obvious but the cognitive overhead of maintaining consistent code style across a team that was essentially solved by Prettier (https://github.com/prettier/prettier) deserves more than just a mention here.

  5. micro (https://github.com/zeit/micro) is my go-to http framework, it does just enough on top of the built-in http in node that I’m not annoyed but mostly remains just function calls and idiomatic Javascript so you’re not just learning a framework.

What technologies are you most excited about now?

I’m really bullish on Reason, it’s syntax is close enough to javascript and the interop story is better than most that I think it has a real opportunity to impact how we approach UI development.

I also really think we’re just at the tip of iceberg with GraphQL and believe it can help lead us to a world where we just write components that accept data props while completely abstracting how that data is retrieved.

What does your ideal workflow look like, from messing around to production?

If I’m just messing around I’ll generally just copy over code from another repo of mine that’s similar, it’s probably not the most efficient way to go about things but usually I want to be able to get a prototype running relatively quickly and this works so I don’t really see a need to change it.

When working on production apps, I’ve found that communication is often a lot more important than the code, coordinating across stakeholders and other Engineers to make sure you’re building the right things and you’re not duplicating efforts has proved far more valuable than any tooling.

What are you currently learning?

Typescript, I was holding out hope that flow would be the winner in the typed Javascript world but with things like DefintelyTyped (https://github.com/DefinitelyTyped/DefinitelyTyped) it just doesn’t seem like that will be the case. I’ve found luckily that a lot of my misgivings were based on years old assumptions and the ecosystem has really improved a lot. I’m currently exploring connections between Typescript and GraphQL to try to gain ground in efforts to minimize building very similar things over and over again.

What project are you most proud of?

React Syntax Highlighter (https://github.com/conorhastings/react-syntax-highlighter) -- I originally built this project out of frustration with the fact that there was no real idiomatic implementation of syntax highlighting in the React ecosystem and my eternal frustration with any module that requires an external stylesheet.

I happened to stumble upon the wonderful and woefully under appreciated lowlight (https://github.com/wooorm/lowlight) and build something that suited my needs in another project I was working on at the time.

It was my first introduction to working with a syntax tree and started a passion that still burns to this day.

It also turned out this was something that wasn’t quite solved and the project has gone on to be a pretty modest success with use cases all over the ecosystem that never even entered my mind when I began the project. It’s taught me a lot about working with people in Open Source and managing constraints within a project by clearly defining what the project is meant to do.

What are beginner developers not learning that is critical in this day and age?

I don’t know! I think when you’re just beginning work on things you’re interested in, reach for a library if you need it but try to understand what it does. Working in areas in which you’re passionate has always accelerated learning in my experience. Also, don’t be afraid to ask questions early and often, I had a lot of trouble with this starting out but everyone has been in the beginners' position before.

I often find beginners bring perspective on issues that everyone else has just sort of written off as minor annoyances that are just part of the job so don’t just accept things as they are, challenge them when just starting out you’ll have the freshest perspective on a problem set.

So I’d just say don’t focus on needing to know a particular framework, focus on your areas of interest and you’ll naturally find yourself discovering the things that are pertinent to your learning.

What tech challenges are you facing at your company?

Scaling out of the startup mentality and building more nuanced connected experiences among our product suite.

There are a large number of apps behind the scenes at Netflix that help to power our Original programming and Studio operations and we’re just now hitting that phase of maturation where we’re beginning to think more holistically about the choices we make. I’m really excited about the challenges this will have us taking on.

What music do you listen to whilst developing?

Anything you want to promote or plug?

You can follow me on twitter @stillconor, I occasionally give conference talks or write blog posts if I can’t get an idea out of my head for a few days but everything I do ends up aggregated there.

Netflix is also constantly hiring -- https://jobs.netflix.com/ -- so come work with me and make me smarter because I need the help! My DMs are open on twitter so don’t hesitate to contact me with any questions about career-related things or otherwise.

Interview image for Damini Satya Kammakomati
Damini Satya Kammakomati

Salesforce

Damini Satya is a Software Engineer at Salesforce building next generation CI/CD systems for cloud scale deployments. She is an ardent open source contributor, mentor, traveller, who loves to paint.

Interview image for Chris Klug
Chris Klug

tretton37

Chris Klug is an extreme sports-loving old geezer who has been coding up solutions for different clients for the last almost 20 years.

Interview image for Eduardo San Martin Morote
Eduardo San Martin Morote

Freelance (Posva Solutions)

FrontEnd Developer based in Paris with a lot of dedication for Open Source, particularly for Vue.js. He enjoys working with passionate people, coaching and writing maintainable code.

Be the first to read new interviews just like this one with Tim Benniks. from top developers.