CoRecursive: Coding Stories
Episode: Story: Leaving LinkedIn - Choosing Engineering Excellence Over Expediency
Host: Adam Gordon Bell
Guest: Chris Kraichow, Senior Staff Engineer at LinkedIn
Release Date: March 4, 2024
Introduction
In this compelling episode of CoRecursive: Coding Stories, host Adam Gordon Bell delves into the intricate journey of Chris Kraichow, a senior staff engineer at LinkedIn. Chris shares his experiences navigating the vast and complex engineering landscape of one of the world's largest professional social networks, ultimately leading to his decision to leave LinkedIn in pursuit of engineering excellence over expedited solutions.
Onboarding at LinkedIn
Chris begins by reflecting on his initial days at LinkedIn, highlighting the stark differences between his previous startup environment and the sprawling infrastructure at LinkedIn.
Chris (02:55):
"When I first got there, I discovered there are more people working on the front end client app than my previous employer had in total. The LinkedIn front end had 2 million lines of code—twenty times what I was used to."
The onboarding process involved extensive training to understand the multi-layered technology stack, which was a significant shift from the more streamlined systems he was accustomed to.
Scaling Challenges and Technical Debt
Chris discusses the immense scale of LinkedIn’s codebase and the accompanying technical debt. Managing a front-end application with 2 million lines of code posed unique challenges, especially in maintaining performance and ensuring sustainable development practices.
Chris (06:10):
"Handling 150 to 200 engineers committing to this app every quarter—shipping more lines of code was overwhelming. The scale magnified both successes and problems, making technical debt a colossal issue."
Migration to TypeScript
One of Chris's notable contributions was leading the migration from JavaScript to TypeScript. This initiative aimed to reduce the flood of frontend errors and enhance code reliability.
Chris (07:23):
"For a migration to work at that kind of scale, it has to be as automatable as possible. Manually rewriting 2 million lines of code would take months, even years."
He emphasizes the importance of automation in large-scale migrations to minimize disruption to product teams focused on feature development.
Conflicts with the Finger Guns Team
The narrative takes a pivotal turn when Chris’s team’s methodical approach to migration clashes with another team, dubbed the "Finger Guns Team," which advocated for a more aggressive and rapid overhaul of LinkedIn's infrastructure.
Chris (18:34):
"We had to align our initiatives with leadership's focus on velocity. The Finger Guns Team pushed for a ground-up rethink, but their approach didn’t consider the existing technical debt and operational complexities."
This conflict highlighted differing philosophies within the engineering teams: sustainability versus speed.
The Incident and Its Aftermath
A critical incident occurred when LinkedIn faced widespread outages due to memory leaks in their pre-rendering services. Chris was thrust into an on-call role to address the crisis, exposing vulnerabilities in the system's resilience and observability.
Chris (28:36):
"We were dealing with memory leaks that caused entire data centers to go offline. Our insufficient alerting and lack of resiliency measures turned a manageable issue into a catastrophic failure."
The incident underscored the importance of robust system design and proactive problem-solving, areas where Chris felt his team was making significant strides contrary to leadership's short-term focus.
Cultural and Social Challenges
Beyond technical hurdles, Chris reflects on the cultural and social dynamics at LinkedIn that impeded effective communication and collaboration. He points out the lack of personal relationships and the challenges of remote work in fostering a cohesive engineering culture.
Chris (38:18):
"Many of my colleagues had personal relationships that helped navigate technical disagreements, but I struggled to connect, especially while working remotely from Colorado."
This social disconnect exacerbated tensions during critical projects and incident responses.
Decision to Leave LinkedIn
After months of mounting pressure, unresolved conflicts, and a relentless pursuit of velocity over sustainable engineering practices, Chris faced burnout and recognized a misalignment between his values and the company's direction.
Chris (42:10):
"I experienced severe burnout—horrific migraines, panic attacks. Continuing down this path meant repeating past mistakes, and I chose to walk away rather than compromise my well-being."
He eloquently articulates the dilemma of choosing between personal health and professional integrity, ultimately prioritizing the latter by leaving LinkedIn to seek environments that value engineering excellence.
Conclusion and Takeaways
Chris concludes his story with introspection on the importance of aligning personal values with organizational goals. His departure serves as a testament to the challenges engineers face in large-scale enterprises and the critical need for sustainable development practices.
Chris (45:48):
"I'm looking for a role that aligns with my values—driving engineering excellence and making software better. Life’s too short to spend years fighting against misaligned priorities."
Final Thoughts
Adam Gordon Bell wraps up the episode by acknowledging the universal nature of Chris's experiences, emphasizing that such socio-technical conflicts are commonplace yet seldom discussed outside intimate circles. He encourages listeners to support the podcast and reflects on the broader implications of Chris’s journey for the engineering community.
Notable Quotes
-
Chris (02:55):
"The LinkedIn front end had 2 million lines of code—twenty times what I was used to." -
Chris (07:23):
"For a migration to work at that kind of scale, it has to be as automatable as possible." -
Chris (18:34):
"We had to align our initiatives with leadership's focus on velocity." -
Chris (28:36):
"We were dealing with memory leaks that caused entire data centers to go offline." -
Chris (42:10):
"I experienced severe burnout—horrific migraines, panic attacks." -
Chris (45:48):
"Life’s too short to spend years fighting against misaligned priorities."
About Chris Kraichow
At the time of this episode's release, Chris Kraichow is seeking new opportunities that resonate with his commitment to engineering excellence. He is passionate about improving software development practices and has articulated his thoughts extensively on his personal website, where he discusses topics like continuous improvement and system resilience.
Support the Podcast
If you enjoyed this episode, consider supporting CoRecursive to help keep these insightful stories coming. Visit corecursive.com/supporters to become a podcast supporter and gain access to bonus episodes and community events.
Thank you for listening to CoRecursive: Coding Stories. Until next time, keep building and sharing your coding narratives!
