1. Develop and operate scalable, reliable and maintainable service-based softwares and related components.
2. Cowork with team members to design system architecture, choose proper technologies and plan development.
3. Responsible for laying the foundation for the platform as well as proposing solutions to ease software development, monitoring of software, etc.
4. Profiling and performance tuning of critical components
5. Deploy system to production and monitor service health
6. Ability to build web services on Linux.
7. Good at any of the listed language: Go / node.js / Python / Dart / PHP.
8. Good understanding of containers (Docker).
9. Good knowledge of Network API Design ( e.g. REST or GraphQL).
10. Good understanding of any SQL / NoSQL database (MySQL / MongoDB / Redis / etc.)
11. Familiar with git.
12. Familiar with continuous integration / continuous deployment
13. Team player and able to work independently.
14. Good understanding of Agile development methodology.
1. Good at profiler and debugging tools.
2. High performance network service on Linux.
3. Design and architect large scale distributed system.
4. Design and implement distributed algorithm and data structure.
6. Familiar with Nginx / HAProxy.
7. Familiar with operation automation tool (such as Ansible).
8. Familiar with continuous integration / continuous deployment