
• 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
