This position is responsible for designing complex modules, critical components or a whole application/product in its entirety. A staff software engineer has the vision to integrate it across multiple systems. This position works independently and is seen as a technical leader. The position is responsible for driving the design and development efforts related to architecture, scalability, availability and performance in alignment with the product/application roadmap.Essential Responsibilities:
Qualifications / Requirements:
- Proven track record of successful problem definition, decomposition, estimation.
- Expert in Design, Architecture, Development, Continuous Integration and Delivery, with an ability to take a deep dive in the implementation aspects if the situation demands.
- Leads impact assessment and decision related to technology choices, design /architectural considerations and implementation strategy.
- Subject matter expert in processes and methodologies with ability to adapt and improvise in various situations.
- Expert in navigating through ambiguity and prioritizing conflicting technical asks.
- Demonstrates skills in influencing technical decisions within engineering and product teams and owns the technical architecture of the product/application.
- Expert in core data structures as well as algorithms and has the ability to implement them using language of choice when necessary - as a value offering.
- Defines and owns coding and design standards, ensures secure development practices, establishes expectations around performance, drives internationalization, and manages CI/CD pipelines.
- Demonstrates strong communication skills.
- Work cross functionally with other business departments to align activities and deliverables.
- Apply principles of SDLC and methodologies like Lean/Agile/XP, CI, Software and Product Security, Scalability, Documentation Practices, refactoring and Testing Techniques
- Bachelor's Degree in Computer Science or in "STEM" Majors (Science, Technology, Engineering and Math)
- A minimum of 8 years of professional experience in designing and developing applications or microservices
- Expert in designing and building applications using NodeJS, Python, Java, SpringBoot or related technologies.
- Should have expert working knowledge of any of Kafka, RabbitMQ, ActiveMQ or any other distributed messaging systems.
- Deep working knowledge of Jenkins, Travis or other CI/CD tools.
- Prior experience with Docker, Kubernetes/Docker Compose/Docker swarm will be desired