Ten Lessons I learned after ten years at Spotify
Time to reflect about my 10 years journey and what I learned along the way by working close to a lot of smart people.

It feels like just yesterday when my wife and I stepped out of Arlanda Airport in Stockholm, filled with anticipation for the job I had always dreamed of and the fresh start of a new life in Sweden.
Time has flown by, and now, after a decade at Spotify, I can confidently say that I am no longer the same person I once was. This milestone calls for a moment of reflection, to ponder on the valuable lessons I have learned throughout this remarkable ten-year journey as both an individual and an engineer.
Now, I would like to take this opportunity to share those insights with you.
- Lesson 1: I am not the most unskilled in the room
- Lesson 2: No one care how you speak your second language
- Lesson 3: Networking is important
- Lesson 4: People love to help others
- Lesson 5: I don't have to be in every meeting
- Lesson 6: Work obsession does not scale
- Lesson 7: Shared ownership is no ownership
- Lesson 8: Buy-in from leadership is important
- Lesson 9: If something can happen, it will happen
- Lesson 10: Foundational changes are super hard
Lesson 1: I am not always the most unskilled in the room
Never believe that you are the most unskilled person in the room.
I've come to realize that everyone possesses their own unique set of skills, including myself. There's no requirement to know everything, and having a diverse group of individuals with varying levels of knowledge and expertise is actually a tremendous advantage for everyone involved.
The idea of never being the smartest person in the room should be embraced rather than feared. I learned to let go of any self-doubt and embrace the advantages that come from being part of a diverse and talented group.
Lesson 2: No one care how you speak your second language
They don't really care about how you say it; they care about what you say.
Speaking in English used to be incredibly challenging and distressing for me. I reached a point where I chose to remain silent out of fear of being judged for my speaking abilities.
However, I soon discovered that nobody truly cares about the intricacies of your language skills, not even native speakers. People genuinely make an effort to understand your message because they want to connect and communicate with you.
Think about it: Do you believe that native speakers never make mistakes when they speak? Can you honestly say that you never make mistakes when speaking your native language? :)
Lesson 3: Networking is important
Spending time and socializing with individuals from different departments within the company has proven to be instrumental in my personal growth.
As a shy individual, initiating conversations and making new friends can be difficult. However, I've learned the importance of socializing within the company. It helps me stay informed, discover opportunities, and have fun.
Social events and showing curiosity about others' work are great ways to meet new people and expand my network. It leads to collaboration, knowledge sharing, and potential career growth.
Though challenging, building social relationships is crucial for personal and professional development.
Lesson 4: People love to help each other
I've come to realize that individuals are enthusiastic about explaining the intricacies of a system, its historical background, and their perspectives on its future.
It's truly remarkable. Whenever I need to comprehend a system, I simply tap into my network, identify the expert in that particular area, and request an explanation of its workings.
I've learned that people are incredibly gracious with their time, willingly providing explanations of systems and offering suggestions for improvement.
Lesson 5: I don't have to be in every meeting
They often say that if there's one thing that can bring about our downfall, it's the never-ending cycle of meetings.
In the past, I made it a point to attend every meeting I was invited to, and I even took the initiative to schedule my own. However, I soon realized the importance of setting aside time for focused execution, rather than solely relying on constant synchronization and conversations, although they are undoubtedly crucial.
Nowadays, I find myself saying "no" more often when I don't see the value of attending a meeting. Instead, I block out 1-2 hour time slots in my calendar exclusively for concentrating on the tasks I need to complete. During these periods, I eliminate any distractions and remain fully focused.
Lesson 6: Work obsession does not scale
Especially in the beginning, I had a perfectionist mindset and aimed to make an exceptional impression. I didn't settle for just delivering a solution; I strived for the absolute best solution. This led me to spend countless hours pondering over every task, even sacrificing my personal time during evenings and weekends.
However, I soon realized that this approach was unsustainable and risked burning me out. Despite my exhaustive efforts, I made only marginal progress due to my increasing fatigue. I observed others achieving greater impact by doing less.
Nowadays, I have established clear boundaries between work and personal life. I determine when to stop working, prioritize tasks within the allocated time slots on my calendar, and once it's time to go home, I shift my focus to my family and engaging in enjoyable and relaxing activities.
Although it may seem counterintuitive, I have found that this shift in mindset and approach has actually increased my productivity. Not only do I feel more balanced, but I have also received feedback affirming this positive change.
Lesson 7: Shared ownership is no ownership
When a specific area of the codebase lacks proper ownership and care from a dedicated team, it can resemble the lawlessness of the Wild West. In such cases, everyone feels entitled to add or modify code as they see fit to solve their immediate problems. As a consequence, the APIs exposed and the underlying code implementing them quickly become unwieldy, entangled with specific external behaviors, and bloated without a clear overarching direction.
This was a recurring issue during Spotify's early stages as a small company. However, as the company grew and identified problematic areas, new teams were assigned the responsibility of inheriting and transforming these areas into well-structured and consumable products. Their mandate was to bring order and coherence to these previously neglected codebases.
Lesson 8: Buy-in from leadership is important
Merely reaching a consensus among engineers over a coffee machine is insufficient to bring ideas to fruition.
I often found myself pondering why certain ideas that my coworkers and I discussed failed to materialize. Despite our collective agreement that these ideas were valuable and should be implemented, progress seemed stagnant.
It became clear that in order to drive change and make things happen, it is crucial to obtain buy-in from the leadership of other teams. The person accountable for determining the team's priorities and focus plays a pivotal role. Merely expecting other engineers to devote their time and effort to your ideas is not a reliable approach.
Depending on the magnitude of the impact, the leadership can be at the level of an area or a department, but the underlying concept remains the same. Gaining the support and involvement of these key decision-makers significantly increases the likelihood of seeing your ideas come to life.
Lesson 9: If something can happen, it will happen
As an engineer, there are moments when we tend to dismiss potential issues, believing that they will never occur due to unlikely user behavior or the specific timing of actions. However, when you have approximately 500 million users interacting with your code on a monthly basis, every imaginable scenario becomes a possibility.
This realization has led me to shift my mindset. Instead of questioning whether something can happen or not, I now focus on assessing the potential magnitude of impact on users and consider worst-case scenarios in the event of a potential issue triggered by user or app behavior. This approach allows me to proactively identify and address vulnerabilities, ensuring robustness and resilience in the face of real-world usage.
Lesson 10: Foundational changes are super hard
As part of the mobile platform team, our responsibility is to ensure that the mobile app utilizes the most advanced technologies, modern architecture, and frameworks. However, implementing changes to achieve this goal can be incredibly challenging.
To provide a metaphor, it's like rebuilding an airplane while it's still flying, carrying passengers, and facing a fire emergency. All of this must be done while carefully avoiding any potential crashes. Of course, let's not forget about the engines—the crucial components that keep everything running smoothly.
The process of driving these changes requires meticulous planning and close alignment with various teams involved.
If I intend to propose a radical change, it needs to be an exceptionally well-considered and compelling one.
Conclusion
Ten years might seem a long time to spend at the same company but as Spotify was scaling up everything constantly changed around me and I felt like working at a different company every couple of years.