Senior Java/Kotlin Engineer
6 months initial length
Remote with occasional travel to Bracknell
Overview
This role requires a highly skilled software engineer with expertise in Continuous Delivery and best practices for developing scalable, resilient solutions. The position involves working within a collaborative team environment to design, build, and maintain software systems using modern engineering techniques and technologies.
Key Responsibilities
* Act as an individual contributor within the team, completing medium to high-complexity tasks with minimal supervision.
* Participate in and influence design and engineering decisions.
* Provide technical leadership and mentoring to less experienced team members.
* Ensure adherence to engineering principles, coding standards, and quality strategies.
* Engage in hands-on development, contributing significantly to the team’s coding efforts.
Required Skills and Expertise
* Programming Languages: Proficiency in modern Java and/or server-side Kotlin.
* Frameworks: Experience with JVM frameworks such as SpringBoot or HTTP4K.
* Design Patterns: Knowledge of functional, object-oriented, and tiered design patterns, including Domain-Driven Design (DDD).
* Architectural Styles: Experience with MACH (Microservices, API-first, Cloud-native, and Headless) and event-driven architectures.
* Integration: Proficiency in implementing a variety of integration patterns.
* Cloud Platforms: Hands-on experience with cloud services (AWS, GCP, or Azure) and understanding of IAAS/PAAS offerings.
* Web Technologies: Basic skills in HTML and CSS.
* Engineering Practices: Familiarity with TDD, BDD, CI/CD pipelines, and practices like contract testing, shift-left/shift-right testing.
* Collaboration Techniques: Competence in practices like Three Amigos, Pair Programming, and retrospective-driven continuous improvement.
* Resilience and Security: Strong knowledge of creating resilient applications, including instrumentation, monitoring, and addressing OWASP Top Ten security vulnerabilities.