
β’ Responsible for the analysis, design, development and delivery of software solutions
β’ Defines requirements for new applications and customizations, adhering to standards, processes and best practices
β
β
β’ Own software delivery tasks (code development, test, deployment) at an application/software component level
β’ Participate in team prioritization discussions with Product/Business stakeholders
β’ Able to troubleshoot and refactor existing code
β’ Adopt new languages and architecture patterns needed for the work
β’ Influence the decisions made by the team
β’ Assist peers and less experienced members
β’ Influence the decisions made by the team
β’ Demonstrate active learning and sharing of software practices via Guild/Engineering community initiatives
β’ Assist in technical documentation of APIs and services being delivered
β
β
β’ Has ability to write secure code in three or more languages (e.g., C, C+, C#, Java, JavaScript, COBOL, SQL)
β’ Familiar with secure coding standards (e.g., OWASP, CWE, SEI CERT)
β’ Understands and implements standard branching (e.g., Gitflow) and peer review practices
β’ Apply tools (e.g., Sonar, Zally, Checkmarx ) and techniques to scan and measure code quality and anti-patterns as part of development activity
β’ Understands and builds test code at unit level, service level, and integration level to ensure code and functional coverage
β’ Understands the use of basic design patterns (e.g., factory, adaptor, singleton, composite, observer, strategy, inversion of control)
β’ Understands requirement analysis being essential part of delivering value to our customers and partners and participate in elaboration, prioritization, and effort estimation
β’ Understands different SDLC practices (Waterfall/Scrum/Kanban/SAFe) and the delivery situations they are used for
β’ Understands the basic engineering principles used in building and running mission critical software capabilities (security, customer experience, testing, operability, simplification, service-oriented architecture)
β’ Familiar with different application patterns to implement different types of business processes (e.g., APIs, event-driven-services, batch-services, web-applications, big data)
β’ Understands Continuous Integration (CI) and Delivery (CD) concepts, and capabilities to support automation, pipelines, virtualization, and containerization
β’ Has ability to write code (in languages such as Java, Python, Ruby, Bash, Perl, Groovy) to build automation tasks that are repeatable and efficient
β’ Understands functional and non-functional testing types to elaborate and estimate test efforts