Job Description
Are you an engineer who has shipped distributed backend systems at scale, knows what breaks in production, and fixes it before it does? Do you want your work to have a direct impact on the wellbeing of millions of people across Europe?
If yes - read on.
Epassi is one of Europe's fastest-growing companies (Financial Times, multiple years running). We're a leading provider of employee benefit solutions, operating across Finland, Germany, Italy, UK, France, the Nordics and beyond. We started in Helsinki in 2007, launched Europe's first mobile employee benefit payment in 2008, and haven't stopped building since.
We are currently hiring a Senior Java Engineer
This is not a ticket-execution role. It's an ownership role.
Your mission at Epassi
You will join a cross-functional product team building and evolving a modern, distributed platform that powers Epassi's product vision across European markets. We are adding this role to strengthen our backend engineering capabilities and establish a solid, scalable foundation for Java Spring Boot services built for long-term growth - not just the next sprint.
You will own a backend domain end-to-end: from architecture decisions to production stability. You'll contribute to critical technical choices, shape how we build and operate our service landscape, and raise the engineering bar for the people around you.
Your responsibilities will be:
- Design, build, and maintain high-quality Java Spring Boot microservices within our domain bounded context architecture.
- Implement event-driven patterns for cross-domain communication and eventual consistency - you understand why, not just how.
- Work with PostgreSQL as primary data store: schema design, multi-tenancy, data isolation, query optimization under real load.
- Implement RESTful APIs with proper versioning, rate limiting, and API gateway integration.
- Ensure high standards for code quality, testing (unit, integration, contract), performance, and security ->80% coverage is the floor, not the ceiling.
- Collaborate closely with Product, Frontend (React Native), DevOps, and backend teams across multiple European markets.
- Participate in architectural discussions and design reviews; contribute to platform-wide standards and decision records (ADRs).
You’ll be successful in this role if you:
- Deliver production-ready, scalable microservices that meet target architecture specs - and own them after go-live.
- Define clear domain boundaries that prevent cross-domain coupling while enabling integration through well-designed APIs and events.
- Maintain >80% test coverage and contribute ADRs that shape platform decisions - not just for your services, but for the team.
- Proactively identify and reduce technical debt before it becomes someone else's emergency.
- Communicate clearly, work effectively across teams and time zones, and make cross-functional collaborators want to pull you into early conversations.
- Operate with a 'you build it, you run it' mindset - and genuinely believe that's the right way to work.
What you’ll be doing (daily):
- 15-minute stand-up with your cross-functional domain team -align, unblock, move.
- Design and implement features in your domain using Java Spring Boot, with clean, testable code as the default.
- Write comprehensive unit and integration tests; participate in code reviews that raise the team's standard.
- Monitor service health, investigate data consistency issues, and resolve production problems with distributed tracing and structured logging.
- Collaborate with frontend engineers to clarify API contracts and coordinate releases.
- Participate in architectural discussions and design reviews for new or cross-cutting capabilities.
- Deploy to staging and production via CI/CD (GitHub Actions), using feature flags for controlled rollouts.
What you should bring:
Non-negotiable
- 6+ years of professional software development, with 3+ years focused on Java backend - in production, at scale, with real failure modes you had to resolve.
- Deep expertise in Java 17+ and Spring Boot (Spring Data JPA, Spring Security, Spring Cloud).
- Microservices architecture you've designed service boundaries, not just worked inside them.
- Domain-Driven Design bounded contexts, aggregates, domain events, anti-corruption layers - you can apply this, not just describe it.
- PostgreSQL schema design, indexing, query optimization, and transaction management under load.
- Event-driven architecture with Kafka, RabbitMQ, or AWS SNS/SQS - at scale, in production.
- RESTful API design versioning, OpenAPI/Swagger documentation, rate limiting - contracts you'd stand behind in a design review.
- Testing discipline: JUnit, Mockito, integration and contract testing (Pact).
- Docker and Kubernetes: deployment strategies, service mesh - operational experience, not just familiarity.
- CI/CD pipelines: GitHub Actions, Jenkins, or GitLab CI.
- Observability: structured logging, distributed tracing.(Jaeger/Zipkin), metrics (Prometheus/Grafana/Datadog)
- Active experimentation with AI/LLM tooling applied to real engineering problems - automated workflows, reduced manual ops, smarter exception handling. Not a side project: something in production that you can talk about with specific.
- Mentoring you've made other engineers meaningfully better, not just shipped more code.
Your language profile:
Your track record:
- You've delivered and operated microservices in production - from design through deployment, on-call, and post-mortem.
- You've made measurable improvements to performance, reliability, or scalability (reduced latency by X%, improved uptime to Y, scaled from Z to ZZ req/s).
- You've collaborated effectively in cross-functional teams and left documentation behind that others actually used.
- You've contributed to technical decision-making: architecture reviews, design documents, or ADRs that had real consequences.
- You've led knowledge-sharing sessions or mentored engineers who are better for it.
Your competency profile:
- Systems Thinking: You understand how components interact in distributed systems. You design for failure scenarios, not just the happy path.
- Ownership & Accountability: You take end-to-end responsibility. When something is broken or missing, you raise it and fix it — you don't wait for the ticket.
- Pragmatic Problem-Solving: You balance ideal solutions with practical constraints. You know when to move the architecture forward and when to ship.
- Collaboration & Influence: You shape technical decisions through quality of argument, not seniority. You can disagree and commit — and you know when to do which.
- AI-Readiness: You think about AI strategically, not just tactically. You've embedded AI-driven automation into production systems, can evaluate where it adds real leverage versus where it creates noise, and actively help the team develop this fluency.
- Continuous Learning: You stay current, experiment, and adapt. You optimize for the codebase 2 years from now, not just the sprint.
- Quality Mindset: You build maintainable, secure, well-tested services. You document, you mentor, you leave things better than you found them.
Why You Should Join Us:
- Be part of an ambitious growth journey - join a global community of driven, bold, entrepreneurial, yet humble Epassians in a company that is constantly evolving.
- Work with a clear purpose - boosting everyday wellbeing - and create meaningful, positive impact on individuals and society.
- Thrive in an open, inclusive culture with low hierarchy, where relationships are built on respect, camaraderie, and shared success.
- Come as you are - we'll bring out the best in you and support your personal and professional growth.
- Join a fast-growing tech company with a strong financial foundation, offering real opportunities to make an impact.
- Work in an environment where employee wellbeing is a genuine priority, not a slide in a deck.
- Help shape the next wave of success as we consolidate our position as Europe's number one employee benefit platform.