A journey of unlearning, learning, and relearning!
Today, the 16th of August 2023, makes it exactly two (2) years since I joined Microsoft as a software engineer, and it has been a journey of unlearning, learning, and relearning!
Given the global economic downturn and multiple tech layoffs, I’m deeply grateful to God that this is the story of my first promotion and not a layoff.
August 2021 — Team formation
The global Windows organization at Microsoft decided to set up shop at their Lagos site, and thus our team was birthed. I came as part of the second batch of engineers. The first batch was hired earlier, around May of that year, the third batch came in the last quarter of the year, and a couple more folks would join in 2022.
The first four months were pretty much uneventful. Our teams were just being formed; we had no official task assigned to us, so we just spent the time trying to learn whatever we felt was necessary.
Big tech recruitment focuses on computer science fundamentals, that is, problem-solving with data structures and algorithms using any programming language you know. So more often than not, you will have to learn (ramp up on) the language and/or framework your team uses after joining. The rationale for this is that if you’re solid on the fundamentals, you can very easily pick up any programming language and/or framework. Also, with a focus on the fundamentals, there’ll be no sentimental attachment to any tool. You use what’s best for the project or even create a new one.
Our team mostly uses C++/Winrt and XAML (sometimes C# for prototyping), so we spent most of that time ramping up on these in addition to learning about the culture at Microsoft. We were literally being paid to learn for four months. As someone coming from a startup life where you had to be productive from day 1, this was scary.
January 2022 — First official deliverable
We were assigned our first official deliverables at the dawn of the new year and also got onboarded into the Windows codebase around that same time. My first deliverable was to rejuvenate the settings page for the surface dial.
Basically, to turn this…
to this…
Our onboarding was very enlightening. A couple of engineers from Redmond put us through several concepts related to Windows engineering and gave us a very high-level overview of the code base, only diving into details for the part we’ll be working on. We also got introduced to the build systems, collaboration systems, release schedules, servicing schedules, and pipelines.
We ended up with a bazillion links, internal wikis, and, most importantly, an email group where someone was guaranteed to have faced any error we encountered and was willing to point us in the right direction.
The first quarter of 2022 — “A lone warrior”
Change, as we all know, is not easy, so as someone who had thrived as the sole backend engineer at a startup, I was set in my own way of doing things. I dove headfirst into the task, seeking help from no one. To say I STRUGGLED would be putting it mildly.
For context, I spent the previous two (2) years working in a codebase that I helped set up, knew every file, class, and module in it and what they did, how the entire system functioned, the parts perfectly engineered, and the parts held together with duct tape.
Now here I was, with the arrogance of a startup engineer attacking a codebase older than me, which could take hours or over a day to build if you build the wrong directory.
My first trick out of the bag — trial and error. I tried changing a bunch of random files to see what changed and/or broke. The problem with this was, either everything broke, or the change went unnoticed. The next trick was to ramp up on XAML. I had never previously worked with XAML but felt a markup language shouldn’t be that difficult. I decided to take an entire course on XAML (as opposed to simply asking for guidance from someone more experienced).
The third trick was to stare down my PC until something gave. The longest debugging session from my previous job was an entire week. The first day I assumed responsibility for the backend infrastructure, I deployed new changes and broke the production server. It took an entire week to determine what went wrong and how to fix it. On the upside, it gave me a high sense of confidence that, given sufficient time, I could figure things out. I also love hackathons. One weekend of coding and magic is birthed.
So, I did the most ridiculous thing I have ever done. I packed a bag on a Monday evening and went to the office, determined not to leave until I figured out all my tasks. I stayed for three days straight and still didn’t make much progress. Our office happens to be conducive enough for such an adventure. There’s a kitchenette with snacks, fruits, a coffee machine, and water. Also, a pod to nap and a gym to shower. But that wasn’t the solution to my problem.
My manager heard about my adventure and quickly had a chat with me. He made me understand that the implications of my sleeping in the office were that I was been overwhelmed with work either because he gave me more than I could handle or I was incompetent. Only then did I open up to the fact that I was struggling and got guidance on the proper way to tackle a difficult task.
I got paired with a more senior engineer, and I learned a lot from his approach to problem solving. We would brainstorm through a task together until we exhausted our collective knowledge then he would pull a colleague or more senior engineer to the call. He would keep recruiting the assistance of a more senior engineer until the task was complete. As of the time of this writing, I have yet to encounter a blocker a principal engineer couldn’t figure out!
This experience, above all, drove home the importance of two key circles of impact preached at Microsoft. Your contribution to the success of others and your results build on the work, ideas, and efforts of others.
I, unfortunately, had to learn the hard way, but the knowledge, knowing when to reach out for help and who to reach out to, has helped mold me into a highly productive engineer today!
The biggest downside to this adventure was missing the initial deadline to ship, but on the bright side, I had spent so much time in the Windows settings part of the codebase I became an expert on it. Also, I spotted an opportunity and led efforts to make our team the technical owners of the surface dial. Meaning, in the entire company, if a surface dial bug needs to be fixed or any enhancement made, it gets routed to our team and mostly me.
For the final task of the deliverable, with everything sailing smoothly towards an end, I sat at my desk coding for 26 hours straight, with little naps in between. I was fed up with the deliverable and just wanted to be done with it! I finished on a beautiful Thursday morning, left the office straight to a car dealership, and bought my first car to celebrate!
2022 — Multiple re-org
Over the year, our team’s focus was redefined multiple times to align with the organization’s business need, taking us through the shell (Windows kernel), the silhouette (Start menu, taskbar, and system tray — the notification area), and to our current focus. Let’s just say it has something to do with AI! 😉.
In addition to developing technical expertise, I’ve learned to be more empathetic and deliberate in striving to create a diverse and inclusive environment for everyone. At Microsoft, the expectation is for every employee to spend about 50% of their time on their day-to-day job and the remaining time collaborating with others and on self-learning. The collaboration could be on technical issues or social issues.
I’ve had the opportunity to volunteer for interesting social causes, participate in internal hackathons and drive change through various initiatives.
January 2023 — The race for AI
2023, the dawn of large language models! With the global race for AI, once and again, I had the opportunity to appreciate working at the literal cutting edge of technology. So many open questions, so many uncertainties, and so many brilliant minds, all collaborating to harness the power of this new technology. What a time to be alive!
The speed with which AI tech was improving was just amazing! One week you had never heard of a concept. The following week, you had enough context to start using it as part of your workflow, and the week after that, it was stale. Something new had been released, and it was just phenomenal! I got to work on my most impactful and exciting project since joining the company during this period!
August 2023 — First promotion
I began the year with a resolve to be disciplined and build a healthy work ethic, and it paid off. I set out to see what’s possible if I disciplined myself to work eight hours a day and rest outside work hours, on holidays and weekends. I turned out to be more productive!
At Microsoft, we have a culture of no surprises. Everyone is encouraged to be open with their manager about their ambitions and trust that their manager will give them the right guidance to get there. On our team, we have connects twice a year. This is when we reflect on our impact for the last half of the year and what we plan to commit to for the next half.
With the guidance of your manager, you set goals, and they’ll give you timely feedback on how much progress you’re making in line with your goals. For promotion, all things being equal, if you exceed expectations for your level and demonstrate an ability to meet about 30% of the expectations for the level above you, you’re due for a promotion. The responsibilities at every level are clearly spelled out, so no one doubts what is expected of them.
I am very ambitious, so I aim for two levels above me to get a double promotion at some point in my career or at least a promotion every cycle. I am also privileged to have a manager who’s passionate about my growth and committed to seeing me excel in my role. We had frequent conversations about my promotion — if I was on track, anything I needed to do that I wasn’t doing — and generally what to prioritize at any given time.
So, it was with great joy that I received the news of being promoted from Level 59 to Level 60!
My key takes from my journey so far are:
- A healthy work ethic is much more productive than completing an entire sprint in one weekend.
- You achieve more collaborating with teammates than working solo.
- A diverse and inclusive environment is a much healthier environment to work in than one that reinforces your bias and stereotypes.
- The company has priorities, your manager has theirs, and yours. Aligning these three priorities is the key to a productive, impactful, and rewarding career.
It’s two years down. I look forward to what the future holds.
Reflecting on Two Years at Microsoft was originally published in Better Programming on Medium, where people are continuing the conversation by highlighting and responding to this story.