Senior Java Software Engineer
A challenging opportunity has arisen for a skilled Full Stack Java Engineer to join our team. In this pivotal role, you will be working closely with leadership and a small engineering team to gradually refactor and rebuild our core system while keeping the production environment stable, secure, and performant.
About the Role
We are looking for an experienced developer leader who enjoys solving complex challenges and driving software evolution across the full stack. Your primary focus will be on modernizing a legacy Java-based SaaS system into a clean, modular system, leveraging modern techniques and architectures such as Hexagonal Architecture, CLEAN architecture principles, and the Strangler Fig pattern.
You will be responsible for participating in architectural design and progressive refactoring of the system, defining and documenting architectural principles, modular boundaries, and migration strategy. Additionally, you will contribute to backend and frontend development using modern Java and web frameworks, refactor and re-architect legacy code to increase clarity, testability, and extensibility, and maintain and enhance the AWS-hosted environment including services like Lambda, EC2, RDS, and S3.
Key Responsibilities
* Modernization & Architecture:
o Participate in the architectural design and progressive refactoring of a legacy Java-based SaaS system into a clean, modular system.
o Define and document architectural principles, modular boundaries, and migration strategy.
* Full Stack Engineering:
o Contribute to backend (including DB) and frontend development using modern Java and web frameworks.
o Refactor and re-architect legacy code to increase clarity, testability, and extensibility.
* Cloud Infrastructure & DevOps:
o Maintain and enhance the AWS-hosted environment including services like Lambda, EC2, RDS, and S3.
o Implement observability and monitoring solutions (e.g., CloudWatch, Sentry).
* System Maintenance & Stability:
o Monitor, debug, and resolve performance bottlenecks and system issues in production.
o Automate maintenance workflows and system health checks.
o Collaborate with stakeholders to address bugs, technical debt, and service improvements.
* Team Enablement:
o Share architectural knowledge through diagrams, documentation, and code reviews.
o Advocate for modern design principles and mentor developers on best practices.
Required Qualifications
* 5+ years of Java development experience, including modern versions (Java 8+), Spring Boot, or equivalent frameworks.
* Deep knowledge of software architecture, particularly in domain-driven design, modular monoliths, and clean layering.
* Experience implementing or migrating to Hexagonal Architecture, CLEAN architecture, strangler fig or similar patterns.
* Hands-on experience with AWS services including Lambda, RDS, EC2, and S3.
* Solid understanding of CI/CD, infrastructure as code (Terraform/CloudFormation), and DevOps practices.
* Proficiency in troubleshooting distributed systems and handling complex production issues.
* Working knowledge of relational databases (PostgreSQL, MySQL) and data modeling.
* Comfort with front-end technologies (HTML/CSS/JS) for full-stack development where needed.
* Strong version control experience with Git.
* Excellent written and verbal communication skills.
Benefits
This is a hands-on role for a senior developer leader who enjoys tackling complex challenges and driving software evolution across the full stack. You will have ownership in the architectural direction and leave a long-term legacy in the codebase. You will work in a collaborative, flexible, remote-first team culture and influence technical standards, practices, and development workflows from the ground up.