- Company Name
- Plan A Digital
- Job Title
- Senior Java Software Engineer
- Job Description
-
**Job title**: Senior Java Software Engineer
**Role Summary**:
Lead the design, development, and maintenance of high‑performance fintech platforms using core Java. Champion test‑driven and domain‑driven development practices within a pair‑programming, continuous integration environment to deliver clean, maintainable, and resilient code at scale.
**Expectations**:
- Demonstrated depth of experience as a Java software engineer in complex projects.
- Proven ability to write efficient, low‑latency, high‑availability code (real‑time, concurrency).
- Strong adherence to Extreme Programming (XP) principles, test‑driven development (TDD/BDD), and domain‑driven design.
- Effective collaboration, clear communication, and willingness to pair‑program and rotate across teams.
**Key Responsibilities**:
- Architect and implement core Java components for fintech applications, ensuring performance, scalability, and reliability.
- Refactor legacy code to improve design, maintainability, and testability.
- Write and maintain comprehensive unit, integration, and automation tests for every commit.
- Automate builds, deployments, and operational processes using tools such as Jenkins, Ansible, and scripting.
- Participate in code reviews, pair programming, and knowledge‑sharing sessions across cross‑functional teams.
- Contribute to the continuous improvement of development workflows, CI/CD pipelines, and quality gates.
**Required Skills**:
- Core Java (JDK 8+), with deep understanding of language features, memory management, and concurrency primitives.
- Experience with build and automation tools: Maven/Gradle, Jenkins, Ansible.
- Strong knowledge of TDD/BDD practices and frameworks (JUnit, Cucumber, etc.).
- Familiarity with DDD concepts and applying them in real projects.
- Proficiency in version control (Git) and CI/CD principles.
- Clear written and verbal communication; collaborative mindset.
- **Desirable**: Background in performance‑oriented, real‑time or high‑availability systems; experience with low‑latency, concurrent programming.
**Required Education & Certifications**:
- Bachelor’s degree in Computer Science, Software Engineering, or related field.
- Certifications in Java (e.g., Oracle Certified Professional) or DevOps tools are a plus but not mandatory.