Job responsibilities
- Executes standard software solutions, design, development, and technical troubleshooting
- Writes secure and high-quality code using the syntax of at least one programming language with limited guidance
- Designs, develops, codes, and troubleshoots with consideration of upstream and downstream systems and technical implications
- Applies knowledge of tools within the Software Development Life Cycle toolchain to improve the value realized by automation
- Applies technical troubleshooting to break down solutions and solve technical problems of basic complexity
- Gathers, analyzes, and draws conclusions from large, diverse data sets to identify problems and contribute to decision-making in service of secure, stable application development
- Learns and applies system processes, methodologies, and skills for the development of secure, stable code and systems
- Adds to team culture of diversity, equity, inclusion, and respect
- Participates in peer reviews of code developed by colleagues, providing valuable suggestions and improvements
- Provides out of hours application support and coordination of Production releases
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts or a related discipline and applied experience
- Demonstrable ability to code in one or more object-orientated languages, including Java
- Experience with popular Java build tools and test frameworks (e.g. Maven, JUnit, Mockito and Cucumber )
- Hands-on practical experience in system design, application development, automated testing, application logging, monitoring and operational stability
- Experience in developing, debugging, and maintaining code in a large corporate environment with one or more modern programming languages and database querying languages
- Experience across the whole Software Development Life Cycle
- Exposure to agile methodologies such as Scrum, CI/CD, Application Resiliency, and Security
- Emerging knowledge of software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)
Preferred qualifications, capabilities, and skills
- Experience with Java 8 and above
- Experience with Spring Boot and other Spring libraries
- Hands on experience with a statically compiled language like C, C++, Rust or Golang
- Exposure to messaging systems (e.g. Kafka )
- Exposure to containerized cloud technologies (e.g. Kubernetes )
- DevOps tooling experience (e.g. Jira, Jenkins, Sonar and Bitbucket )
- Experience of maintaining software in a restricted Production environment
- Certified cloud knowledge (e.g. AWS Cloud Practitioner or CKAD)