How did coding competitions prepare you for SRE at Google?
Competitive programming can help participants develop lots of skills that are useful for SRE, like dealing with ambiguity and being able to troubleshoot abstract ideas without necessarily being the expert.
CP trains us to focus on targets and how to achieve them. The short time limits teaches us to appreciate every moment and to efficiently utilize the resources we have.
Another aspect of similarity is troubleshooting and testing at scale. Both are key skills and responsibilities for SRE in order to be confident about a system and to know why it may or may not work. With tight time constraints to solve different problems and penalties on wrong attempts, CPers develop their testing and troubleshooting skills.
Both CP communities and SRE thrive on communication and collaboration. SREs have huge diversity in their responsibilities and how they approach them. Cross team collaboration during incidents for a common mitigation goal is similar to a CP style where 3 teammates are trying to solve the same problem on a single PC. In this style, coordination of efforts is essential.
In CP, team members may have different strengths in different algorithmic and data structures topics and they join their skills to solve more complex problems. Along the way, we learn to make use of our different skill sets in order to succeed together.
Any other tips you’d like to share with aspiring Googlers?
The path to success is not unique. These paths may cross but they may never be the same for everyone. We should identify our skills and put them into practice to sharpen them. We should always keep on learning and aiming for a better future.