Experience designing and maintaining large and scalable systems Critical thinking about development tools and processes Deep understanding of best practices for software maintainability and team productivity Proficiency in several industry technologies and frameworks (e.g., event streaming, horizontal scaling, data storage and retrieval) Know computer theory, including optimization of algorithms and distributed systems Conducted projects that involved collaboration of different teams Demonstrate the ability to learn quickly to tackle new challenges Excellent English skills (verbal and written) is mandatory