Job responsibilities
- Executes software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
- Creates secure and high-quality production code and maintains algorithms that run synchronously with appropriate systems
- Produces architecture and design artifacts for complex applications while being accountable for ensuring design constraints are met by software code development
- Gathers, analyzes, synthesizes, and develops visualizations and reporting from large, diverse data sets in service of continuous improvement of software applications and systems
- Proactively identifies hidden problems and patterns in data and uses these insights to drive improvements to coding hygiene and system architecture
- Contributes to software engineering communities of practice and events that explore new and emerging technologies
- Adds to team culture of diversity, equity, inclusion, and respect
- Conducts detailed peer reviews of code developed by colleagues
- Owns technical epics, supporting the team with the solution design and story refinement and estimation process through to delivery
- Provides out of hours application support and coordination of Production releases
- Analyzes complex flows of data between technical systems to develop solutions that meet the business needs
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts or a related discipline and proficient applied experience
- Hands-on practical experience in system design, application development, testing, and operational stability
- Proficient in coding in one or more languages, including Java 17+ with Spring Boot
- Experience of creating thread-safe concurrent code in Java or another JVM based language
- Hands-on experience with event driven architecture and distributed messaging technologies (e.g. Kafka )
- Experience with Docker and running Production workloads on Kubernetes
- Experience using and designing schemas/data structures on relational databases (e.g. PostgreSQL , MySQL , Aurora and Oracle )
- Experience in applying appropriate data structures and algorithms to solve business and technical problems
- Experience in developing, debugging, and maintaining code in a large corporate environment with one or more modern programming languages and database querying languages
- Overall knowledge of the Software Development Life Cycle
- Solid understanding of agile methodologies such as CI/CD, Application Resiliency, and Security
- Demonstrated knowledge of software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)
- Expertise in application, data and infrastructure architecture disciplines
Preferred qualifications, capabilities, and skills
- Experience with user interface technologies and languages, e.g. ReactJs , AngularJs , Typescript , JavaScript , CSS and HTML5
- Experience with user interface testing technologies, e.g. Selenium and Cypress
- Proficient with SQL and querying relational databases
- Experience with using Terraform to provision and configure infrastructure
- Experience with deploying and maintaining production workloads on the AWS public cloud
- Performance testing tool experience, e.g. Blazemeter and associated technologies
- UX and User Interface design experience
- Experience of working on production, Internet facing web applications
- Experience of data integration and streaming data analytics pipeline technologies
- Experience of cloud big data analytics platforms and technologies (e.g. Databricks )
- Certified Kubernetes knowledge (e.g. CKAD)
- Certified AWS developer knowledge (e.g. AWS Developer Associate)