Job responsibilities
- Executes creative software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
- Works closely with Solution & Technical Architects, Senior Engineers to develop the best technical design and approach for new product development and can manage team(s) of 6-10 member.
- Develops secure high-quality production code, and reviews and debugs code written by others
- Identifies opportunities to eliminate or automate remediation of recurring issues to improve overall operational stability of software applications and systems
- Leads evaluation sessions with external vendors, startups, and internal teams to drive outcomes-oriented probing of architectural designs, technical credentials, and applicability for use within existing systems and information architecture
- Leads communities of practice across Software Engineering to drive awareness and use of new and leading-edge technologies
- Adds to team culture of diversity, equity, inclusion, and respect
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and 5+ years applied experience
- Deep understanding of architectural concepts, issues and trends along with experience in applying appropriate data structures and algorithms to solve business and technical problems
- Demonstrable experience in people management as well as strong written and verbal communication skills.
- Proficient in coding in one or more object-orientated languages, including Java17+ 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, CockroachDB and Cassandra )
- Overall knowledge of the Software Development Life Cycle
- Solid understanding of agile methodologies such as Scrum, CI/CD, Application Resiliency, and Security
Preferred qualifications, capabilities, and skills
- Hands on experience with a statically compiled language like C, C++, Rust or Golang
- Knowledge of data serialisation formats (e.g. Google Protocol Buffers, Apache Avro or Parquet )
- Experience with gRPC
- Experience in performance / non-functional testing tools and techniques (e.g. JMeter , Gatling , Blazemeter )
- Experience with caching technologies, e.g. Redis, Valkey
- Certified Kubernetes knowledge (e.g. CKAD)
- Certified public cloud technology knowledge (e.g. AWS)