Ivan Kozhirug
I’m a software engineer with more than 10 years of experience. I’m currently a Staff Software Engineer at Tide. I’m interested in Microservices, Event-Driven Architectures, DevOps and organizational scaling.
At Tide I’ve witnessed our engineering organization more than double in size in the past year, which allowed me to see first-hand what policies enable such rapid growth.
Before Tide I spent around 8 years working in the Gambling Industry. Software systems in that industry usually process millions of financial transactions per day, being subject to even higher peak loads during sporting events and certain holidays. This has allowed me to gain experience designing and developing Software that possesses the required Availability, Performance, Throughput, Observability, Scalability, etc.
Technical Excellence at Scale
The talk will focus on the importance of knowledge sharing for promoting Technical Excellence at Scale. This topic has always been relevant for bigger organizations, while smaller ones have usually relied on Tribal Knowledge. But in today’s world we often see successful start-ups experiencing rapid growth – starting with just a small team of engineers and ending up with hundreds of engineers in just a few years. Imagine your engineering team doubling or tripling in size in a year or just a few months and a few of your initial key engineers leaving during that same period. How do you handle that without sacrificing the quality of your Software Delivery? One of the keys is, you guessed it, organizational policies that enable effective and efficient knowledge sharing which in turn promotes Technical Excellence. This is crucial for scaling your organization successfully. At Tide we’ve seen our Engineering Team more than double in size in the past year. Based on our experiences I’ll discuss what we’ve learned about policies and practices that do NOT scale well and ones that DO scale well as the organization grows. The talk will try to answer the following questions:
- Why Tribal Knowledge doesn’t scale well?
- What is “The Bus Factor”?
- Why does your Organization need Software Engineering Principles?
- Why does your Organization need Guidelines?
- Why do you need to automate them?
- What is Chesterson’s principle?
- How to create documentation that would allow readers to understand decisions made years ago?
- What is LADR?
- How can you automate documentation creation? (Open API, Async API etc.)
- Why does your Organization need a structured process for onboarding new engineers?
- Why does your Organization need Induction Sessions?
- Why are Code Reviews important for Technical Excellence?
- Why does your Organization need a Service Catalogue? (Backstage etc.)
- How do you handle Deprecation?
- Why does your Organization need Interest Groups?