Goal Setting with OKRs
Last year, I decided to try setting annual goals using the OKR method.
I had four ambitious goals, and here’s how I performed on the key results for each:
- ✅ 0.68 из 1.00
- ❌ 0.00 из 1.00
- ✅ 1.00 из 1.00
- ✅ 0.90 из 1.00
Just a reminder: a score between 0.6–0.7 means a great result because fully achieving an OKR indicates the goal wasn’t ambitious enough.
However, one goal didn’t make much progress at all. That means it’s time to rethink it: either I overcommitted or the goal wasn’t relevant enough for me.
You can check the final status of all my goals and key results on my Notion page.
Clearly, the system has its pros and cons. Let’s break down the ones I encountered.
Downsides
- Lack of Focus
Unlike setting a single global “epic” or goal (as I did in 2023 here), this time I had several ambitious goals.
Since there was no clear priority for each one (despite the seemingly obvious sorting order), my focus was scattered.
The obvious takeaway: prioritize your goals if you have multiple. You can use a simple system like P0, P1, P2 … Pn (where 0 is the highest priority).
- Vague Formulation
One of my goals was “Increase my grade to E5…”, but it’s doubtful that achieving each key result would have guaranteed the promotion.
So, it’s important to validate: do the key results actually help achieve the objective?
Upsides
- Roadmap
Having a structure outlining what I needed to achieve by the end of the year helped me stay on track and not slack off.
Whenever I felt like procrastinating, I would open my goal spreadsheet and look for something I could do right now with minimal effort, which helped.
In fact, by creating OKRs and storing them in a convenient place, you provide yourself with a beacon to stay on course.
- Alternatives
Although having multiple goals can lead to scattered focus, it also gives you the flexibility to switch to another goal when you get stuck on one. Instead of reworking your single goal, you can tackle another clear one and come back to the original when time allows.
Looking back on my experiment with OKR goal setting, I definitely see more pros than cons. So, following my own recommendations, I plan to stick with this system for 2025.
Key Events
🚀 Social Engagement
Telegram Channel “Novikov > The Journey to Big Tech”
- The channel’s audience grew more than 3 times, surpassing 100 followers. I’m grateful to everyone who reads, reacts, and comments. If I started the channel thinking it would be beneficial for me, now I see it’s also helping others.
- Over the year, I published 92 posts (~8 per month), 5 more than the previous year.
- I updated the pinned post (not as easy as it might seem).
Other
- I gained 500+ connections on LinkedIn and published 5 posts. I shared my tips on how to improve your profile.
- I attended two offline meetups of the Go community and got closer to fuzzing.
📈 Career
- Became a platform expert in my vertical for one of the key domains.
- Discussed strategic development with my team lead, which helped me adjust my career trajectory. Why 1-1 meetings are extremely important and what to do during them.
- Developed and launched my blog on Hugo. Here’s how it works and what I had to tweak.
- Wrote a “sales” resume and made it available via this link on my blog.
- Celebrated 2 years at Big Tech, discussing the pros and cons of working at such a company.
- Became a mentor for 2 junior engineers (1 has successfully passed probation and is working in their team).
- As a feature leader, I approved over 3 major initiatives for the team. What is this role and is it for you?
- Attempted an interview at a startup. Here are a few useful posts on topics like how to conduct a code review and handle the technical section in Go. Also, here’s a post on how to pass technical interviews.
✏️ System Design
- Shared recommendations on who should study system design and the basic materials for doing so.
- Completed 2 TDRs. I explained what they are in this post.
- Finished the System Analysis course and shared my reflections.
- Outlined a step-by-step algorithm for passing the system design section.
🛡 Security and Quality
- Took on the role of Security Champion for my product team. I posted practical tasks on preventing key vulnerabilities here on GitHub.
- Developed a risk management framework based on the Risk-based testing approach, which became a model for how to conduct company-wide risk management sessions.
- Conducted several sessions on threat modeling (a subset of all risks).
- Participated in two Live Site Review sessions.
- Explained in 5 parts how we tracked down the root cause of a production issue.
💡 Engineering Culture
- Completed several courses on OOP and OOAP, where I designed classes based on ADTs. For practice, I wrote a simple “match-3” game (non-production version).
- Switched to VS Code, moving away from Goland.
- Started learning functional programming, mastered the basics with Python, and am continuing my practice with F#.
- Improved the company’s general engineering tool and gained more confidence.
- Completed an intensive 3-month course for engineers aiming to grow into senior roles, which included courses on systems thinking, risk management, basic PMF project management skills, and more.
- Learned the SQL query builder Squirell and studied best practices for working with databases in Go.
- Spent a lot of time with AI assistants and shared how they deceive us, and here as well.
- Started using the VS Code AI assistant based on Continue.
🔋 Personal Efficiency
- Developed a simple system to get more done.
- Changed my English tutor, which significantly boosted my speaking skills.
- Explained what a performance review is and suggested a system for preparing for it.
- Shared my approach to reading technical literature and uploaded the first 4 chapters of the book “Preparing for a Complex Interview.”
❓ What Else
- Got seriously into running: over 10 mass starts during the year. I set personal records at 21.1 km (my first half marathon this year) - 1:48:37 (5:09/km) and at 10 km - 47.21 (4:44/km).
- Created a repo for FizzBuzz and approved the first pull request from an external developer. Also, I learned about the Happy Number for random number generators.
- Learned how to generate different file types based on text/template in Go.
- Got acquainted with Haskell and wrote my first program.
- Coded in five programming languages: Go, C#, F#, Python, and Haskell.