How I Boost Productivity and Advance in My Engineering Career
Disclaimer: If you are from Reddit or a freelancer, this article is probably not for you. It is best suited for those who work in a big tech company.
Everyone says that to be productive, you should be focused and work smart, not hard. And this is true in most cases, but what does "smart" really mean? Does anyone really know?
It's great if you don't have a crying baby around and you can work for 4 hours in silence, but even then, if you face an undebuggable issue, you could still end up spending days on it.
So, I'll try to explain what "be productive" means to me - mostly, I think of it as a framework of how I work or perhaps how I should work on my best days with 100% focus.
Here's how I do it. I'll split the framework into some sections:
- How to be focused and up to date
- Everyday checklist for career growth
- I’m stuck on my current ticket, what to Do?
How to be focused and up to date
If you are at a senior level or above, a big part of your day involves communication with people: PMs, analysts, designers, stakeholders, etc.
I start every day with a notebook split into two sides, writing everything by hand:
1. Tasks:
- Tasks where I need to write code.
- Tasks where I need to talk to people, clarify some requirements, add technical design, etc.
2. Notes:
- The right side of my notebook is for notes during the day, some conversation summaries, answers to my questions, more questions.
Some of these notes from the right column could be shared in documentation or in the Slack channel to keep everyone up to date.
For me, it's important to make notes by hand - I can see current tasks easily without switching browser tabs, etc. It's always in my eyeview.
I start my day with this notebook, writing all the tasks, prioritized. With code tasks, it's easy; they are usually already marked as P0/P1 in Jira, so I don't need to think much there.
But with conversational tasks, I don't prioritize them. I just list them all and start my day by sending messages to the relevant people, asking questions. My goal is to close all the conversational tasks within about an hour. Sure, sometimes you need to schedule a meeting or wait a few hours for an answer, but once you've asked, the ticket is considered solved for the day.
Next Steps:
- Check all emails to stay updated.
- Check all the important Slack channels to understand what's happening with the project and what other teams are doing. Usually takes about 15 minutes.
Now, we can start working:
- Checking PRs
- Working on coding tickets
- Helping others
Everyday checklist for career growth
Okay, cool, it's just work. But what about career growth? How do you get a raise? The answer is usually simple: be useful, be visible, take responsibility. Here’s a checklist of usefulness for every day:
- Did you contribute to some Tech design/Notion doc today?
- Did you help anyone by answering a question in Slack?
- Did you add a summary of a meeting or follow up with questions?
- Did you leave a comment on tech design/tickets/product design?
- Did you get a chance to add some valuable comment to a PR from a “big guy” in your company?
- Were you visible today in company chats?
- Is there any cool new epic important for the company that you can take on?
- Is there anything you can share on the “knowledge sharing” day?
Remember those notes on the right side of your notebook? Now you can try to share them in Slack/docs/etc.
I’m stuck on my current ticket, what to Do?
First, the main goal to boost your professional skills is asking questions. Keep asking them; don't think "OMG, people will think I'm a fool, I shouldn't be a software engineer." Instead, think, "He will help me and feel great that he was useful and shared his experience." This suggestion is especially for introverts.
Next, if you're stuck, before disturbing people, do some work:
- Search in Slack - maybe someone had this issue before.
- Check the company docs; maybe there's an answer.
- Try to find answers in the codebase/logs.
- Now you can start asking questions in Slack, DMing people, stating that you've tried X/Y, googled it, and it didn't help. Show that you've put in effort before asking.
To be effective = know how to ask and whom to ask. If you try to research the issue by yourself, it could take days, but isn't it better to attend a meeting with the right guy who can explain everything in 30 minutes? He spends 30 minutes; you save 2 days, which saves 2 days for the company.
Epic win.