Software Development Engineers (SDEs) are the creative minds developing the software applications that make life easier for customers.
Responsible for the entire development and support process for a software programme.
Your applications make previously complex tasks simple with the impact ranging from saving time; effort or money to re-defining normal
Take a problem where technical strategy or approach is defined and come up with the solution design and drives the implementation with a fair level of autonomy including interacting with other SDEs in the same team or peer teams
· Reach out for direction proactively in case of ambiguities or constraints
· Own the delivery of a major component in a product or a small product entirely as part of a feature delivery
· Suggest improvements to processes and methodologies to enhance delivery speed; quality
· Mentor and guide other WL1 SDEs in the team and help in hiring
· Question requirements and challenge where necessary
· Identify value of tasks & always work on the highest priority items
· Programming o Demonstrate a good understanding of at least one major programming language o Understand the framework and enough of the tool ecosystem of the chosen language to implement end to end components with minimal assistance
o Comfortably produce and refactor code without assistance
o Test drive features in programming language of choice
o Understand different major language paradigms (OOP/Functional)
o Understand presence of abstraction beneath language (DVM/JVM/CLR)
o Reason about complexity of algorithms (time and space) and code (cyclomatic)
o Debug code
o Understand and resolve complex issues
· Design
o Identify design patterns in code
o Implement design patterns with guidance
o Comfortably translate small behaviour requirements into tasks & code
o Understand how high-quality code can lead to rapid delivery
o Write clean; maintainable code
o Demonstrate a basic understanding of domains and domain modelling
o Seek out and use appropriate abstractions
o Understand patterns for integration (events/services)
o Understand how to leverage existing functionality outside immediate project
o Understand scope of project and when to move behaviour to other services
· Development Practice
o Understand continuous integration and continuous delivery
o Demonstrate a working knowledge of CI tooling o Writes tests to ensure CI/CD processes work
o Understand BDD/TDD/Performance/Security/Smoke testing
· Infrastructure o Demonstrate a good working knowledge of one relevant operating system
o Script and automate within relevant environment
· Security o Understand Oauth/Saml & identity modelsMust have skills: Java/J2EE, Cloud Technologies ( Azure, Aws, etc )
Good to have: DevSecOps
Exp: 6 to 8years