In today's fast-paced world of software development, speed and efficiency are crucial to delivering high-quality products.
One key way to achieve these goals is through the creation of abstractions, which allow teams to build on top of existing code, reducing development time and improving overall quality.
As a Staff Software Engineer of a core/platform/building blocks team for the past five years, I have gained extensive experience in creating these building blocks and abstractions for other teams to use. In this talk, I will share my insights on what I consider to be the key factors for success in this position and how to mentorship an organization in open ownership and collaboration.
We will commence by examining the significance of closely collaborating with other teams to identify their requirements and difficulties. Afterward, we will delve into typical architectural patterns for abstractions. It is imperative to understand these patterns to develop efficient and adaptable abstractions that enable teams to function more effectively. Moreover, we will discuss the importance of initializing from concretions to ensure a positive developer experience (DX) and effective adoption and utilization of abstractions. Finally, we will explore strategies for communicating strategic thinking and balancing the needs of various teams and the overall system. This demands a strategic mindset to make difficult decisions when required, acting as guardians of a dependable and appropriate system.
In this talk, I will dive deeper into each and a few more of these key factors and provide real-world examples and practical advice for success in a core/platform/building blocks team. Attendees will leave with a better understanding of the art of abstracting and how to excel in this important role and 10x products and organization.