Principal Software Engineers possess the ability to function as a leader for designing, implementing, and maintaining critical software components. Frequently have direct responsibility for product features or key technology choices and implementation. Collaborates as part of a team for the development of complex systems; including requirements analysis, concept development, and design, implementation and testing, demonstrating the flexibility of role as required.
- Solid understanding of cloud-based platforms and microservice architecture.
- Proven track record of implementing, testing, and deploying large scale distributed systems handling millions of requests per second.
- Capability and desire to own both the design and implementation of software components and services to solve deep technical problems.
- Automate-first mentality, and in particular, tacking the challenges associated with automating deployment, monitoring, and maintaining the health of a distributed cloud platform.
- Capability to learn, adapt and execute quickly in a fast-paced, agile development environment.
- Ability to partner effectively with PM and other developers to design and implement meeting the spirit of requirements.
- Write code (product and test) to deliver against project timeline, quality and requirements.
- Design software components (functionality, defect fixes, tests) that form part of a larger solution, in line with team objectives.
- Define test scenarios and test cases to ensure the quality of the team's deliverables.
Experience and Skills
- 5+ years experiences with Golang
- 2+ years experiences with Bash scripting
- 2+ years experiences with AWS services is a plus
- 1+ years experiences with Golang is a plus
- Experience using and creating RESTful APIs
- Experience with big data analytics and time-series data, ElasticSearch preferred
- Experience with Kanban or Agile development methodologies
- Experience with Continuous Integration/Continuous Deployment best practices
- Excellent attention to detail
- Excellent verbal and written communication skills
- Designing and writing high-quality code
- Evaluating code and design quality
- Technical problem solving and strong debugging skills
- Strong Linux or Unix systems experience
More Jobs From