Working at DuckDuckGo

So it's official, I work at DuckDuckGo!  I've gotten a lot of congratulations across a wide spectrum of mediums, but I've also gotten a lot of "how do you like it" and "how did you get it" questions.  This post aims to address working at DuckDuckGo, if you'd like to know why in Saint Peter's name Gabe picked me, see: ye.gg/inbound.

a hat trick 

First, I'd like to say that I've never done anything like this previously; working at DuckDuckGo is vastly different than (in my limited experience) any other place I've worked before.  People talk about wearing many hats at startups, and I too have experienced this before; but working at DuckDuckGo, you wake up and realize your whole wardrobe is made of hats.  At DuckDuckGo, hats are all you wear.

Today I woke up and realized we didn't get a discount we should have so I put on my financial-hat underwear.  I wanted to give some feedback to an API we use and put on my partner relations-hat on my left foot.  Gabe pinged me with a bug I introduced in our Punchfork integration on my dev machine late last night (wearing my insomnia-hat), so the debug-hat went on the right foot.  Then I found a bottle-neck in some core code from a while ago ... and having no other place to put the systems engineer-hat (not cold enough for gloves yet) it went on my head.  Working at DuckDuckGo is controlled chaos; and I love it.  

Story time! When I was in elementary school, it was clear to everyone that I had pretty fierce ADHD, and still have it now.  Then and now I combat it with a simple kitchen timer.  In grade school it helped me because I would start with a homework subject, put 30 minutes on the timer and start the pipeline.  When the 30 was up, I'd context switch to the next subject.  If I was having trouble focusing for 30, I'd mitigate it with a time decrease and recurse.  I still use this method to this day breaking it up into design and implementation intervals.  This method enables me to allocate my chaotic energy (entropy) into some useful work.

At DuckDuckGo, chaos and entropy are synonomous.  At least for long as I've been associated with the company, seeing people come and go, I've come to realize that how we harness this energy is based on mindset, where static tools arrive from an evolutionary cycle.

vision

This is super broad and gimmicky I know, but this company is an outlier.  So hear me out.  When I first started working on the core of DuckDuckGo (before I was hired) it was like entering Narnia.  It is a complex system.  One minute it was sunny and the next it was snowing and some bi-pedal goat was pissing me off.  Gabriel is a hacker, plain and simple; he get's the job done.  It's not always the prettiest, but it works and often works fast.  And yes, it has been a sink or swim kind of arragement.  But the best thing is, once your swimming or even just avoiding death, Gabe is all about learning.  To survive at DuckDuckGo you have to always want to be learning.  If something sucks or you can do it better, it gets replaced - period (hence evolutionary cycle).  Learning, working smart (more on this later), consistently trying to use things that suck less, and a zero-tolerance b.s. policy have served the company well.

trust

I know people at DuckDuckGo have my back and will do the right thing even if it's not in their best interest.  Enough said.

asynchrony and agility

Gabe and I are at different stages in our lives.  I stay up on 36 hour benders, but he has a whole family and a ton of responsibilities.  I'd be lying to you if I didn't say it frustrates me sometimes, but I totally understand.  To be honest, him being busy with other things has done more for me since it has accelerated my ability to be agile throughout the entire system.  We've grown to be a very asynchronous team with no explicit tasks.  If one person is sick the other person can pick up the slack, if one person is pissed off with too many emails the other can adjust.  It's really nice to know I can just stop everything else and ship something I've wanted to for a while and everything will be ok.  And if not, I'll know when I need to.  Having multiple mediums to broadcast share vs. direct share helps a lot too.  Skype versus Yammer etc.

get on with it... 

I'm really excited to be where I am at right now.  I have a lot of things to do and I really enjoy working everyday.  While the actual technical work is very rewarding (read challenging :) it's been fun getting to know Gabe and the rest of the team.  I expect to make a life-long friends from this job that I respect and can rely on.  In my roughly 1 1/2 years of contributions to DuckDuckGo I've learned a ton and expect to learn a lot more.  There is more to computer science than just understanding math, computer architecture and how to write a simple compiler or a driver.  I've come to understand that this company is going to give me one of the most important components to my career: shipping a product that I've helped build from the ground up.  It's one thing to work at a company and be told to spot-weld weaknesses in an I-beam all day, it's a totally different thing when you're boss asks you if you approve of the cement grade chosen for the foundation.