Skip to main content

Blog posts

Seven steps to writing a better software engineering resume

Over the past few years, I've reviewed lots of resumes for friends and former coworkers. I've also reviewed resumes from strangers, like on Twitter, where I offered to do resume reviews. I've been told that my reviews are helpful, so I'm documenting my approach, which focuses on whether the resume is a good fit for the job that the candidate wants.

Software engineers can have their resume reviewed for free in a number of ways, such as by consulting Reddit, Discord and other forums, or by asking friends. From my observation, most online reviewers begin with the assumption that the candidate has provided all the necessary information. They then suggest tactics for strengthening that information. For example, they help candidates to rewrite each bullet point to fit frameworks like "Situation, Task, Action, Outcome." They fix formatting, suggest rewrites, and highlight formatting inconsistencies. They're really good at focusing on the tactics of writing a resume.

Peggy's Cove lighthouse in Nova Scotia

Tactics are fine. Everything I mentioned in the previous paragraph is important. But tactics are best supplemented with a good strategy. How do you know that your resume has the right information? You could describe work experience in an infinite number of ways. Demonstrate how your existing work experience makes you a good candidate for the job that you want.

Many reviewers ask, "How can you present this information in the best way possible?" I also ask, "How do you know that you included the right information?"

That might sound obvious, but it's difficult to apply in practice. I know this from my own experience. When I review resumes, I ask candidates for the resume and job postings that interest them. In a vast majority of reviews, I demonstrate how candidates can include extra experience to more effectively show that they meet the criteria mentioned in the job description.

Discord message that says, "My first piece of feedback is that the first 3 paragraphs of that job posting talk about working with teams, and your resume does not hint, in the least, that you've ever worked with another person on a team"

Part of a "please tear my resume to shreds" review that I did for a friend

Resumes suck, but most jobs require one. Maximize the impact of your resume. Incorporate information from job postings, job descriptions, and any other relevant information, and use it all to produce a targeted resume.

A quick note: this is written for software engineers with previous work experience who want a new job in the field. If that doesn't describe you, you might still find this useful but you should think about what's different for your situation.

Here's how I'd write my own resume if I had to write one today

The TL;DR of my strategy is to iterate from a generic resume to a specific one. Start with a baseline resume that reflects your experience to the best of your ability but is not tailored to a specific job. Then, find information about the jobs that you want. Take notes from the job postings. Rewrite your resume using the information in those notes.

And now, in more detail:

Step 1: Write a resume the way you normally would

Create a resume however you want. Modify an old resume or create a new one. I don't care which. Don't overthink it.

Personally, I modify my old resumes. They're always written in LaTeX because when I was in college, I hoped that I would get street cred by ignoring decades of word processor innovations. I don't know if this worked, but I'm too lazy to change my approach at this point. If I had to make a resume today, I'd dust off this file and modify it to reflect my most recent experience and remove irrelevant information. Then I'd relearn how to run LaTeX in The Year of Our Lord 2021.

Anyways, include all of the usual sections in your resume: name, contact information, experience, any relevant schooling, maybe relevant/interesting projects, maybe publication experience if you're a researcher, maybe other things like security clearance if you have it and it's relevant.

Your resume should resemble other resumes in your field. If resumes in your field tend to be compact, then your resume should be compact.

Spell check and proofread it. Be prepared to have a conversation about every fact on your resume. Just like you shouldn't build a house on an unstable foundation, you shouldn't mention something on your resume if you can't back it up.

Step 2: Collect three or four relevant job postings that intrigue you

Find job postings that appeal to you. If you want to work for a specific company, find the available listings in the "Jobs" or "Careers" section of its website. Otherwise, look for companies offering the role you want.

It's OK if you don't know what job you want yet. Look for listings that appeal to you. Spend some time researching different companies and fields until you have identified a few job postings that stand out to you.

It's important to collect more than one job posting. If you're starting with a job posting from a specific company that you’re interested in working for, supplement it with similar postings from that company, or other postings from similar companies. Why? You don't want to assume that any single job posting is complete. You will be mining these postings for data, and a single posting might omit something relevant to the job. But the more postings that you examine, the less likely that an important qualification will go unmentioned in any of them.

Step 3: Create a spreadsheet and aggregate data from the job postings

Make a table in a spreadsheet with 3-5 columns. The columns should represent different, and mostly non-overlapping, competency areas. Then, read through the job postings sentence-by-sentence, and add information from the job postings to these columns.

I typically create categories like these:

TECHNICAL SKILLS: Any hard skills that are explicitly named. Programming languages, operating systems, third-party libraries, applications, etc. "Experience with Python in Unix operating systems a plus" or keyword soup kind of things.

DELIVERY: Anything related to execution. The types of projects that you've designed, implemented, or delivered. Whether you're going to be on a pager rotation. The size and scope of the tasks that you're expected to complete. The types of financial, product, or technical outcomes that you're expected to achieve (or have already achieved).

LEADERSHIP: This can take a lot of different forms. Information in this category might call out specific leadership roles, like tech lead, project lead, or management. They may want you to be proactive about suggesting product or process improvements. They may want you to mentor more junior engineers. If you haven't been in the industry for long, it's okay to skip this category, or merge it with COMMUNICATION.

COMMUNICATION: Anything related to interacting with other people. There are a wide range of skills that could fit here. It could be project management practices, how you work day-to-day with teams, expected response times for answering support tickets, ability to be a point-person for your team or for external stakeholders.

Tailor these categories to your specific field. If you are applying for research jobs, then you'll probably have a RESEARCH category. The category names don't matter too much. You only need a few that capture different concepts.

Now that you've made the categories, the actual work begins. Read through every sentence of each job posting and incorporate each piece of information from the sentence into at least one of the categories. If you encounter a line like "Experience with Go a plus," then put "Go" under TECHNICAL SKILLS. You don't need to record duplicate information. If two job postings mention Go, put it once. If two job postings mention working as a tech lead, put it once. Make sure that the information in each sentence is captured in your spreadsheet.

This can be time-consuming. It takes a while to process all of the sentences in the job postings. Thankfully, processing each subsequent posting will take less time once the first posting is finished. Job postings will have duplicate information. You only need to record the differences.

If something doesn't fit into one of the categories, try to include it somewhere, even if you need a MISCELLANEOUS category. You don't want blind spots in your resume. For example, senior+ engineers often overemphasize their technical skills and project experience, and underemphasize their soft skills.

Step 4: Modify your resume to address as many of the relevant competencies as possible

Look at each item that you recorded in the previous step. Look through your resume and ask yourself, "Does my resume address this? If not, can I add a new bullet point, or can I add relevant information to an existing bullet point?"

At this point, your resume might get longer as you add information to address criteria from the previous step. If this makes your resume longer, then rewrite the bullet points for brevity. Avoid making your resume significantly longer than when you started.

It's okay if you don't address every item in the categories that you produced. Again, you should feel confident in every item on your resume. Don't add something if you can't talk about it for 10 minutes in an interview. If a job asks for PHP experience and you've only written 50 lines of PHP in your life, leave it off your resume.

Step 5: Make the hiring manager want to hire you

People will look at each line of your resume and say, "So what?" To counter this, make sure that you explain the impact of your experience.

Think about the people making the hiring decision. This will differ per company. At a megacorp, the people hiring you might be a collective of managers or senior (or above) engineers. If you're applying to work for medium-sized companies, the hiring manager will probably be in your management chain; either your manager or a boss of theirs. At a small startup, the founders might hire you themselves.

Make people want to work with you. The people at the megacorp want to prove that they consistently hire high performers. Your manager wants to know that you can function effectively in a team environment. A startup founder wants to know that you can ship.

Explaining your impact allows them to imagine how you would function on their team. Let's look at an example that I made up:

A bullet point without impact: "Tech lead for a 3 developer team. Worked with design and product to implement customer-facing features in addition to tech lead duties."

A bullet point with impact: "Tech lead for a 3 developer team. Worked with design and product to implement customer-facing features in addition to tech lead duties. Increased revenue $n million while maintaining a low defect rate."

When you refer to a responsibility without describing the impact that you had, you're just claiming that you did something. The impact helps you argue that you did it well. An engineer will think, "It sounds like they can ship code, and I can talk to them about why they had a low error rate." A manager will think, "OK, they can function on a team." A director will think, "OK, they help produce business results." A founder will think, "OK, they get code out the door that gets results." Either way, you're telling them that you're going to make them look good. "One additional strong developer! A team player! More money!"

Step 6 [optional]: Find a relevant career ladder

Find a career ladder that describes the job that you want. Then, look through your resume and see if you would hire yourself for the level that you want. If there are gaps, could you add any relevant experience to your resume to help fill these gaps?

This is optional, because it's uncommon for career ladders to be published. But there are a few. For example, Etsy open sourced their career ladder. If you find a career ladder that covers your desired job, look at your resume through the lens of this ladder. Is your resume missing anything?

I understand that these ladders are mostly used for internal promotions, but hiring managers sometimes look at resumes and ask themselves questions like, "If this person were working for me, would I promote them to the job they're interviewing for?" Don't worry if you can't find something. But if you can, use it.

Step 7: Proofread, spellcheck, and get feedback from real people

People reject resumes for the dumbest reasons you can imagine. There's the apocryphal story/joke of the hiring manager who shuffled resumes, grabbed a handful, and threw them out, "because I don't want to hire anyone that's unlucky." This is only untrue in the sense that these exact circumstances didn't happen, but it's depressingly easy to find forums where people say they would never hire someone, based on their resume, with arbitrary criteria that have literally nothing to do with job performance.

Strive to eliminate as many mistakes from your resume as possible. If you do literally nothing else, please run a spell check. Copy/paste your resume into Google Docs if your text editor doesn't have a built-in spell checker. Spelling mistakes are easily avoidable, so you don't have any excuse for allowing them to slip through. Don't make someone second-guess you because you wrote your resume in Visual Studio Code without spell check.

Read your resume out loud. Ask people to review it. Look for inconsistencies, for example in the use of periods at the end of bulleted sentences, and in the formatting of dates.

Ask people to give you feedback; the more, the better.

Even if you disagree with your reviewers, ask yourself whether you could restate something to make it clearer, or improve your resume such that they wouldn't have needed to give you feedback. If a reviewer raises an issue, then someone reading your resume at a company might think the same thing.

So, there you have it!

You can produce a resume that is tailored to the job that you want. Incorporate information from job postings and career ladders, explain your impact, and correct mistakes. It's not difficult, but it requires some grinding. But it's worth the time investment. It won't magically get you a job, but it brings you closer to getting a hiring manager to consider your application and think, "We need someone like this." You'll be more likely to get to the next step.

2020 year in review: living in interesting times

TL;DR: Holy shit.

Health

First, the pandemic. I have not contracted COVID-19 and I don't know anybody who died from it. I know people who were infected by the virus, but they've all turned out okay. I've been lucky so far. I was tested in December because I had a fever and a cough. Thankfully the test was negative. There's also good news on the horizon: we've reached the end of the beginning. The vaccines have started rolling out this month. I just need to hold on until phase 5, and then everything should start to return to normal.

I remember when the first cases were reported in New York. I looked up the infection and death rates from the virus, plugged them into a spreadsheet, dragged the calculation down for 2 months, and then immediately texted my girlfriend to suggest that she buy a few weeks of groceries as soon as she could. About 5 days later, everyone else joined me in feeling like this. There were hour-long lines at Trader Joes, and the local convenience stores were completely out of everything. It's hard to emphasize how quickly everything shut down and sold out. News articles from the morning were hilariously out-of-date by the afternoon. Companies were revising and re-revising their policies on a daily basis. I know workplaces that went from "we're open hell-or-high-water" to "we're shut down for the remainder of the year" in the span of a few days. I've heard of several workplaces that took the following approach:

  • Monday: "We're working from the office."
  • Tuesday: "You can work from home if you want."
  • Wednesday: "We're going to work from home for the rest of the week."
  • Thursday: "Please work from home tomorrow so that we may deep-clean of the office."
  • Friday: "We're shut down indefinitely."
  • 9 months later: "We're still closed."

New York was crazy at the beginning of the pandemic. I felt afraid whenever I was outside. We knew that SARS-CoV-2 is highly contagious, but we didn't understand its properties. People heavily emphasized washing hands and wiping down groceries, and there were suspicions that masks might make spread worse (on the theory that masks would trap the virus in front of your mouth or nose). I remember walking through grocery stores and holding my breath as I went through aisles with a lot of people. I remember moving out of the way and holding my breath as I walked past people on the sidewalk.

I saw a video by Jeremy Howard demonstrating how to convert t-shirts into masks. I felt a little better with masks on. That weekend, I sewed my own. After that, I began a long process of finding masks that work well with glasses. At this point, I have a good feel for what I need in a mask. Strong nose wire and large enough to cover my face. Adjustable ears. Either black, or a fun pattern. It's worked out well so far.

Besides the pandemic, my health was pretty good. My weight almost stayed consistent during the year. I see that I ended last year at 201.0, and today I was 204.2. I'll take that, given how severely the pandemic has restricted my normally active lifestyle. It could have been worse. My girlfriend deserves a lot of credit for my healthy eating habits. She's a strong advocate for leafy greens and having balanced meals, and she challenges me when my eating habits slip. The pandemic did not help my exercise at all. I barely got around the city this year. I biked to Queens and Manhattan a few times, and I've tried walking as much as possible. But mostly I stayed put. I'm excited for the reopening because I'd like to take advantage of things like bouldering gyms for cross-training.

My mental health has remained good, which is a miracle consider that I've been tethered to my apartment. It hasn't been perfect: I feel more irritable and cooped-up in general. But I've adapted to staying in my apartment. I miss a lot. I'm excited to go out again. I'm excited to eat at restaurants and go to museums again. I'm going to visit my family when I can.

I left my job at Etsy. See the Career section for the story. This had a noticeably positive impact on my health. I've slept more every night. I take long walks during the day. My step count is up on average. I take the time to cook healthier lunches. I've been exercising more, and I was already running 3 or 4 times a week.

Career

As I mentioned in the last section, I left my job at Etsy in November.

The reason was simple: I had always wanted to start my own software development company. Every time I got a stock grant, I would ask myself, "Do I want to work until my next one?" It was a convenient amount of time to consider. Normally I was granted stock every 3 months, but now that I had been there for 4 years (and some boring details with the stock refresher program), I got about the same amount but every 6 months instead. So I asked myself, "Do I want to do this job for another 6 months?"

My specific job was no longer better than the alternative of working for myself. I highly recommend Etsy as a place to work. It's growing quickly, they have a good mission, the people are phenomenal and kind, and it has a positive impact on the world. I personally just ended up in the growing pains of a medium-sized company on the cusp of becoming a large company.

So what happened? For about a year and a half, I worked on adding GraphQL as an internal API layer within Etsy. I'm proud of the work that I did. I was given an incredible amount of latitude to design and build the support for it. It's some of the best engineering that I've ever done. Adding an entire API layer to a medium-sized company is hard, but we successfully launched, got some people using it, got some wins, and were growing it. Yet there were serious staffing challenges on the project. At the beginning of 2020, we were 2 engineers and were promised 2 more would be added. The 2 promised headcount vanished at the beginning of the pandemic, and the other engineer was unable to work for vast swaths of the year. Consequently, I worked alone for most of the year. It was too much for me. Working on a growing an API layer and working by myself was burning me out. Taking a 6 week break and working on another team didn't shake this feeling for me. Problems like this are difficult to fix. Hiring takes months. Onboarding and ramping up takes months. So this was a problem that would take roughly 6 months to fix.

I want to emphasize that Etsy is a great place to work. I would work there again. If you don't work there, you should seriously consider it. They pay well and the work is meaningful. My situation was an edge case. A lot of Etsy's practices were developed while it was a small or a medium-sized company. But make no mistake: it is rounding the bend to being a large company: It just entered the S&P 500. Sometimes it takes scale and growth to uncover problems. Things that worked at the smaller scale break when the company is three times larger. I encountered one of these growing pains, but it's the kind that the company will learn how to avoid over time.

So I'm setting out on my own. I've been inspired by the stories that I've heard on the Indie Hackers podcast. Unlike many, I am so fortunate that 2020 improved my financial footing. My expenses went down and my savings went up. Accordingly, I'm in the best position of my life to start a new business that can be successful. I started a company called Jaunty, Inc. using Stripe Atlas.

I'm waiting for the IRS to issue my EIN, which will allow me to set up a business bank account and have fully-separated finances. But the IRS is currently backlogged. In fact, the IRS won't even respond to the question "has it been issued yet?" until I've been waiting for 45 days, and I've been waiting for 30. Accordingly, I've been trying to learn skills that I can reuse when I can have separated finances.

I spent about a month having conversations with people who run small businesses. I had two goals for these conversations: first I wanted to get a sense of the challenges that they face. These might be my problems soon. Second I wanted to see if there were obvious problems that I could solve. It would be nice if I could build services to help small businesses. The responses had many similarities: lots of people had trouble getting users in the door, lots of people were uncertain how to market or identify traction channels that would work for them, and their problems were often hyper-specific and hard to generalize across all of them. These conversations helped me understand that just identifying a problem doesn't help that much if the problem isn't concrete. Sure, companies "need help," and often have trouble making decisions, but this isn't an actionable problem to start from. It's a problem in an abstract sense, not a concrete one.

I had a really exciting conversation with a product manager that my friend connected me to. He helped me understand how product managers view idea creation and validation, and gave me a good mindset for validating whether a concrete idea would be useful or not.

Then asking myself, "What could I make without spending much money?", I spent the month of December trying to set up a free newsletter showing the math behind business advice. My idea was that each post would have interactive tools embedded, and explain the intuition behind why the advice would work. I ended up with 15 subscribers over the month, but I had trouble promoting the newsletter. I got more subscribers by asking for help than I did by promoting the issues that I wrote. Someone described the newsletter as "circling around a good idea without quite hitting it," which I think was accurate. My girlfriend identified the disconnect, which is that it's probably suited for a more visual format like video, since the verbal explanations are dense but the visuals in the posts helped. It's possible that I could have also gotten more traction by continuing to get advice and iterate, but I'm less excited with the idea now that I've lived it. Writing weekly blog posts powered by 600+ lines of code each is difficult.

I vastly prefer how I spent November over how I spent December. Building and promoting a newsletter was comfortable. Talking directly with people was awesome - I learned a ton quickly. It helped me understand their day-to-day.

I think that the newsletter is a nonstarter, so I've been examining the hosted GraphQL market over the past few days. After all, the very first thing that I purchased for my newsletter was hosting on Vercel. This is a great match for my recent work experience, and I think that I can provide real value to companies here. There's no obvious single winner in this space, and I think there's room to create a niche business. Of course, I don't want to reach out to people around the holidays, so I've just been researching for the past few days. In the new year, I will start having active conversations to get a better picture of what people might want in a solution. I found the talk "Your first 60 days" to be really inspiring, and I'm going to try the approach it outlines.

Hopefully, I'll have some good news to report in the new year. I expect that I will be able to try and fail at 3 ideas during 2021. Hopefully, one of the three will start to get some traction, and I will be able to get some revenue. My 2021 goal is to to rent out a tiny private office. If I learned anything from the pandemic, it's that I need a separation between my personal space and my work space.

As a coda, this blog was actually pretty successful this year. I had 207,000 page views this year, which is easily a record for me. That's not a lot by viral internet standards, but it's a lot for me. The viewers predominantly came from two posts: Why are we so bad at software engineering? and DuckDuckGo is good enough for regular use, which had varying degrees of popularity on Reddit and Hacker News. Because of the traffic from these posts, most of my other posts got hundreds of views from people clicking around my blog for more content.

Personal life

My personal life went pretty well during the pandemic. In a lot of ways, I feel guilty that my life went pretty well in a year with so much misery.

My girlfriend moved in as NYC shut down. She's still here. It was challenging at first - we went from "we get dinner once during the week and spend the weekends together" to "we are in the same space 24 hours per day indefinitely" It was a lot. But we've made it work. A few things helped this: routines, clear expectations, making sure we were meeting each other's needs, and having a good apartment layout. Having three rooms that block sight lines has really helped. It's been nice cooking with someone every night.

Besides, that, social interactions were infrequent and often strange:

  • My sister got married in the park, and we hosted (just) the two of them for dinner afterwards.
  • I went for a few walks around NYC with friends.
  • My friend's house flooded unexpectedly. My college friends and I spent the day helping him throw away his ruined stuff and shovel all the mud out.
  • We visited my girlfriend's sister's family for a short getaway.

This is the complete list of in-person interactions that I have had since March. I know that pandemic shaming is fun, and I definitely didn't reduce my social interactions as much as some, so I'd be fair game for that.

Besides that, I've experimented with video chats with varying degrees of success. My college friends and I have a video game night every Friday, and this has been crucial for helping me feel the passage of time. March feels like it was yesterday, but if I frame it in terms of "how many video game nights has it been?", I can at least feel some distance.

The most stress I encountered was probably the period between the 2020 election and the period where Joe Biden was announced the winner, with the second-most being the following period where it was unclear whether democracy would hold in the United States, and the following period was reading about the George Floyd protests and seeing the widespread police violence against protestors. I have a nervous habit of chewing my nails when I'm thinking or nervous, and this evolved into literally chewing open sores into my fingers. Thankfully these have mostly healed. At this point, I can handle lemons and limes again without fear. In 2020, I donated a lot of money to causes (Biden's campaign, organizations like Black Girls Code that bolster education for underrepresented minorities in tech, and organizations that seek to selectively replace policing with policies targeted to specific problems), but I didn't donate much time this year. I don't know how to feel about this.

My girlfriend is a professional translator and précis writer. She is extremely concerned with the precise definitions of words. This means that I had the misfortune of learning the difference between the terms coronavirus (a class of viruses), novel coronavirus (a placeholder name before a significant coronavirus strain is named), SARS-CoV-2 (the official name of the virus causing the current pandemic), and COVID-19 (the human disease caused by SARS-CoV-2). Why misfortune? Because I watched people use them interchangeably and incorrectly all year, while also knowing that it wasn't worth correcting them. This was my small 2020 cross to bear.

2021

My biggest focus for 2021 is getting Jaunty, Inc. on a sustainable course. I would like to end the year by paying myself enough of a salary to cover all of my monthly expenses, and also to be able to rent an office somewhere. $10k-15k in monthly revenue is the line where many people can start doing this. This would put me close to hiring my first employee, but that's getting ahead of myself.

I'm hoping that I will receive the vaccine by the end of summer. I would like to travel to see my parents. And I definitely need to travel somewhere for a vacation. Getting the vaccine by the end of summer would be exciting, because that means that I'd get to start enjoying NYC again.

I used HEY for a week, but I'm going back to Gmail

I've been trying alternatives to Google services lately. No offense to Google. I just used their services uncritically for years. Now I want to evaluate them against their competitors. For example, I now use DuckDuckGo instead of Google.

Basecamp released HEY recently. It is a privacy-focused email client that aims to give power back to the user. This sounded like something that I might appreciate. Every Gmail account I've owned uses a similar combination of features. Priority inbox, some specific settings that must be checked, a bunch of filters, etc. It's always the result of iteration and resignation. It never feels quite right. It's easy for me to believe that an email client could provide me a "wow" experience by encoding my workflow into the UI, and providing an "I've never known it before, but I've always wanted that!" moment.

I got a launch invite and decided to try it for a week.

Let's cut to the chase: HEY is a good email client, but it's not a good fit for my relationship with email. I'm not going to pay for it. But this post isn't a hit piece. Negativity is cheap and lazy. I'm going to explain the value that HEY provides. I will also explain why it wasn't a good fit for me.

How I evaluated HEY

I forwarded my personal Gmail into my hey.com account for one week. I got ~120 emails from ~80 senders. I only sent a handful of emails. This matches my personal email load for a typical week.

I kept a running Google Doc with notes. I especially wanted to split my negative notes into a few piles: bugs, dislikes, and mismatches.

I want to focus on mismatches in this post. When did HEY make me feel uncertain or afraid? When was I fighting it?

I'm not going to mention bugs. Do you really want to hear about a problem with using keyboard shortcuts to scroll through email? They probably fixed it before I published this post.

I'm not going to tell you about nitpicky choices that I didn't like. This post would become a monument to my own change aversion. "The information density is too low! I can only see 9 emails on my laptop!" Jake. Chill. You'll get used to it.

Anyways, I used HEY on a variety of platforms. I used the iOS client on my iPhone X. On desktop, I accessed it through Firefox on my 15" Macbook Pro and my Windows gaming machine.

A picture of me in a pumpkin mask.

Thanks to coronavirus, I had two modes this week: feeling unsafe outside and testing HEY inside. I wore my mask for both.

Privacy-first

I like HEY's privacy stance. HEY explicitly blocks pixel trackers and loads images through a proxy. It will also "name and shame" companies that send emails with trackers by putting a special binoculars icon over the email.

An example showing a pixel tracker notification from Etsy

An example showing a pixel tracker notification

Some digital marketers don't like this. Mailing list health is an important metric. If they can't track open rates, then they can't know how people are "progressing through the funnel" of reading their emails.

Fine by me. It's hard to imagine receiving any benefit from telling a remote server, "psst, I opened your email." I like that people can opt-out of ads with ad blockers. I also like that HEY focuses on opting-out of tracking pixels.

I didn't care about the "name and shame" part of their pixel tracking. I'd be happy if they just had a counter saying "We stopped 531 tracking pixels this month." I'm not interested in learning who sent an email with trackers. I just like that the filtering works.

The Screener

HEY requires you to "screen in" every email recipient. When someone sends you an email for the first time, HEY shows a button asking you to "screen them in." You will receive all future emails from them if you say "yes." You will never get their email if you say "no."

Do you receive a lot of unsolicited email? Promotional email you never read? Recruiter spam? Then you should seriously consider using HEY. Imagine saying "no thank you" to a spammy recruiter and never thinking about their emails again. Imagine the promotional emails never grabbing your attention. Imagine opening your email every day and only seeing the emails you want to see. That seems to be HEY's vision, and I like it.

I interacted with the Screener a lot. I received email from ~80 different senders this week. I screened five of them out.

I don't receive much unsolicited email. I aggressively unsubscribe from promotional mailers. I turn off email notifications that I don't want. I sometimes delete services if I get too much email as a result of being a member. As a sidebar, deleting my LinkedIn account was a huge email quality-of-life improvement. The constant parade of recruiters dropped to manageable levels. You should consider it.

I spent lots of time considering some of the Screener decisions. I used to have a Netlify project that I have since deleted. I don't need to receive email from them now. Maybe I should say "no" to a promotional email that they sent me. But what if I want to use Netlify in the future? I liked Netlify. I might use it again. Would my "no" still apply? I would be missing email that I need to receive. What if I lose my job in the recession and Netlify contacted me about a job opportunity? Would it be screened out? I had this kind of debate repeatedly throughout the week. Who is a sender? Is it a single email address? Is it a company? Is it an individual who could be represented by multiple email addresses? What about catch-all addresses like noreply? When can I safely reject email? I only felt safe using the Screener in a few narrow cases. In cases like Netlify, I screened them in and unsubscribed from the mailing list.

I'd like to make two caveats to this section. First: it seems that Gmail does not forward spam to HEY. I don't know how good HEY's spam filtering is and I don't know how important the Screener would be in relation to it. Second: I only used HEY for a week. The Screener was a constant presence in the beginning. It appeared less as the week went on. I imagine that it wouldn't appear much next week.

The Imbox, the Feed, and Paper Trail

When you screen an email into HEY, you can choose one of three categorizations.

The primary location is the Imbox. This is the IMportant BOX. It's an intentional spelling, and is designed as an inversion of an email inbox. The logic goes like this: Other people get to decide when stuff appears in your inbox. You need to intervene to stop it. On the other hand, something only appears in your IMbox when you declare it IMportant enough. This means that you have reclaimed power over the email that you receive.

This is also why HEY provides The Feed and Paper Trail. These represent common email types that you may not need to see right away. This is designed to further improve the Imbox experience by moving these emails out of sight until you want to see them.

The Feed is "The place for newsletters, marketing emails, or anything you want to casually browse." I put a word-of-the-day email, some Google Alerts, and some newsletters into The Feed. Instead of acting like an email inbox, it is designed to be a content reader. You can periodically skim this content. But it's not front-and-center in your Imbox.

Paper Trail is "The place for receipts, confirmations, and other transactional emails you receive." I put automated notifications into here: online order confirmations, credit card purchase notifications, Twitch's "this streamer is now online" notifications, etc.

After using the categorization for a week, it was clear that I struggled with both of them. I receive a daily newsletter with lengthy emails (Money Stuff by Matt Levine). It's too big to read all at once during my workday. In practice, I sneak 5 minutes here, 10 minutes there. When it's in The Feed, this means that it was not an email. Instead it's a card that is slowly being pushed down by other things in The Feed. The later in the day I started reading it, the harder it becomes to complete it 5 minutes at a time. Maybe I'd move this specific newsletter out of The Feed. There's not much left at this point. I'd have to keep polling to find when the two or three remaining things ended up in The Feed. Everything might as well be in the Imbox.

I also regretted putting many of my emails into Paper Trail. When I buy something, I want to see the purchase receipt Right Now. I also receive credit card alerts for every purchase I make. This helps me identify recurring purchases that I no longer need. When these are in my inbox, I can read and clear the notification immediately. When things are in Paper Trail, they don't seem to have "Unread" markers. You need to scrutinize timestamps and dates to figure out what might be new. If my Amazon order ships, I want to say "Cool" and then delete the notification. I definitely want to see it.

I fought against this workflow all week. HEY does a good job of explaining its categorization system. But I struggled to live in it. I really just wanted everything to appear in the Imbox. This is the same reason that I stopped using the "Multiple Inbox" feature in Gmail: I'd rather stop unwanted emails at their source, instead of moving it into a separate low-frequency box.

To be clear, this is a good system that is a mismatch with my relationship with my emails. I don't "casually browse" my newsletters, and I want to read all of my transaction receipts while my brain is still thinking about the purchase I just made.

Other advanced features

There are other advanced features that I didn't use, or used lightly.

Search worked well. I looked for a few things. I found what I was looking for.

HEY has a pair of features called "Reply Later" and "Reply Focus Mode." This allows you to put off sending replies to emails. Later, you can enter a focused mode that allows you to reply to these specific emails without any UI distractions. I forwarded myself a few emails to put into here when I was experimenting with HEY, but I didn't end up using the mode with any real seriousness. I don't receive a ton of email in my personal account, so I don't run into this problem much.

You can "Set aside" an email if you need to reference it. I can imagine needing this at work. If someone sent me a lengthy meeting summary that I will convert into calendar invites and bug tickets, I can imagine using this feature. I can't imagine ever using it in my personal account.

If I could change one thing about Hey

You might expect that I'd want to change something about its workflow. After all, the workflow didn't work for me. But it's someone else's workflow. They enjoy it. I'm not going to mess with someone else's workflow.

I would invert how the tutorial works. I experienced the tutorial as a three stage process:

  • A guided tutorial of UI elements.
  • A series of emails explaining the UI features.
  • A Screener help card that lasted until I categorized 15 emails.

I experienced this as a breadth-first iteration across the UI. It started broad, and then explained all of the deep features. "This is Hey! We have a Screener! And an IMbox! And Paper Trail! And a Feed! And Reply Later! Here's the Hey menu that shows all of them!" 

This was stressful in practice. It felt like I was expected to memorize all of the definitions before I proceeded. But then I went back to my Imbox and I didn't see anything that had been introduced. I realized that it's all hidden behind a menu. HEY did tell me about this menu. But it told me quite a lot in a 5 minute span, so I didn't remember.

I came back the next day. I didn't see any of the other inbox types. Where did all of it go? Oh right! It's all hidden behind a menu. On the plus side, HEY sends you some of the tutorials as emails. This gave me an easy-to-find reference. They definitely helped. I kept revisiting them over the first few days.

It didn't need to feel this stressful. HEY's home screen is an intuitive email inbox. I could read and write emails immediately. I could use the default email functionality without a tutorial. It felt like they wanted me to immediately be a power user, without ever being just a user. Starting out as a power user is a lot of work for my first half hour of using a new product.

I wish that Hey's tutorial was more spread out and depth-first. I spent most of my week screening emails. I did that more than anything else. So I wish that it focused heavily on the Screener in the beginning, and then introduced the Feed and Paper Trail when I moved emails into it. Later, it could describe the more advanced features as emails enter your Imbox. I understand the pressure to differentiate yourself and prove that you're worth $100 early in the user's journey. But the education process didn't feel good to experience.

The Verdict

HEY is a fast and easy-to-use email client. I think it's going to have a lot of users and will be fairly successful. It gives me hope that there will be an email client that I would pay for someday.

There are a few situations where I would recommend HEY:

  • Someone reads the HEY features and says "oh hell yes" because this is how they view email.
  • Someone receives lots of unsolicited email that they don't want to read.
  • Someone is really into multiple inboxes and wants to try a Gmail alternative.
  • Someone needs a structured workflow to manage an out-of-control email inbox. They lose emails under the pile of stuff they received.

After years of heavily curating my email inbox, I believe that I've prevented myself from benefiting from these workflows. I found myself pushing back against the multiple inboxes feature. I can't imagine myself using the "Reply later" feature. All I'm left with is the Screener and the Imbox.

I'm only going to permanently switch away from Gmail once. I won't be switching to the 2020 version of HEY. I hope that they continue to evolve the email client in a thoughtful way. I can imagine myself switching to a future iteration of HEY based on its privacy stance and its speed.