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.
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.
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.
On the API/BFF side, I’ve been using GraphQL for about 3 years and the mental model just came super naturally to me.
This is a tough question so I’ll try to go outside of the super obvious.
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.
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.
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.
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.
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.
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.
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.
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.
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.