Skip to main content

Blog posts

The multi-year process of getting promoted to staff software engineer

Note: these are my thoughts, and not the thoughts of my employer.

I wasn't interested in promotions for most of my career. I had a simple reason: I didn't want the jobs that promotions would give me. They would have made me unhappy. But then I joined Etsy four years ago. This put me in unfamiliar territory: I wanted to grow my engineering career for the first time. Getting the next promotion would make me a staff software engineer.

I achieved this a year and a half ago. This is the advice that I'd give myself when I started at Etsy four years ago. I tried to make it broadly applicable. I hope that others find it useful. It is targeted towards senior engineers who are looking to reach staff within a few years.

Let's chat definitions real quick. "Staff software engineer" varies wildly between companies. Sometimes it's called a "principal engineer," and other times a "staff" and "principal" are two different levels on the same ladder. But I'm describing the first level that is partially scoped outside of a team. A staff engineer is often an individual contributor on a team. They are also recognized for having broad impact outside of their team. Maybe they're clutch on business-critical projects. Maybe they wrote and maintain the framework that everyone uses. Maybe they're good at coordinating the technical work of huge projects. Maybe they do all of that. They're senior employees who have started to level up other parts of the company.

Understanding the process

First, understand the mechanics of how promotions work. Read any documentation on the evaluation and promotion process.

Let's imagine a process at a mid-size company.

Employee evaluation

  • Every level has written performance expectations.
  • Employees write a self-evaluation every 6 or 12 months. They compare themselves to their level's written performance expectations.
  • Managers assess their employees. This produces a rating against the performance expectations. This may contradict the employee's assessment.
  • There is a company-wide adjustment process. This attempts to correct for the fact that different managers might rate the same employee differently.

Employee promotion

  • A promotion candidate should have two consecutive evaluations showing that they are meeting the next level's criteria. There may be some flexibility here.
  • The employee or the manager will document the employee's promotion justification. This is often called a "promotion packet."
  • The promotion packet follows a template. The company is "trying out a new template that is much shorter than it used to be." It will still take forever to fill out.
  • The manager collects peer reviews from higher-level employees that are familiar with the candidate's work.
  • One or more high-level employees read the reviews and packet and make a decision on the promotion.

To some approximation, this is what formalized promotion processes look like at mid-size companies. Most companies aren't trying to innovate here. I'd be suspicious if they did.

Understand the real promotion process

I had a misconception when I was a new grad. I figured that companies followed their written rules. It turned out that this isn't true. Companies develop their own conventions and interpretations that might surprise the casual reader. There are also unwritten rules that you'll learn over time.

What do I mean? Let's take hockey as an example. The NHL has an official rulebook. You could read it today. The rulebook explains how hockey is supposed to work. Rink size, skates, sticks, face-offs, 20 minute periods, offsides, power plays, overtime, waivers, etc.

You read the rulebook. Armed with your new knowledge, you watch some games. The rulebook prepared you fairly well. But some things confuse you.

Every game has blatant infractions that the refs ignore. A few hooks aren't penalized. Power forwards ram into goalies and goalies cross-check them back. Hits behind the play. The referees see it all. Yet they don't call penalties. Even more confusingly, other rules are universally obeyed. The players avoid offsides penalties and the linesmen call them. There was a high-stick, and the offending player looked at the ceiling in frustration and skated to the penalty box without a struggle.

Then you'll notice other oddities. Sometimes, the refs will make a blatant mistake. A star forward falls over when skating past an opposing player. The refs raise their hand: tripping. The star player's team has a one-man advantage for 2 minutes. But then the video replay shows that the star player just fell over. Even pros lose their edge sometimes. It shouldn't have been a penalty. The man advantage is unfair. But then the oddest thing happens. Later, the refs will make a second mistake in the opposite direction. Maybe it wasn't a "mistake," but they called a penalty they normally ignore.

What's going on?

Hockey would suck if referees called every possible penalty. The game would take forever. Nobody would watch it. So the refs "put the whistles away" when games are under control: they avoid stopping play by ignoring minor infractions. Additionally, the officials have their own unspoken rules. Maybe they award make-up calls to correct accidental imbalances. They could make the same game different for every player. In fact, one of the most punitive tools available to a referee is holding just a single player to the letter of every rule. This isn't unique to hockey.

I could go on and on. But let's face it: the NHL rulebook doesn't define all of the rules that govern a hockey game. It's the NHL's best effort to write down what hockey should be. In practice, the referees decide what hockey will be on any given day. But what if the rulebook grants the referees discretion? It doesn't change the argument. Different refs will call the same game differently. The enforced rules still vary from the written rules in ways that can't be learned from the rulebook.

The actual staff engineering promotion process

What lesson can we draw from hockey? The staff engineering promotion process will differ from the written process in ways that are hard to predict. You should be aware of the differences.

These differences can be discovered. Ask existing staff engineers what surprised them about their promotion. Ask your manager. Ask your manager's manager. Disgruntled Glassdoor reviews or blog posts might have some perspectives that correct for survivorship bias.

In theory, promotions are awarded based on merit. In practice, nobody has equal context across all departments. The decision will be imprecise. Discussions and decisions rely on the written reviews and personal opinions of the participants. People always describe this part like it's shrouded in mystery. But in practice it's just "people trying to decide something," and will have all of the properties of this type of system.

Sometimes there are secret rules or systems. You should try to discover them. Sometimes the secret rules are mundane, like "HighRankingEmployee thinks that employees should be at their level for three years between each promotion because otherwise how could you have enough of a track record?" Sometimes these rules are secret because the company would get sued if they were written down. If you've been in the industry long enough, you've heard stories about how someone (usually from an underrepresented group) learned that their salary was dramatically less than their peers. Here's an example if you need one. The employee handbook doesn't say "Take advantage of structural discrimination and information asymmetry to save a few bucks." But that's what the company does. I don't have a good guide for finding this out. It's not like you can just ask at the next all-hands. But making and maintaining lots of work friendships opens you up to hearing this kind of gossip.

So, yeah! Understand the written promotion process. And talk to people to understand the human element of the promotion process.

Being honest with yourself

I joined Etsy as a senior engineer. During an early conversation with my director, Tim, I asked what the staff engineering promotion process is like. Tim turned it around on me. "Why do you want to be a staff engineer?"

I was caught off-guard. I should have admitted the truth: I hadn't asked about this when I was interviewing and I was curious. Instead I stammered out a half-baked answer. Tim listened and said, "It sounds like you haven't quite figured out why you want to be a staff engineer. It's not the right path for everyone. Please understand the answer to this before you spend a lot of people's time trying to get there."

Fair.

It took a while to find an answer. I got there eventually. Someone asked me a year later and I answered "I was never super interested in my career before I joined Etsy. And I probably could have joined some other company like Facebook and given 5 years of my life to the Like button. But I joined Etsy because I like the idea of helping small sellers sell their stuff on a global stage and giving them a platform to help pay the bills or be their own boss. Performing at my job means that I'm enacting more of a change that I want to see in the world. Becoming a staff engineer means that I'm starting to make the entire organization more effective at enacting the positive changes that I want to see in the world. It's important to me to keep leveling this up."

Don't memorize the paragraph that I have above. That was my reason. It's important to find your own reason.

Why? It helps you avoid wasting years on a goal that will make you unhappy. Maybe you'd rather work towards becoming a director because you'd be energized by running a department. Maybe you look at the people above your level and think, "I'd be really unhappy if I had any of their jobs." Maybe you live and breathe tech and less hands-on coding would make you dissatisfied. Maybe your passion lives outside of work and you need something that pays the bills. There are so many valid career paths. It'd be a shame to spend years reaching for the wrong one.

Getting yourself in position

So you want to be a staff engineer. What next?

First, you need to execute at the level of a staff engineer.

Have a frank conversation with your manager about your performance and career trajectory. I've found it useful to just say, "My rough plan is to 'exceed expectations' in $cycle and to get promoted in $next_cycle. Does that seem realistic?"

Expect the answer to be "no." That's okay! Setting a target and expressing interest helps both of you. Your manager can guide you towards projects that will help you grow. They can find you opportunities. They can give you realistic expectations. They can tell you that you need to work longer before you even ask about it. But they may not do any of these things if you don't express interest.

The goal of promotion is twofold: meet the performance objectives of the next level, and to demonstrate that you are performing at the level. These are subtly different. You should always find ways to leave breadcrumbs of your accomplishments. This provides evidence that you're performing. This usually involves leaving a summary. Consider the case where you consulted on another team's project across a few meetings. You could email out a meeting summary of each meeting and everyone's contributions. This will provide a record of your accomplishments that might have otherwise been lost.

I want to be clear: the first priority is to be valuable. The second priority is to prove that you added value. Are you hyping up work to make it sound like you're meeting a competency? Then you're not meeting that competency and you're not performing at the staff level yet. Performing at the level is foundational.

Schedule meetings with people who have worked with you for at least 6 months. Bonus if they're more senior than you. Bonus if they've worked at the company for a long time. Bonus if they're directly involved in the promotion process. Ask them questions like "What's the difference between me and a staff engineer?" You're hunting for objections that people might have to your promotion. You'll notice themes after asking a few people. These are the possible objections that people may raise when you apply for promotion. Work hard to grow past these objections. Be mindful to produce evidence that the objections have been overcome.

Are you known for quickly implementing things? Consider spending an hour a day working on high-impact side projects. These projects should be low-effort and high-reward. These types of projects are easier to find at mid-sized companies. Mid-size companies are large enough to create small problems, but small enough to have trouble allocating resources to fix them. Need an example? Write a testing utility to reduce boilerplate for a common testing situation. People should want the result. Explain it to a few people if you're not sure. If nobody says some variant of "I wish that someone did that," consider picking another project. Tell people after you implement it. Send an email or Slack message or whatever telling people about it. Rinse and repeat. You'll get better at identifying these projects over time.

You might want to change teams to pursue a good opportunity for promotion. There are lots of valid reasons to look for a team change. Maybe the new role will clearly help you grow compared to your current job. Maybe you've always wanted to work under the new manager. There's nothing wrong with changing teams. It's just business. But don't change teams solely for a promotion. That's a recipe for unhappiness. A good fit is way more important. You may need to overperform your current role for years before you are promoted. Find a team where you may be happy for years.

Putting yourself in position is not a solitary process. You will need the feedback, help, and support of everyone around you. You need your manager's support to produce a good plan and be on the right projects. You need your colleagues' support to help you identify your blind spots to get yourself promoted. And you need your teammates' support to work on projects with you (and potentially under you, if your promotion plan involves being a tech lead). Don't forget this.

Providing the evidence

You'll be ready when your manager is willing to defend your promotion. At a mid-size company, it'd be difficult to be promoted without your manager's support. This may not be true in FAANG-sized companies that have realized that processes need exceptions. But a smaller company may not yet have any workarounds.

First, gather all of the evidence that supports your promotion. You can collect this from a variety of places:

  • What have you committed?
  • What pull requests have you commented on?
  • What designs have you written?
  • What designs have you commented on?
  • What meetings were you in?
  • What documentation have you written?
  • Who have you been mentoring?
  • What emails have you sent?
  • Who can vouch for your work? Can they write you a recommendation level?

Understand how the promotion packet is crafted. The manager will do part of it. This could range from "the manager writes a statement in support of the employee" to "the manager summarizes the entire argument for promotion."

Manager involvement has benefits. Managers are supposed to understand the performance management system. They are well-positioned to craft persuasive arguments within this system. Heavy manager participation also has drawbacks: managers are most overwhelmed during performance management and promotion season. The most overwhelmed may be forced to make hard choices about how to spend their time.

Help your manager before the process starts. Write a document summarizing how you met every competency. Provide links. "I worked on ProjectX and produced these designs: [link, link], and had the following technical accomplishments: [link, link]. I had mentorship relationships with $engineer_x and $engineer_y, and wrote $internal_documentation offering people suggestions on how to effectively mentor engineers." Err towards oversharing. Make it easy to copy and paste. This means that the writing should be polished.

Don't overstate your accomplishments. If you worked on a design with someone, say that you "co-designed" it. Don't make it sound like you implemented entire projects if you were one part of a team. If you're ready for promotion, you should be able to directly state why your accomplishments met the guidelines.

Managers are familiar with your work. But they're not living your life. They may not remember all of your accomplishments, especially ones that happened outside of the team. Be sure to produce the summary. Don't hold back. They can cherry pick what you gave them.

What if your promotion may be borderline? This can happen naturally: the performance process happens at a fixed cadence. Sometimes it doesn't happen at a perfectly convenient time. Focus on the story of why your accomplishments meet the promotion guidelines. Remember all of those electronic records that you've been producing about your accomplishments? Extract and summarize the themes from them. Use the records as proof. Pull things into linkable formats and provide the links. People like stories and they like having reasons for their decisions.

What if you get rejected? Rejections are okay, even if they feel bad. They're not permanent. They simply mean that you either haven't persuaded everyone that you're meeting the guidelines, or there are guidelines that you need to meet. Have the specific objections explained to you. Keep asking until you are given specifics. Vague reasons are difficult to address. Don't accept the "keep doing what you're doing" explanation. 6 months later, you probably kept doing what you were doing, but you still won't get promoted. "Not enough of a track record" isn't a specific reason. "If you launched your current project, we'd have the evidence we need" is a specific reason. "You met the technical criteria, but your teammates report that you give harsh feedback so we're worried about putting you in a broader role" is a specific reason.

Work with your manager to develop a plan for showing evidence that you've overcome those objections. The evidence is important. It will provide the story about why you're ready for promotion the next time. "We thought that they hadn't provided enough mentorship. But in addition to the 1:1s they had been holding with their teammates, they took a few professional coaching sessions on mentorship, they onboarded 2 new engineers, and polished and promoted the team's onboarding documentation for everyone across the company to use"

In summary

Understand the process: Talk to as many people as possible about your specific company's promotion process. Learn how it's supposed to happen. Learn how it actually happens. Understand the human elements that factor into the promotion decision.

Put yourself in position: Learn how to perform at the necessary level. Have frank performance conversations about how you are performing, and how people are perceiving your performance. Do everything that you can to address any objections that people bring up. Leave evidence about your accomplishments.

Provide the evidence: Help your manager when you're going up for promotion. Provide a summary of how your work meets the promotion threshold. If you get rejected, ask until you receive specifics. Then, work with your manager to craft a plan to overcome these objections.

Tips for wearing homemade cotton masks

About a week ago, I watched a video that Jeremy Howard released. It explained the need for wearing masks during the coronavirus outbreak, and demonstrated how to make one with just a T-shirt and scissors.

Jump to 7:00 to see the cuts he makes in the shirt.

Luckily, I had surplus cotton undershirts to use for experimentation before I could get masks made from more comfortable material. This gave me room for trial-and-error. I made two masks that night, and my girlfriend and I started wearing them.

Me in a black T-shirt mask with a Yankee's cap

My neighbor asked me if I was going to rob her. Honestly, I see where she was coming from.

More and more government entities have recommended homemade masks. Most recently, the CDC recommended that all Americans wear homemade masks outside of their homes. This does not replace social distancing. The masks should be used together with social distancing.

Cutting the mask

My girlfriend and I have both made a few masks by this point. Most of our masks have been made out of T-shirts, but I also sewed a mask yesterday using 600 thread count sheets. You can make a few choices that will improve your experience. Don't get me wrong: these masks are forgiving. Anything you cut will probably work. But some decisions can save you some frustration.

Cut T-shirt masks low enough below the sleeves

Make sure that you cut low enough. Otherwise you may not have enough material to cover your nose and mouth. Or even worse: you'll have exactly the right amount and need to continually adjust the mask. This is a nonstarter, since you shouldn't touch your face when you have the mask on.

You don't need to go crazy when considering the cut. An inch below the sleeves is sufficient. Cut straight across the shirt. Avoid veering the cut towards the neck. You'll do great.

Cut the front and back of the shirt as evenly as you can

One of my first two masks was "the bad mask," which we threw away. When cutting the mask, I allowed the top and bottom layers to slide against each other. I cut the cloth at different heights on each layer. After the cuts, the cloth from the back didn't fully cover our faces.

This is easy to prevent. Spreading the shirts out on a table helped. Sharp scissors help. Stop cutting when the fabric starts to slide. The cuts may end up uneven. Just adjust it and keep going.

Err on the side of thicker straps

I broke my favorite mask while tying it. The straps had been too thin. Err on the side of cutting your straps a little thicker.

Cut the "U" in the sleeves deep enough

On men's medium undershirts, I needed to cut the U deeper into the sleeves than I expected. I needed to cut even further on a real T-shirt. In our first cuts, the U stopped before the stitching that connects the sleeve to the torso. This made the masks difficult to tie. Extending the cut at least a half inch past this stitching made the masks much easier to tie.

Wearing the mask

Wear T-shirt masks with a hat

A hat helps hold the top knot in place. I went on a 2 hour grocery run a few days ago. The hat pinned the mask to my head. I didn't need to readjust it once it was comfortable.

The hat also helps the aesthetic a little. At least, as measured by a handful of comments. One delivery driver offered that it looked like I had a hurt tooth. My girlfriend suggested that it looked like our heads were gift-wrapped presents. The hat fixes this somehow. Now, people joke that I'm going to rob them, which I guess is an improvement? My friend Ryan wore a hoodie with a homemade T-shirt mask. He looked like a cartoon assassin. So there's a lot of variability in the look.

Plan for the time

I take walks during my working day to stay sane. The walk is often sandwiched between meetings, and I need to return before the next one starts. It takes a few minutes to tie the masks. It also takes extra time to wash them after the walk. I pad my walks with 5 more minutes, and that is enough.

Don't mess this up. Clean your mask after you go outside.

You'll get over the embarrassment

My girlfriend and I felt odd the first time that we stepped onto the street wearing our masks. It felt like wearing a Halloween costume in March. But we got over it. And we felt safer when we walked past people.

It became irrelevant a few days later. Most of my neighbors started wearing masks in response to what they were reading in the news. Now I'd feel silly if I didn't wear a mask.

Wearing a T-shirt mask with glasses

My glasses fogged up on my first walk. Completely. I had to remove them to see anything. I was just walking around my neighborhood, so it wasn't a problem. But I needed to fix this before I could go grocery shopping.

Glasses fogging has been a continual problem. But with some experimentation, I've started to make it manageable.

Breathe out through the cloth

My glasses fog when I exhale normally. To combat this, I press my lips against the cloth when I exhale. I also try to exhale through just my mouth. In practice, I get into a rhythm of inhaling through my nose and exhaling through the cloth. You don't need to get this rigorous. It's just a habit I've picked up.

This doesn't work as well with the higher threadcount mask that I sewed. The air is still escaping around my nose. But it's sufficient for the T-shirt masks.

Tie it lower and tighter than you think you need

When tying the knot behind your neck, tie it lower and much tighter than you think you need.

The air that fogs your glasses is escaping around your nose. Making the bottom knot tight addresses this: it creates a tighter seal around your nose.

I also noticed that the knot slipped down the first few times. This caused the pressure on my nose to relax. I fixed this by tying the knot lower than I naturally would.

Put the mask higher on the bridge of your nose than you think you need

Putting the mask higher on the bridge of your nose works well with the low knot. It changes the angle of attack so that the T-shirt hugs your face a little closer.

Here's a picture of me with one of the masks. You can see that I'm wearing it really high on the bridge of my nose - it's roughly level with my top eyelid. You don't need to be this extreme if you don't have glasses, and you don't need to worry about this if you wear glasses and they're not fogging up.

Me wearing a mask. It's high enough to be roughly level with my top eyelids when my eyes are open.

To avoid foggy glasses, wear the mask higher on the bridge of your nose than you might guess. Wear a hat from the local sports team in order to blend in with your surroundings.

Wearing a T-shirt mask with long hair

I asked my girlfriend about wearing the mask with long hair (her hair extends past her shoulders).

Prefer a ponytail

She said that it's easier to wear with a ponytail because it doesn't interfere with her hair.

A bun is still manageable

She said that It's harder when her hair is in a bun. The bun made it easier to accidentally tie the mask into her hair. She called it a double-edged sword: resting the top knot against the bun helps keep the top knot in place. But if too much pressure was applied to it, then the bun would risk being undone.

Wearing a T-shirt mask with headphones

It took some adjustment, but I got to the point where I could wear the mask comfortably with headphones.

Pass the top knot behind your ears, not over them

The most comfortable way to wear the top knot is over your ears. But this conflicts with headphones. Instead, pass it behind your ears. This puts some pressure on my ears. They stick out a tiny bit. But it's still comfortable to wear the headphones with the masks.

Do your best

This is a process of trial-and-error, and we're all doing our best. Share your tips with your friends.

DuckDuckGo is good enough for regular use

Google recently launched a desktop redesign. The favicon and URL breadcrumbs were turned into a header for organic search results. Ads had the same design, but were identified using the string "Ad" instead of the favicon. This design wasn't new. Google's mobile web search has served this design since May 2019. But users and regulators complained that the desktop version blurred the distinction between ads and organic results. Google reverted the change a few weeks later, citing the backlash.

I experienced change aversion when I tried the redesign. Change aversion is a simple idea: users react negatively to new experiences, but they stop caring as new experiences become normal. Anyways, looking at the Google redesign gave me change aversion. I knew that I wouldn't care about it within a few days. But I decided to put it to good use: I would try DuckDuckGo. If it was time for Google to experiment, then it was time for me to experiment. I had wanted to try it for a while. This finally gave me the activation energy to switch.

DuckDuckGo's premise is simple. They do not collect or share personal information. They log searches, but they promise that these logs are not linked to personally identifiable information. Their search engine results seemingly come from Bing, but they claim to have their own crawler and hundreds of other sources on top of that. They do customize the results a little: geo-searches like bars near my location give me results from my home city of New York. But search results aren't personalized. I've always wondered how good the results would be.

Anyways, here are the guidelines that I set for my experiment:

  • I would switch all of my browser's default search engines to DuckDuckGo across all of my devices.
  • I would use DuckDuckGo for at least a month. This would give me enough time to learn some of its strengths and weaknesses.
  • I would not use any DuckDuckGo poweruser features unless I could guess that they existed. I wanted to understand the out-of-the-box experience on the site.
  • I could use the !g operator to search Google if DuckDuckGo failed. Some will point out that this violates the previous rule. But as soon as a discussion changes to DuckDuckGo usage, people can't WAIT to talk about how often they use !g or g!. Do you need an example? I discussed it in this paragraph and tried to blame it on other people. I'm serious: people can't talk about DuckDuckGo without talking about !g. It's the law. So I know about it and I will use it.

I haven't tried a new search engine since I tried Bing in 2009. It was time to find out how good DuckDuckGo is in 2020. What was the biggest difference that I found?

Google is the king of low-intent searches

Google has a structured understanding of many domains. This is a difficult moat for other search engines to cross. This is evident when comparing low-intent searches. These are searches with an ambiguous purpose. The subject is broad and it's not clear what the user wanted. The user might not even "want" anything except to kill five minutes before a meeting.

Let's try a low-intent search. Type harry potter into Google. In response, Google throws everything at the wall to see what sticks. In addition to the organic links, Google serves me:

  • A panel on the right with a ton of metadata. This includes oddly-specific structured data like "Sport: Quidditch".
  • A list of five of the seven books in the series.
  • Fantasy books from five related searches.
  • A news panel containing three articles about Harry Potter actors.
  • The harry potter Google Maps search, centered on the New York area.
  • A "People also ask" panel with four questions.
  • A link to three Harry Potter-related YouTube videos.
  • Three recent tweets from @HarryPotterFilm.
  • A panel with 7 "Fantasy book series" results.
  • A panel with 7 "Kids book series" results.
  • 8 other search strings related to harry potter.

This makes sense: what did I want when I searched for harry potter? Google can't know. So Google returns information from many domains to attempt to satisfy the query. Google returns so much information that something will be close enough. This is a huge competitive advantage. They can serve good results for bad searches by covering as many domains as possible.

This is a departure from how search used to work. When I was in grade school, I was taught how to craft search queries. Someone herded us into a library and explained how to pick effective keywords, quote text, use operators like AND or OR, etc. These days are dead. None of this matters on Google. If you want to know showtimes for "Harry Potter and the Cursed Child," a search for harry potter will get you close enough.

In comparison, DuckDuckGo's results for harry potter are relaxing. It serves a small knowledge panel to the right and three recent news articles at the top, some organic links, and nothing else. It's much easier to scan this page. It's a more relaxed vibe. But if I actually wanted something, it likely wouldn't be on this page. You can make the argument that I got what I deserved: I didn't clearly communicate what I wanted, and therefore I didn't get it. But Google has trained everyone that broad queries are effective. It feels like magic. It's not. It's the result of years of developing a structured understanding of the world and crafting ways to surface the structure. And it's something that potential competitors will need to come to terms with.

I don't personally miss most of Google's result panels. Especially the panels that highlight information snippets. It's easy to find these. Searching microsoft word justify text provides me a snippet from Microsoft's Office's support page explaining what to click or type to justify text. I've learned not to trust information in these panels without reading the source they came from. Google seems to cite this information uncritically. I've found enough oversimplified knowledge panel answers that I've stopped reading most of them. Recently, I was chatting with a Googler who works on these. I asked them if I was wrong to feel this way. And they replied, "I trust them, but I've read enough bug reports and user feedback that I don't blame you." So my position is wrong, but not very wrong. I'll take that.

Some of Google's panels are great. I miss them. I haven't found anything better than Google's stock panel for quickly looking at after-hours stock movements. Searching Google for goog stock will show you this panel. I miss you buddy. I hope you're doing well.

Ultimately, it stresses me out when Google returns many panels in a search. I'm sure that each is a marginal gain for Google. But I don't like how Google feels as a result. I'm continually glad to see just 10 links on DuckDuckGo, even if this means that I'm not getting what I wanted. This has been training me to craft more specific searches.

DuckDuckGo is good enough

Let's move away from Google's competitive advantages. How does DuckDuckGo perform for most of my search traffic? DuckDuckGo does a good job. I haven't found a reason to switch back to Google.

I combed through my browser's history of DuckDuckGo searches. I compared it to my Google search history. When I fell back to Google, I often didn't find what I wanted on Google either.

Most of my searches relate to my job, which means that most of my searches are technical queries. DuckDuckGo serves good results for my searches. I'll admit that I'm a paranoid searcher: I reformat error strings, remove identifiers that are unique to my code, and remove quotes before searching. I'm not sure how well DuckDuckGo would handle copy/pasted error strings with lots of quotes and unique identifiers. This means that I don't know if DuckDuckGo handles all technical searches well. But it does a good job for me.

There are many domains where Google outperforms DuckDuckGo. Product search and local search are some examples. I recently made a window plug. It was much easier to find which big-box hardware stores had the materials I need with Google. I also recently bought a pair of ANC headphones. I got much better comparison information starting at Google. Google also shines with sparse results like rare programming error messages. If you're a programmer, you know what I'm talking about: imagine a Google search page with three results. One is a page in Chinese that has the English error string, one is a forum post that gives you the first hint that you need to solve the problem, and one is the error string in the original source code in Github. DuckDuckGo often returns nothing for these kinds of searches.

Even though Google is better for some specific domains, I am confident that DuckDuckGo can find what I need. When it doesn't, Google often doesn't help either.

Sample of times when both Google and DuckDuckGo failed me

  • I tried to write a protobuf compiler plugin using the official PHP protocol buffer bindings. I now believe that writing a protobuf compiler plugin in PHP is impossible due to several arbitrary facts, but I needed to piece this information together myself. My searches sprawled over Google and DuckDuckGo across several days before I concluded that it could not be done and that I could not find a workaround. This isn't DuckDuckGo or Google's fault. Some things just don't have answers online.
  • I often fell back to Google for gif searches. It turns out that I'm bad at finding gifs. Sometimes I get exactly what I want, like searching for gritty turning around. But I had a lot of trouble finding a string that gave me this. Eventually I found it by remembering a Twitter user that had posted it and scanning their "Media" posts.
  • Trying to find a very specific CS:GO clip that I had seen on Reddit years ago. I found it via a combination of Reddit search and skimming the bottom of Reddit threads for video links.
  • What is australian licorice? Is it a marketing gimmick? Stores sell it. It's tasty. But I can't find an explanation anywhere.

If you're thinking of switching to DuckDuckGo because of the Google redesign, I'll save you the trouble: DuckDuckGo's inline ads are formatted similarly to the Google redesign that got reverted. If anything, DuckDuckGo's ads are harder to spot because DuckDuckGo's (Ad) icon is on the right, while Google's was on the left where my eyes naturally skim.

It turns out that I care about privacy, but I still use Google Analytics on my blog. I haven't been thinking about digital privacy for long enough to have a consistent and principled opinion. Sorry about that.

Let's go back to the original selling point of DuckDuckGo: they don't track you.

I have been reading my DuckDuckGo searches in my browser history for this post. It's wonderful that all of these searches remained private. Some of them should remain private for stupid reasons. I don't want anyone to know that I searched for what is the value of a human life because it makes me sound like a killer robot. Other searches are much more sensitive. One is the name of a medication I'm on. Others are searches about pains and fears that I have. DuckDuckGo allows me to perform these searches without building a profile of me. I'm sure that advertisers pick up the scent as soon as I click a link. But I appreciate the delay. I didn't think about the traces I left online when I searched on Google. But now that I know I have the choice, I'm actively comforted by reviewing my DuckDuckGo search history and reading everything that they didn't track.

I also noticed that many searches show trends. I knew that this was true in theory. But it's different when you see it in your own search results. A month ago, many of my searches related to vacation planning. But now they don't anymore. The coronavirus scrapped my plans. But there are many life events that could have also caused this: health reasons, family problems, etc. These are things that ad networks could piece together as I visit sites. It's possible to imagine even darker versions of this - imagine the months of searches that relate to a pregnancy with a miscarriage. Many companies could profit from a couple going through that process, if they showed the right ads in the right places at the right time. There is a lot of trend information that you just want to keep to yourself.

What happens moving forward?

I will continue using DuckDuckGo. I don't see a reason to switch back to Google. I'm going to continue to fall back using !g when I need to. I'm going to try to avoid talking about the fallback (but let's be honest, I just did it again).

I still use lots of Google products. I'm not in the process of porting away from any of them. I still use Chrome in addition to Firefox and mobile Safari. Google Docs still holds a place in my heart. Etsy is hosted on GCP and uses Google Apps. Google Photos is still the best place for me to store and share my photos.

I liked the exercise of reading a month of my search history. You should do it, too. It became clear that I broadcast lots of information by having these very personal conversations with search engines. I'd like to understand more about the digital traces I leave online.

I don't want to turn into a digital hermit. But I would like to become more deliberate about the traces that I leave around the internet. Even as a developer, I'm not sure what will happen if I disable third-party cookies across the internet. But I'd like to start reading more about digital privacy to understand what tradeoffs I am making.

Disclaimer: I worked at Google from 2010-2015, but did not work on search.