Fog Creek

creek.life – Interview with Jude Allred

Ordinarily, in dev.life, we chat with developers about their passion for programming: how they got into it, what they like to work on and how. But this is creek.life – a dev.life special interview, introducing Jude Allred, our CTO. Jude is a long-time Creeker, having started here as an Intern and is now one of our new 4-person management team who leads Fog Creek.


Jude Allred
Location: New York City, NY, US
Current Role: CTO at Fog Creek

 

How did you get into software development?

I always had computers around me as I was growing up. As a 7-year-old, my father sent me his old 386 onto which he had preinstalled Windows 3.1 and a handful of educational games (Math Blaster, Reader Rabbit…). Although it had Windows, it was still configured to boot to MS-DOS, so he included a two page printout of step-by-step instructions of how to navigate on the console and open up the games I wanted to play. I broke (and fixed!) that machine countless times. I remember deleting the ‘Windows’ directory at one point because I discovered I was out of disk space and, finding that to be the largest folder on C:\, I figured that clearing it out would help. I was partially right.

This pattern continued through my young life and each time I broke and subsequently fixed my computers, I grew ever more confident in my abilities with them. I wasn’t a programmer in any sense beyond making little changes to configuration files in the system to help my computer run the games I wanted to play. (`DOS=HIGH,UMB` anyone?). But as I entered high school I started to realize that not everybody was as comfortable with computers as I was, and further there were many people with a lot more money than me who were far less comfortable. This resulted in a number of interesting financial opportunities for me ranging from providing power-levelling services in an MMO (My powerful character reduces an enemy to within inches of its life, wipes its memory, then your younger character delivers the killing blow to receive a ludicrous amount of character advancement points. $25-50 per hour.) to working as the “computer kid” at a local internet cafe ($8/hour, but it came with free soft drinks and air conditioning!)

My first programming experiences technically occurred in high school. There was an Oracle sponsored database administration class which I’m told was provided for us due to a mix up between the name of my county, Puna, and a city in India, Pune, so I have a fun little certificate of qualification for entry level database operations. There was also an “AP Computer Science” class which ostensibly taught us how to program in Java, although they issued us C++ textbooks (“They’re basically the same”) and my class and I never managed to get past ‘public static void main(String args[]){}’. And so my first real language was C.

During my summer as a rising senior in high school, I was very fortunate to be accepted into the NASA SHARP summer high school apprenticeship research program. They connected me up with a team of bright kids and a fantastic mentorship experience at Georgia Tech. I spent the summer working with an Aerospace Engineering professor running experiments with his computational fluid dynamics software, NASCART-GT. It was a great experience for me to work with computers to create new things and answer hard questions. Leaving that program, I decided that, yes, Aerospace Engineering is what I would pursue in college. When I started college I quickly learned that what I thought of as AE was actually just one of many applications of a turtle deeper in the stack: computer science. I switched majors within a couple days and never looked back. Even as I’ve found other fields of interest to me, I’ve always found some compelling way to connect my computer science background to enrich my overall understanding and ability.

nascart-gt

Tell us a little about your roles at Fog Creek

Oh jeez, I’ve hopped around a lot. Through my career at Fog Creek, I’ve generally optimized for impact and learning. As a small company we’ve always had more things to do than time do them, so it’s not uncommon that I’ll spot something that we’re not focusing on which I think could impact Fog Creek at a greater scale than whatever else I might happen to find on my plate. I find and chase these things.

A couple times, I’ve found myself feeling overly comfortable with whatever task is before me. This most recently happened to me when I realized that I’d spent several years as a dedicated feature developer in FogBugz. While happy and relaxed, I realized that I wasn’t really stretching myself anymore. In response to this I did the scariest thing I could think of – I joined our Sysadmin team. I’d always been a Windows-focused developer, so diving into the sysadmin world and doing well was a huge challenge for me and ended up being a fantastic experience.

In rough chronological order, my favorite moments in my tour through Fog Creek include:

  • My internship! Working on real shipping code with a team of great peers and fantastic mentors transformed me from my college days of making small apps for myself and my friends to adapting to a software business mentality and really understanding that I could build real software in the real world.
  • Becoming an expert in FogBugz search and search optimization (then backed by Lucene.NET; no longer), improving our query performance by over 100x over the course of my first few months at FC.
  • Building the “Case Event Editor” with our then-PM, Dan Wilson, and hallway testing my first major FogBugz feature, then later iterating with the StackExchange 1.0 community (back when fogbugz.stackexchange.com was a thing) on what I’d built.
  • Learning from the great folks at Business of Software (Dharmesh, Patrick, Jason, Peldi…) which lead me to spearhead our first in-depth funnel tracking, A/B testing, and Customer Happiness Index frameworks.
  • Being handed an 80-page report written by Brent Ozar about how Fog Creek could use Microsoft SQL Server more effectively and then figuring out and applying his recommendations to our production systems.
  • Founding and leading my own team of developers (Platform) and building it up from 1 to 8 members following the first principals of Fog Creek teams that I’d grown to love.

My ongoing enjoyment of being a Creeker perhaps comes most from the trust that Fog Creek has consistently placed in me and the freedom I’ve had to experiment and pursue whatever I think can be most helpful.

My time at Fog Creek hasn’t been without its challenges, though. Hurricane Sandy was a fun one. Our data center, located in Manhattan’s financial district, got flooded. Our SaaS applications (at the time: FogBugz, Kiln, and Trello) only remained online thanks to a diesel generator on the roof of the building. Unfortunately the fuel for the generator was in the basement, somewhere beneath two floors of water, and the pumps weren’t exactly working. While Manhattan rallied to keep its hospitals and critical services running, Fog Creek (we fortunate few) rallied to keep its SaaS platforms online (there’s even a video about it).

A couple of years prior, in the aftermath of the 2010 Haiti earthquake, we had received letters from some FogBugz users letting us know that our software had been a big help in assisting a disaster relief team in reestablishing Air Traffic Control for the island. In the absence of other information, this set my base assumption for the duration of Sandy that across all of FogBugz, Kiln, and Trello, we were likely supporting at least some of the organizations involved in NYC disaster relief. This meant to me that in keeping our tools online we were providing a multiplier to the disaster relief efforts at a greater scope than any of us could otherwise provide individually.

As for what those efforts were, in some cases they involved hackathon-style programming to move critical pieces of our applications out of our datacenter (e.g., during Sandy, Trello moved to a 100% AWS infrastructure) to literally hauling fuel from the street level up to our datacenter’s generator to keep it online. I’ll never forget how walking around the Financial District felt like being in a zombie apocalypse movie. I would not choose this experience for anyone, but personally and retrospectively I’m glad to have had this life experience.

As a more personal challenge, I think I’ve had to learn to accept many of my weaknesses as strengths. I think in many situations there’s a huge pressure to conform or to go with the crowd, but there are also a huge number of situations in which the crowd isn’t really doing the right thing. The little things that can help you stand out also tend to make it harder to blend in. There are situations in which standing out is unwise (airport security comes to mind), but for the most part I’ve found that the gains from being the odd one out are overwhelming: more people notice you, more people think about what you do, and more people remember you. Don’t be afraid to be a rally post. You’ll be criticized, but you’ll also find your strongest allies.

bucketBrigade

When are you at your happiest at Fog Creek?

My happiest moments usually come in the calm after an important or especially complicated deployment. There’s so much build-up in putting something forward – making sure you’ve handled every dependency, everything worth testing has been tested, everything worth securing is secured. I live in FogBugz during these build-ups and thrive when everything is coming together and telling me that yes, I can have high confidence in what we’ve built and it’s ready to go. Push the button and don’t be afraid, you have logic and diligence telling you that your fears are unwarranted. And then it’s live and you’re braced for impact. What if your logic failed this time around? What if your choices were sound but were built on a crumbling foundation? Is Nagios about to start alerting? You’re waiting for the signal that you were wrong and you need to pull it back, but it doesn’t come. Your system is sound and in the calm and the quiet you smile. Celebrate your quiet programmer success.

What software tools do you use and couldn’t live without?

I initially thought of things like compilers and version control, but (although it would be brutal) Fog Creek would keep functioning if a genie wished static types and the concept of file history into nonexistence. I might still be able to play this distributed software company game, but without video chat I’m skeptical.

Video chat is totally essential for me at Fog Creek. No one provider is consistently good enough for us, so we tend to jump between Google Hangouts, Appear.in, and GoToMeeting depending on the context. Now that Fog Creek is dominantly remote, video chat is the difference between keeping cultural rapport and working at a company where half of the employees are actually just chat bots using Markov chains to generate a changeset now and again. I’m exaggerating a little, and we do use Slack heavily, but one of the most consistently positive tools I’ve found for working with remote employees is to escalate from text to video chat at every opportunity.

And, of course, FogBugz is so engrained in all of my productive tasks that it’s hard for me to imagine being effective without it. Any task I have that requires detail, coordination, or accountability is tracked in FogBugz.

What are a few of your favorite Fog Creek blog posts?

Girls Go Geek Again was great. I’ve consistently appreciated that Fog Creek has talked openly and worked proactively with issues of diversity in tech and has been doing so for some time. It’s unacceptable that some voices are silenced or some opinions are criticized so heavily as to be evicted from discourse. Part of having a great time building software together involves having a diverse and accepting crowd. I’m really thankful of Liz, Fog Creek’s (now Trello’s) long time head of people, for building bridges like the Fog Creek Fellowship with the Flatiron School.

Killing Off Wasabi is a recent favorite. I spent a fair amount of time both advocating and iterating with this project and it was very satisfying to watch it ship and receive appropriate fanfare. I’ve been a long-time defender of Wasabi in that I felt that at any given time, we made the correct decisions regarding how it should change or grow. I’m happy to think that our final correct decision was to take it away.

What technologies are you currently trying out or want an excuse to try?

I played with Facebook’s React framework not too long ago and was very, very impressed. I felt like they made a lot of great decisions and successfully tackled some of the core web framework problems that I’m used to seeing poorly addressed. On top of that, I was delighted by their tooling. For example, the dedicated Chrome debugging tools are a very nice touch.

Next up, I think it’s time for me to write something serious with Go. Aside from perhaps being the coolest kid on the block, we’re having a really great experience with it in our new products.

internJude

Outside of Fog Creek, what do you like to do?

I like to spend most of my time running around in playgrounds with my daughter. After that, I enjoy following small Brooklyn bands through their venue circuits, getting brunch in Cobble Hill, finding small indie plays, or running off into the mountains.

I keep my 52 board games in my office at FC and for a number of years I organized a weekly game night. I haven’t been able to attend recently, but I’m proud that it’s lived on in my absence. My all-time favorite board game is Twilight Imperium, and my most recent favorite is Hanabi.

What advice would you give to a younger version of yourself starting out in your career?

Clout disrupts meaningful discussion.

If you’re the one with clout (say, you’re a mentor talking to an intern, or you’re some sort of manager or lead) be mindful that until you build a strong rapport with someone, going against your opinion is scary and accepting your criticism constructively can be hard. There will be some people with whom you’ll never gain sufficient rapport. There will be people who bottle up their opinion instead of confronting you. There are many ways to help this, but I have no single recipe. Mindfulness is key, however, because if you’re ignorant of it then your clout can drown out the very voices you depend on.

If you’re talking to someone with clout, be fearless. I don’t mean to suggest dissent, and by all means give the experts the benefit of the doubt, but ask questions and have a meaningful presence in the discussion. Make sure you really understand them and ask questions if you don’t. It can happen that the most senior people become isolated and rusty if they lose a group of ambitious peers to challenge them.

And then it comes full circle. Having a reasonable voice will start to give you clout, like it or not. Choose a kind voice.

 

Thanks to Jude for taking the time to speak with us. Have someone you’d like to be a guest? Let us know @FogCreek.

Recent dev.life Interviews

Rich Armstrong
Rich Armstrong
Saron Yitbarek
Saron Yitbarek
Allie Schwartz
Allie Schwartz
Lindi Emoungu
Lindi Emoungu