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
- 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 proficient applied experience
- Proficient in coding in one or more object-orientated 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 in SQL and NoSQL databases (e.g. Oracle, PostgreSQL, MongoDB and Cassandra )
- Expertise in applying appropriate data structures and algorithms to solve business and technical problems
- Hands-on practical experience in secure system design, application development, automated regression testing, performance profiling 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
- Overall knowledge of the Software Development Life Cycle
- Solid understanding of agile methodologies such as Scrum, CI/CD, Application Resiliency, and Security
- Expertise in application, data, and infrastructure architecture disciplines
- Knowledge of industry-wide technology trends and best practices
Preferred qualifications, capabilities, and skills
- Experience with caching technologies, e.g. Redis
- Hands on experience with C++, Rust or Golang
- Knowledge of data serialisation formats (e.g. Google Protocol Buffers, Apache Avro and Parquet )
- Experience with gRPC
- Certified Kubernetes knowledge (e.g. CKAD)
- Certified public cloud technology knowledge (e.g. AWS)