đŁ Easily build websites and tools (Sponsor)
I tried Lovable this week and created a personal toolkit for myself in less than 10 minutes. My tool handles common tasks like converting timestamps to date strings, converting YAML to JSON, string transformations, and more. Lovable is super flexible, so you can use it to build whatever you want.
I recommend checking out Lovable and automating something you do often, or building something totally different! On their homepage, they have a showcase of other apps people have built as inspiration.
This is the tool I built for myself. Thanks, Lovable, for sponsoring this weekâs issue!
Itâs been a while since we picked up the âCommunicate like a Seniorâ series. If this is your first one, strap in for an overwhelming amount of actionable tips! Iâll also share past issues in this series at the end.
Today, weâre diving into the art of providing both the right context and the right amount of context. Great communicators are masters at this, which means they get unblocked faster and build more trust with their teammates.
Youâll learn the 6 most important areas to provide the right context, where people often make mistakes, and what to do instead. Letâs start!
(1) Tagging someone in a long thread
Tell me if youâve seen or been on the receiving end of this before:

Now, Iâm usually a big fan of the âWhat do you think?â question, but not here! Not in a long Slack thread with no context. By doing this, youâre putting the entire burden on the person youâre tagging to read through the thread and figure out what youâre asking.
When that happens, the person you tag either wonât respond, will be bothered, or ask for a summary of the thread and what youâre asking. All of these are negative interpersonal outcomes and increase the number of feedback loops for the person being tagged to help you. If youâve done this before, donât feel bad. I definitely have and sometimes need to catch myself when Iâm thinking and working quickly.
To fix it, hereâs what to do instead, shown through an example:
Hey @Person, weâre discussing <x> and are currently at <y> on the decision.
Weâre wondering whether you think we should go with <a> or <b> based on these considerations.
<list out considerations>
Let us know what you think and if it would help to provide more context.
This message is much better, but why? The high-level principles are to:
Get to the point quickly on what you need help with. In this case, itâs a decision between two choices.
List a summary of additional context below the main point.
Offer to provide more context if needed. This shows you are considerate toward tagging them in a long thread that they might need to catch up on.
By doing these, the person tagged isnât burdened with reading the whole thread, so they appreciate the effort you put into the clear ask. Plus, they can answer right away, with fewer feedback loops, meaning you get your answer faster and can move on.
(2) Pull requests
As engineers, we all want our pull requests to be merged faster. It feels good. Youâre getting things done. But in trying to move faster, it can actually slow you and your teammates down in the future.
For example, consider if you put up a pull request and in a rush, barely provided any context in the description, and the changes themselves werenât clear on why they were needed.
A teammate begins reviewing, and they have tons of questions:
âWhatâs the context behind the change?â
âWhy do we need to touch this file?â
âWhat is this line changing?â
Now, you end up in back-and-forth mode. Youâre spending time responding to each question, and itâs harder to communicate the context since theyâre all in separate comments, rather than a clear description from the beginning. Then, after you respond, you need to wait for a second review round, which may take another 4 hours.
Finally, they get around to it and understand, so they approve the changes. However, all of that could have been avoided if the context had been there from the start. So when youâre writing pull requests, follow these tips:
Explain why: Every change has some reason for it. It could be that an engineer complained and started a thread, or a customer complained, or performance is bad, or weâre seeing an increase in errors. Whatever it is, list it.
Link the why: Itâs not enough to just say the why. Link to the context so that a curious reviewer can check it out for themself. This is typically a Slack thread, JIRA, Google Doc, customer report, or screenshot of a bug happening.
Self-review and comment on your code: Review your own code, check for silly mistakes like leftover console logs, and comment on anything you see where someone might ask, âWhy are we doing it this way?â or âWhat is this doing?â This is particularly helpful if you get reviews from people who arenât actively working in your domain area.
Doing these not only gets you faster reviews, but also saves you and your teammates time when revisiting the code 6-12 months later and trying to remember why a particular line is the way it is.
(3) Asking someone for help
When asking for help, make helping you as easy as possible.
Letâs work from an example of what not to do:
â âHey, the code you shared earlier isnât working. What should I do?â
Now, this is actually a perfect starting pointâbut definitely not what you should hit send on. To improve this, you need to work backward from what the persons next question will be.
In this case, itâs likely, âWhat is not working about it?â
So we improve it more:
â ď¸ âHey, the code you shared earlier isnât working. The error is <x>. What should I do?â
Whatâs their next question? Itâs likely, âWhat have you tried so far?â
So we improve it more:
â âHey, the code you shared earlier isnât working. The error is <x>.
Iâve tried to do <a>, <b>, and <c> so far, but they all result in the same error.
Do you have any other ideas?â
This is much better. It answers all the upfront questions the person would have, and gets right to what you need from them, which is whether they have any other ideas on what to try.
Additionally, there are a few bonus tips. Often, youâll be asking for help from busy people who may be managing 3-6 contexts at once, so even saying âthe code you sharedâ could be unclear. I know this because Iâve had the person Iâm asking for help tell me they have no idea what Iâm talking about, even though they only shared their suggestion with me the day before. To account for this, add hyperlinks and screenshots to the relevant parts that would make it easier for them to quickly gather the context and help you.
In this case, if they shared the code with me via Slack, I would hyperlink âthe codeâ to their Slack message. Or if I already pushed the code to Github, I might hyperlink it to the file on Github where that code is like this, then hyperlink their message to the âshared earlierâ part, like this:
âHey, the code you shared earlierâŚâ
This way, they can get all the context they need purely from everything you provide in the message, without having to scroll up in Slack or find your branch on GitHub.
Additionally, share relevant screenshots, draw arrows, boxes, and write text on the screenshots to communicate it even more clearly.
Combining all of these makes your message crystal clear and makes it a joy to help you out, which gets you answers faster.
(4) Asking a support channel for help
Now, letâs consider the same situation, but in a support channel rather than DMing someone directly. The dynamics change slightly because the amount of context that any given person has in the channel is low, compared to when you're messaging a person directlyâthey likely have medium to high context on what you're asking and working on.
All the same principles and tips from the previous step apply, but there are two more to keep in mind. Let's assume you want to ask something like:
â âHow can I build an AI agent in CI?â
From this question, youâre likely to only be met with confusion. But why? For two reasons:
Specificity: The question is not specific. Itâs not clear what youâre trying to do.
Motivation: They donât understand why youâre doing it.
On specificity, both âAI Agentâ and âin CIâ are unclear. Agent is an overloaded term and can mean so many things, so you really need to dig into your use case more. And âin CIâ can also mean many things, since at large companies, CI exists in so many forms. We can solve this by adding more details:
â ď¸ âHow can I wire up code to run in our <specific pipeline> that uses our new AI agent library?â
Sidenote: Both âpipelineâ and âAI agent libraryâ should be hyperlinked to their source
This communicates much more of the intent of what youâre trying to do by being specific. However, itâs still missing the second pieceâmotivation.
Youâll know you missed this when someone responds with, âCan you explain more of the underlying use case or why youâre trying to do this?â This is a pretty common response in support channels, and it makes sense. They want to give you the simplest possible solution for your problem. Itâs similar to how we always recommend asking âwhyâ to product managers so we can propose simpler solutions.
To add the why, you can either explain it inline or link to a doc below your request.
â Option 1 (inline): For context, Iâm trying to build an agent that can autogenerate documentation at PR time.
â Option 2 (doc link): For context, this is the relevant 1-pager doc
Personally, I prefer a combination of bothâoption 3
â Option 3 (combination): For context, Iâm trying to build an agent that can autogenerate documentation at PR time. This is the relevant 1-pager doc
This is nice because it gives a TL;DR for those who don't want to go into the doc, but provides the doc for those who are extra curious.
The next time you're asking a question in a support channel, just remember specificity and motivation. Be specific with your request, and explain why you need it.
(5) Project updates
There are two places where project updates typically occurâemails and Slack (or your messaging app).
In both of these, my big tip is to use linked list updates (learned from Rahul Pandey). Whenever you give an update, you also link to the previous update.
Why? For two reasons:
Entire history available: It allows anyone to view the entire project history by following the linked list of updates. Having this reference is great for quickly accessing important links or understanding the changes from week to week.
Easy monthly updates: It makes it easier for you to write aggregated monthly updates or your launch email when discussing challenges and the process involved. Itâs also great for reference during your performance review. You can link to the last update and suggest the reader follow the chain for details, and you can use it for information gathering.
To do this in emails, first draft them in Google Docs via the @email helper. Then in your update email, link to the past update at the end for those curious about the update chain.
Once you hit enter, youâll see an interface like this:
In Slack, this becomes a lot easier, and it would look like this:
And voila! You can quickly access every single update by tracing the linked list. Itâs one of my favorite applications of computer science in communication đ
đ TL;DR
Tagging someone in a long thread: If you tag someone in a long thread, don't make them catch up on their own. Summarize the situation and make a clear ask.
Pull requests: Don't just say what the code change achieves. Explain why you're doing it and what problem it solves. Link to the Slack thread, user complaint, error logs, dashboards, etc. This gives valuable context for the next personâwho may be youâwondering why the code works this way.
Asking someone for help: Make it as easy as possible for them to help you. Show and tell them exactly what you did and what went wrong. Provide error messages, screenshots, and repro steps.
Asking a support channel for help: Your question should be specific enough that they know what you want to do, with enough context on why you want to do it, so they can suggest something better.
Project updates: Use "linked list" updates. When you write an update via email or Slack, link to the prior one so anyone interested can see more context on how it's been trending. Plus, it makes it easier for you to write each update, since referencing the previous week is important for a complete update.
View previous âCommunicate like a Seniorâ articles here:
Thank you for reading and being a supporter in growing the newsletter đ
You can also hit the like â¤ď¸ button at the bottom of this email to support me or share it with a friend to earn referral rewards. It helps me a ton!






Actionable steps. Thank you!
Great post!