Role descriptionJob Description
Software Engineering | Software Development Engineering - Sr
Level: 7
Role SummaryAs a Software Development Engineer II at customer, you are expected to perform the following general duties:
Responsibilities- Participate in team prioritization discussions with Product/Business stakeholders
- Estimate and own delivery tasks (design, dev, test, deployment, configuration, documentation) to meet the business requirements
- Automate build, operate, and run aspects of software
- Drive code/design/process trade-off discussions within their team when required
- Report status and manage risks within their primary application/service
- Drive integration of services focusing on customer journey and experience
- Perform demos/acceptance discussions in interacting with Product owners
- Improve operational experience and metrics in ownership areas
- Mentor and guide new and less-experienced team members
- Identify opportunities to improve an overall process and trim waste
- Share and seek knowledge within their Guild/Program to drive reuse and productivity
Professional Qualifications- Business operations: Leverages working knowledge of customer business, systems, products, and customer requirements in making fact-based business decisions.
- Market knowledge: Applies deeper knowledge of local/regional markets and industry trends linking to own technical expertise to provide relevant and up-to-date work deliverables.
- Competitor knowledge: Reviews information on competitors' product offerings, business models and technology innovations on a regular basis and shares findings.
- Growing and developing teams: Actively seeks and participates in activities which stretches ones existing skill set and adds new, and more difficult capabilities for team members.
- Inspiring and empowering others: Encourages and uses the strengths of colleagues to effectively deliver and innovate work approaches to constantly exceed expectations.
- Coaching and feedback: Use an evidence-based approach to provide constructive feedback to team members maturely handling the conversations towards positive outcomes.
Technical Skills- Programming: Has ability to write secure code in three or more languages -Java, JavaScript, SQL (Oracle); familiar with secure coding standards (e.g.OWASP, CWE, SEI CERT) and vulnerabilities
- Programming: Understands internal of operating systems (Windows, Linux, Mainframe) to write interoperable and performant code; able to perform debugging and troubleshooting to analyze core, heap, thread dumps and remove coding errors; understands cryptography techniques and libraries to build secure communication and user authentication/authorization (e.g. OAuth1.0a, SAML, GnuTLS, OpenSSL, PKCS#11, CryptLib, JCA/JCP, JWT/JWS/JWE)
- Development Practices: 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
- Development Practices: Able to apply DRY (Don't Repeat Yourself) principle to enable common library development for enterprise-wide reuse; has skills in test driven and behavior driven development (TDD and BDD) to build just enough code and collaborate on the desired functionality; has skills to author test code with lots of smaller tests followed by few contract tests at service level and fewer journey tests at the integration level (Test Pyramid concepts
- Patterns and Frameworks: Understands theuse of basic design patterns (e.g.factory, adaptor, singleton, composite, observer, strategy, inversion of control); has skills inbuilding applications using open frameworks to achieve reuse and reduce development times (e.g.Spring Boot, Steeltoe, Angular, DXP, others)
- Patterns and Frameworks: Understand use cases for advanced design patterns (e.g. service-to-worker, MVC, API gateway, intercepting filter, dependency injection, lazy loading, all from gang of four) to implement efficient code; understands and implements Application Programming Interface (API) standards and cataloging to drive API/service adoption and commercialization
- Patterns and Frameworks: Understand use cases for advanced design patterns (e.g.service-to-worker, MVC, API gateway, intercepting filter, dependency injection, lazy loading, all from gang of four) to implement efficient code; understands and implements Application Programming Interface (API) standards and cataloging to drive API/service adoption and commercialization
- Planning: Has skills to collaborate with team and business stakeholders to estimate requirements (e.g. story pointing) and prioritize based on business value; understands work classification to determine software capitalization opportunities; has skills to elaborate and estimate non-functional requirements, including security (e.g. data protection, authentication, authorization), regulatory, and performance (SLAs, throughput, transactions per second)
- Practices and Metrics: Has skills to understand, report, and optimize delivery metrics to continuously improve upon them (e.g. velocity, throughput, lead time, defect leakage, burndown); has skills to document and drive definition-of-done for requirements to meet both business and operational needs; understands cost of defects and implements a well-defined defect life cycle to minimize defect leakage and improve customer and operational experience; has skills to conduct product demos and co-ordinate with product owners to drive product acceptance sign-offs
- Engineering Principles: Understand the basic tenets of buildingand runningmission critical software capabilities (security, customer experience, testing, operability, simplification, service-oriented architecture)
- Engineering Principles: Has skills to implement and govern data protection at rest and transit to meet regulatory needs (e.g. PCI DSS, GDPR); has skills to understand customer journeys and ensure customer good experience by continuously reducing Mean time to mitigate (MTTM) for incidents and ensuring high availability (99.95% as a starting point); has skills to simplify deployment and eliminate software and infrastructure snowflakes using standardized platforms, ephemeral instances, and automation
- Patterns and Protocols: Understands encryption and digital signature standards and patterns (e.g. symmetric/secret-key - AES, public key, and hashing - SHA-2 and SHA-3) and recommend software or hardware (HSM) implementation solutions; has skills to implement authentication and authorization patterns depending on use cases (e.g. RBAC, multi-factor, SSO, biometric)
- Automation: Has skills to orchestrate release workflows and pipelines, and apply standardized pipelines via APIs to achieve CI and CD using industry standard tools (e.g. Jenkins, Bamboo, AWS/Azure pipelines, XL Release, others); able to configure rules and build automation for code with vulnerability scanning and software composition analysis using standard tools (e.g. Sonar, Checkmarx, Nexus, JFrog XRay, Veracode, others); manage builds and artifacts leveraging standard tools (e.g. Artifactory) to ensure error-free deployment of production code using canary and blue-green techniques
- Performance and Observability: Has skills to implement standard logging and event correlation for business transactions and security events for faster troubleshooting and compliance; familiar with adoption of standard logging frameworks and tools (e.g. log4j, SLF4J, Splunk) to aggregate and analyze time-series of logs; has skills to build monitoring and ing focusing on key signals (resource usage, threshold breaches, rate of change) by using industry standard tools (e.g. Dynatrace, Netcool/OMNIbus, OpenTracing)
- Test Strategy: Follows customer testing standards via the Test Strategy; has skills to author test cases leveraging behavior driven development and customer journey concepts; understand organization of testing artifacts (e.g. test folders, sets, runs) in ALM tools and link them to automated testing code to report status of test runs
- Testing Types: Understand functional and non-functional testing types and elaborate and estimate test efforts; understand how to build and automate robust tests to minimize defect leakage by performing regression, performance, deployment verification, and release testing
- Platform as a Service (PAAS) /Function as a Service (FAAS): Understands general concepts around PAAS and FAAS, and building applications that can be hosted on any standardized on-prem/public or private cloud environments
- Containerization: Shows basic knowledge of containers, how they work, and their interaction with applications and other systems on the platform