The Nuts and Bolts with Tanya Reilly
What is a principal engineer at Squarespace?
An engineer with the seniority of a director. It's a force multiplier role: we're successful if we're making everyone else more successful. I work with our two other principal engineers, our staff engineers and our Chief Architect to make sure our architecture and our engineering standards are ready for whatever lies ahead.
That means design reviews, identifying and evaluating risks, evolving our processes, and working across organisations to make long-term decisions, as well as taking the lead on solving some problems. A recent project I've worked on is making sure that we can survive the loss of either of our data centers. As a test, we completely turned one off for the first time last February, with no impact to our services. That was a great feeling.
What are the types of challenges are you most excited to solve?
My favourite challenges are the ones with a mix of technical and human systems. I love dropping into a messy, ambiguous situation where the first step is getting everyone to even agree on what problem they’re all trying to solve. It can be tricky to find the right questions to ask, but once you do, you often find that everyone has a different, unspoken expectation of what the goal is and what the world will look like when it’s done. Framing a problem well can sometimes make the best path forward obvious, or at least narrow down the set of solutions that are worth considering.
How do you explain what you do at work to your kid?
My seven-year-old and I have built a bunch of toy apps together, so she understands the idea of designing something, writing the code, and running it. She’s got a pretty good idea of which things are made of code. An educational site she was using recently was loading really slowly and I heard her grouse “Ugh, write better software,” so my work there is apparently done.
Mostly I tell her about my day in terms of the people I worked with. “Someone was trying to solve a problem and I had an ok idea and they had an ok idea and we worked together to make a great idea,” that sort of thing. She’s gotten to know a bunch of my coworkers over video calls while we’ve been remote for COVID-19, and she likes to hear familiar names.
Earlier this year she came into the office for the Superbowl (Squarespace had an ad) and got to hang out with a whole lot of engineers monitoring traffic graphs, so now she probably thinks we stare at graphs all day. I mean, I'm coming from a Site Reliability background and we love to put graphs on things so she's not entirely wrong.
Site Reliability Engineering has evolved since you started. What did you predict would be true? What is totally surprising to you today?
I predicted that a lot of the tenets of Site Reliability would become cultural norms. SLOs, thorough monitoring, redundancy, reproducible deploys, blameless retrospectives, and a lot of the other work we were hiring dedicated SRE teams to care about would just become the standard way for any team to run their own services. Treating reliability as a first class feature is a mainstream idea now, and I’m glad of that.
Cloud surprised me. A decade ago, if you’d asked me about cloud computing, I would have said that it was a game-changer for small sites getting online without infrastructure investment, but it would stay a lightweight platform for apps that didn't need serious computing power. Well, ok, I was wrong!
What are your favorite qualities in an engineer?
I want to work with people who bring everyone around them up a level. That means asking constructive questions, taking the time to write things down, building "paved roads" so it's easy to do the right thing, supporting other people's ideas, teaching, coaching, being kind.
For senior engineers, that also means being deliberate about handing off learning opportunities, even if they would be really fun to do! If the most senior people always take on the big messy interesting projects, nobody else builds skills. It's a better use of everyone's time if senior people help their more junior colleagues succeed at leading difficult projects. I've had opportunities like that a few times throughout my career, and they're gold. It's such a gift to have a more senior person offer you a project that will bring you up a level.
The other skill I will always admire the most is writing well. If you can convey a clear message with an audience in mind, everything else about the job is easier.
What non-technical skills have been the most important to your success?
Writing and conference speaking have been huge for me, both for giving me a reason to dig deeply into interesting topics and for introducing me to inspiring people. My secret for an engaging conference talk is this: spend much, much longer on it than you think any talk could possibly take. Ok, it’s not a very secret secret. I wish I had an easier secret.
You moved your blog over to Squarespace; how did you find that process? What do you think of our product as a user?
I was coming from some terrible home-rolled CSS with a color palette I’d made up myself and I swear my first reaction after moving the first post was “Whoa!”. Squarespace designers and frontend folks are phenomenal. Every time I update something on my site I still sort of sit and admire how it looks.
I genuinely love our product, and it was a big factor for me when I was deciding where I wanted to work.
You recently wrote a blog post on the importance of learning. What have you enjoyed learning recently?
For Hack Week last quarter, I built a WebSockets chat app that displayed different coloured fireworks based on what people were saying. I'm an infrastructure person and my JavaScript is not the, uh, highest quality code you’ll see in your life, but it was amazingly fun and now I know how WebSockets work.
During the pandemic I’ve been doing a bunch of beginner Android development. A coworker sold me on Kotlin being fun to write (he’s not wrong), and after some messing around with it I ended up playing with Android Studio, working through some tutorials, and making a bunch of apps. I love the feeling of coming in completely new on something and unlocking its mysteries. Lots of “Oh that’s how that works.” It's the best.
Where do you draw your energy from?
Some of my friends are recharged by quality time spent with other people; I’m the opposite. I need a ton of alone time to build energy. I'm most recharged after a few hours of flow state where I’m writing or coding, and I’m absolutely drained after a day of meetings.
Since I live with my spouse and kid, and have a job where I talk with people all day long, I have to be really deliberate about getting alone time. I use a calendar for everything, including planning out weekends, and I make sure I have dedicated blocks of time that are just for myself.
This year I joined the Brooklyn Writers Space (highly recommended if you’re a writer in Brooklyn!), and I like to go there, turn off all distractions, and write a lot. Well, I did, pre-pandemic. I look forward to doing that again.
What could you talk about for hours?
Train travel! The one way to completely destroy my productivity is to say something like “I was thinking of going to <anywhere on the planet> and I think it’s possible to get a train there… but does that seem like a long time to be on a train?”
Two hours later, I’m still going to be talking through the different routes, explaining how relaxing it is to drink tea in a sleeper car watching the world go by, the amazing flow state you can get when you write or code on trains, how great it feels to fall asleep on trains…
What's your superpower?
I’m comfortable saying “I don’t understand” or "why are we doing this?" in pretty much any situation. It can be uncomfortable to admit you don’t know something—and that goes double for more junior people who might feel judged for it—so senior people can set a great example by asking questions and showing that none of us knows everything. There’s always extra information if you ask the right questions.
Is there a superpower you try to cultivate in others?
Growth mindset. I want people to realise that every single thing in tech is learnable, so I talk about things I’ve learned and things I don’t know yet. Most things in tech aren’t difficult, they’re just unknown. Some things are complicated, but that means they just take longer to learn. I encourage people, when they’re choosing between two opportunities, to choose the one that will teach them more. It can be intimidating to take on work you don't currently know how to do, but it's the path to growth.