The smartest person in the room
If you've ever felt like the smartest person in room then you might discover new perspectives in this very personal write-up. It's about my journey and the struggles I have faced.
Disclaimer. My dear current and former colleagues, some of you might come across this post. Please know that everything I've written here comes from personal reflection and is not intended to demean or diminish any of you in any way.
Throughout my career, I've always had a passion for learning. I've learned from my colleagues. I've learned from books, articles, and conference talks. Quite early I came across the famous phrase "If you are the smartest person in the room, you are in the wrong room." It became a driving force in my career.
Junior
It was easy at the beginning to be in the right room. As a junior engineer, I knew nothing about how software is built. I learned fast, I learned a lot. After some time I knew enough to understand that although I still wasn't the smartest person in the room, my company was offering limited opportunities for further development.
Middle
So I changed to a company with a much more mature development process, better engineering culture, and stronger colleagues. I was a middle engineer by that time. Because of the new challenging environment, I continued to learn a lot. Test automation, multithreading, investigation of production incidents, you name it.
Senior colleagues were still the main source of new knowledge. However, I increasingly learned things independently. And what's more important, I started to share my knowledge with others, bit by bit.
Senior
Next time I switched jobs because of moving to another country. Even though I had several offers to choose from, the decisive argument was again a learning opportunity. Coming from mostly desktop applications and simple client-server architectures I genuinely didn't understand back then why, for instance, famous online shops need so many engineers. And some like Amazon even need the best of them. What's so complicated in an online shop? The answer that I found after some quick research captivated me. It appeared that load, availability requirements, and amount of data pose a lot of challenges on their own. No matter how simple the website looks from the outside.
So I joined as a senior engineer. I've already had a few years of backend experience, but oh boy what a different world I found. Distributed architecture, messaging, high availability, different types of data storages, high release cadence. I absorbed new knowledge like crazy. At the point I was comfortably leading the development of a new service in the team, a career opportunity came across.
Technical lead
I became the technical lead of a new team. At first glance, I might have been "the smartest person" — the team consisted of new hires and a person moving from another department. Guys either didn't know anything about the domain or some of the tech stack or both. I did a good job of bringing them up to speed.
However, I also found myself being in two "rooms" now. The technical lead position involved a lot of interactions with other tech leads and architects. And in that room, I was the least knowledgeable and experienced person.
There was a lot to learn inside the team as well. New responsibilities, changing my mental model, and the way I work. Often topics were so complicated that they required 2-3 heads to brainstorm them and make sure nothing was missed. I also became increasingly interested in processes and in DevOps culture. How can we build more stable software? How can we release faster? How can we shorten feedback loops?
I was now learning a lot of things on my own. I was sharing my knowledge, experience, and vision with my teammates. There were also first tries to influence other teams.
And now?..
But sooner or later it was time to go. A company found me. They had around 15 engineers back then, including two lead engineers. And they wanted me to join as a third one. I did understand that technically the company is at a lower level. Yet they had enough interesting problems to solve and my experience matched well. I had ambitions and I heard during the interviews what I wanted to hear.
What I found out after I joined was worse than I expected. I seriously considered leaving during my first month. The second time I considered leaving was after 6-8 months in. By that time two other lead engineers had left. I learned enough about the codebase, the processes, and the company culture. All in all, things looked gloomy.
What was the worst — or the first time in my life I felt like I was the smartest person in the room. And it was killing me. Sure, the domain was new. But I struggled to see any other opportunities to learn and improve myself.
I was going through therapy at that time and discussing work was a big part of it. On one hand, I was hired because of my knowledge and experience. I was hired to make an impact. On the other hand, I absolutely did not want to be the smartest person in the room. I just couldn't connect these two things in my head.
My therapist asked a question once: “What if it's time to stop being an apprentice and become a master?“ It struck me.
Of course, they didn't mean that I needed to stop learning. They meant that I needed to admit to myself how much experience I'd already got. And that it can often put me in the position of the smartest person.
Learning is by definition all about consumption. We consume knowledge and experiences. We look forward to getting the next portion. I always looked too much ahead. And too little did I look back and reflect on how far I had already gone and how much I could pay forward.
And now I know who
That question and subsequent reflections made a shift in the way I think about myself and about my work.
Over the last two and a half years I delivered several projects that had an impact on the whole development department and beyond. I managed to change the engineering culture by introducing and advocating for the best practices. I hacked through a ton of legacy code in almost every corner of our product to unlock new opportunities. I’m constantly pushing architecture, test automation, and observability agendas. I’m teaching, leading by example, and hopefully I have become a role model to an extent. I shared so much of my experience and knowledge I never shared before. I've learned a lot. And I'm not done yet.
I used to understand the phrase too literally for too long. “The smartest” was always the most senior person in terms of knowledge and experience. But guess what: if you grow you do end up in this place. And as I grew, my perception became much more nuanced. There are always people more knowledgeable and experienced in certain areas than I am. “The smartest” might often be several different persons within one working day.
“The room” was always almost a physical object, the team I was in. But as I grew, the room became a virtual thing. The environment I'm in became an apartment with multiple rooms to be in. And I switch them, sometimes multiple times a day.
So I still feel like the smartest person in the room? In some of them, yes. Often deliberately to level up other engineers. In some of them, no. There I listen and learn: how our software evolved over time, how exactly customers use our product, and so on. And there are also rooms I'm not in.
I am still learning.