Engineer Q&A: Nick DiRienzo, Backend Engineer

Tell us about yourself! What’s your name, what do you do at Optimizely, and how long have you been here? Tell us a bit about your trajectory to get here

Sure thing. I’m Nick, but people here have taken to calling me “nvd” because of my Slack handle. I’m an engineer on our Enterprise Experience squad. I have two start dates at Optimizely: one in May 2014 and August 31, 2015, so… three years. Huh, time flies. The former is from when I was an intern here for a summer, and the latter is when I joined full time.

As for how I got here… well, I studied computer science at SUNY Buffalo. I’ve always been a bit of a maker; during my undergrad, I kinda just did stuff I found fun and interesting. I cofounded UB Hacking in 2012 and ran UB ACM for a couple years; I worked in a research lab focusing on mobile systems, quantifying experience and coming up with strange ways to protect user privacy; and lastly, I went to a lot of hackathons and a couple StartupWeekends. I swear I did other fun things too and didn’t just code all the time. I mean, I had to go to class sometimes.

I found myself in the Bay Area in 2012, with an Engineering Practicum internship at Google. I worked on the Engineering Productivity team on AdWords, which looking back now, aligns well with what motivates me as engineer today: to help engineers produce higher quality code more quickly, safely, and securely. The following summer I went back to the same team as a Software Engineering Intern. I had a great experience there, but I remember telling my dad that summer that I wanted to go somewhere smaller, where I could have a chance at having a larger impact and have the chance at helping grow a business.

As for how I got to Optimizely the first time, a friend of mine referred me for a summer internship. That summer I was lucky enough to leave with an offer in hand, and after looking elsewhere, the people drew me back.

What’s it like to be an App Backend Software Engineer at Optimizely?

Backend engineers are brought together by their technical experience. In our case, it’s Python and web application development. We are dispersed across multiple squads and teams. A squad is a collection of teams all producing work under the same mission. We have engineers on:

  1. Experimentation: who think about how to model and run experiments across every touchpoint.
  2. Application Infrastructure: who help build core infrastructure to build applications upon.
  3. Enterprise Experience: my squad! We work to make Optimizely scale our enterprise applications platform to meet the demands of the biggest brands on the planet. I currently am working on breaking up parts of our monolithic architecture into a centralized identity management service.

I’ve actually been a member of a number of teams during my time here: Monetization, Security, App Backend, App Platform, Program Management, and now Enterprise Experience. We have a growing team of engineers, so there’s always opportunity to learn, grow, and own. Looking back on my experience on those teams, I learned something new every time and brought it along with me. My stint on the Security team was really awesome, actually, and I learned a lot of foundations there in the application security space and what it’s like to grow a security team in eng org.

No matter the team, the one word that comes to mind is “collaborative”. Software engineering here isn’t about someone going off on their own with a problem and coming back with a solution. We design solutions as a team of individuals, each bringing their perspective to the table. I’ve found this way of designing has helped me grow as engineer over the years and to deliver the best results possible to our customers. That’s not saying we haven’t made mistakes through this process — because we have and will continue to do so — but it’s definitely worthwhile and something I really enjoy.

At your first ADEPT All Hands, we asked you: how did you figure out that this was what you wanted to do? Do you remember your answer?

I do! I was a second year in high school when I joined my school’s FIRST Robotics Competition team, MORT. I joined them not even working on the robot and was doing animation-y things instead. That whole year I wondered what the cool programmer kids were up to making the robot move with joysticks or on its own. I asked the kid in charge of the programmers and he said to read some obscure book on Java. Two years later, I was that kid running the programmers and… thinking on it now, was my first exposure to leading a team of developers. Huh, wow. A lot of the way I was involved there carried over along the years.

Anyway, I picked up Python in between high school and college. I wrote a blog system from scratch on Google App Engine, which we use here for our monolithic app, and some static site generator blog system thing using and I actually ended up with 8 stars on GitHub. I’ve been hooked ever since.

What have you been up to recently?

The latest thing I’ve helped ship was extending our public APIs to make it easier to bring Program Management into our set of products. We’re setting the groundwork for, to me, feels like a platform that developers both here and elsewhere can build on top of to improve the way teams experiment.

Most recently though, I’ve been in the design and planning stages of the start of our service-oriented architecture journey. We have a few bespoke services, but a lot of our business logic for, what I’ve started calling, the enterprise applications space is in one monolithic codebase. I’m really, really excited to help move us in this direction.

On Fridays, we wear floral jumpsuits.

The first things we’re decomposing out of the monolith are: Users and Account Management, Authentication, and Authorization. This move will make Program Management and any other experimentation-related app easier to build, using Optimizely as the source of identity.

What’s unique about engineering at Optimizely?

So my experience with other companies is pretty limited, but I’ve learned about other work cultures from friends and coworkers’ previous experiences. I think the things that are unique about us are the people and the drive to remove technical debt.

In interviewers, I get asked “What do you like most about Optimizely?” and every single time I answer with the people. I’ve found everyone here to be generous and empathetic; we care to teach and grow each other. They’re also really fun to be around. Johanna and I are usually pulling some sort of shenanigans on the rest of App Backend and engineering, generally. There’s the time we made posters for everyone on the team with silly quotes, or the time we threw together a wine and cheese party for all of ADEPT.

As for the drive to remove technical debt, it’s more of what I’ve heard from other engineers who have been elsewhere. It’s pretty unique to have an org be so loud about all the problems and for management to spend the resources on driving that debt down. It doesn’t come easy, and it doesn’t come fast; it’s an investment by the business in its own future. I’m pretty excited to have a direct hand in that.

What advice do you have for people trying to break into your role?

Hmm… if I look back on the last several years, I think a lot of it came to meeting a lot of people and asking a lot of questions (even the ones I think aren’t great). And building a number of side projects. They never went anywhere, but I learned a lot about building web applications and APIs before starting my full-time career as an engineer. Being a part of a community is motivating and you can learn from others’ experiences.

Not to shamelessly plug SF Python, but there’s a project night once a month where we bring community members in to run tutorials that range from beginner to advanced. That’s a great place to meet other people who are looking to learn and improve their skills too.

Oh, and never be afraid to ask a question. Even if it’s not fully formed, it’s better to ask it than to sit silently. I’m trying to be better about my question delivery, but I stick to that mantra of just asking. It can’t hurt.

What do you do outside of work?

Over the last several months, I’ve been volunteering a good amount of my time with SF Python. I put together the speaker lineup for some of the meetups and get to have the fun job of emceeing some of them too. For whatever reason, Grace lets me run around with a mic. More recently, I’ve been spending even more time working with her and others to organize PyBay 2018. I spoke at PyBay 2017 with Vinay and that kicked off my whole involvement in the local Python community.

Besides that, I really enjoy wine, music, traveling, and I’ve started dabbling in photography. Oh, and spending time with friends. I try to see a concert a month; there are so many cool local bands and venues. This year, I’ve been to India, Singapore, and Malaysia, and have plans to go to Germany and Iceland too.

For wine, anything goes. It’s fun to learn about wine. It’s so diverse and intricate. Having Sonoma in our backyard has allowed me to meet winery owners and winemakers to learn more about the process and varietals I would never pick out myself. It’s awesome.

What wine have you tried that you wouldn’t have picked up yourself?

Oh, finally an easy question. Cabernet Franc. It’s one of the parent grapes that created the well known Cabernet Sauvignon. It’s by far my favorite.

(Interested in working with me on App Backend? We’re hiring in San Francisco and Austin!)