Technical Leadership
- Take charge of designing and implementing platform capabilities, while contributing to the overall system architecture to ensure robust and scalable software solutions.
- Need minimal directions or guidance and collaborate with SDEs across teams working on the same or similar business problem
- You showcase exemplary behavior in your work – your design; delivery; code; processes all set examples for your team
- Influence your team’s technical and business strategy by suggesting novel approaches
- Able to communicate your ideas and get feedback from different stakeholders and drive convergence to achieve the right outcomes
- Encourage and challenge design and solution proposals within the team to foster healthy debates, ensuring the generation of the best solutions and ideas.
- Proactively mentor the rest of the team and help in hiring
- Ensure design or architectural deficiencies are addressed and routinely simplify integration of your peer teams with your team’s software
- Consistently lead delivery of valuable features
- Continually propose and drive process improvements
- Help elaborate requirements where necessary
Programming
- Demonstrate in depth knowledge of IDE, language and toolset in language of choice. (Golang ; Java)
- Implement critical path components in a large or complex or project.
- Demonstrate excellent understanding of language & framework and a good working knowledge of the abstraction layer underneath
- Profile and optimize code
- Write unit-test code to ensure robustness; usability; and reliability of the applications and Platform.
- Understand threads, threading model and concurrent programming
- Comfortably test drive any feature/comfortable with TDD and BDD cycle
- Demonstrate a good knowledge of other programming languages & paradigms and when to apply them
- Comfortably debug/find complex problems
Design
- Identify and apply appropriate design patterns to problems
- Comfortably develop large features
- Understand Idempotence
- Actively practice the boy scout principle; leaves design; code in a better state than when arrived
- Demonstrate a good understanding of cohesion; SOLID and how to apply
- Understand importance of domain model and can coherently model a problem domain within a given context
- Anticipate medium term (3-6 month) vectors of change and designs and abstracts accordingly
- Understand and appreciate simplicity and the value of removing code
- Understand how to design for performance at all levels
Development Practice
- Automate everything by default
- Proficient with Infrastructure-as-Code (e.g., Terraform) and building CI/CD pipelines.
- Automate security scanning and performance testing as part of build
Infrastructure
- Demonstrate a good grasp of multiple operating systems
- Demonstrate a good grasp of scripting techniques
- Demonstrate expertise in one database & good grasp of multiple data storage paradigms and when to apply other technologies
- Proficient with Public Cloud Platform and associated services (e.g., Azure)
- Demonstrate in depth knowledge of building and managing Kubernetes clusters and workloads.
Security
- Write secure code by default
- Use tools to perform deep security probes
- Ensure the system's security by implementing a layered defense model and utilizing DevSecOps practices.