Key Responsibilities
- System Design & Development: Design, build, analyze, and troubleshoot complex, large-scale distributed systems.
- Code Quality & Standards: Participate actively in code and design reviews to maintain and enforce our high development standards.
- Performance & Optimization: Engage in service capacity and demand planning, and lead software performance analysis, tuning, and optimization efforts, including full-stack performance.
- Feature Collaboration: Collaborate closely with product and experience teams to define, prototype, and implement feature specifications.
- Infrastructure Partnership: Work with the infrastructure team on building and scaling back-end services, and perform thorough root cause analysis investigations of production issues.
- Production Maintenance: Debug and modify complex production software to ensure system health and reliability.
Job Requirements
- Education: Degree in Computer Science, Software Engineering, Information Technology, or a related field with strong Computer Science fundamentals in algorithms and data structures.
- Experience: 5 years or more of relevant experience in software engineering, specifically within a distributed systems environment.
- Good in
english
both written and speaking. - Track Record: Proven track record of designing, developing, and implementing large-scale, highly available online services.
- Systems Knowledge: Strong understanding of system performance and scaling best practices.
- Technical Versatility: Exceptional coding skills in any major language (e.g., C++, C, Java, Scala, Rust, Haskell, OCaml, Erlang, Python, Ruby, PHP, Node.JS, C#).
- Soft Skills: Possess excellent communication and sharp analytical abilities with proven design skills, and the ability to think critically about system growth and stability.