Mid/Senior Java Developer
Summary
Mid/Senior Java Developer joining Piano's billing & subscription management team in Poland, building a hybrid monolith + microservices platform (Java 21/Kotlin 2.0, Spring Boot, Kafka, MySQL, Redis) with a focus on reliability, data integrity, and scalability of subscription lifecycles.
Piano’s Digital Revenue Optimization solution helps digital services grow revenue by better
understanding and influencing their customers’ behavior. Piano unifies analytics, segmentation, and
commercial personalization in one AI-driven application, enabling sites and apps to efficiently
maximize the value of every user visit. Headquartered in Amsterdam with offices in the Americas,
Europe, and Asia-Pacific, Piano serves a global client base including the BBC, Deutsche Telekom,
Nikkei, AXA and the Wall Street Journal. For more information, visit piano.io.
About The Project
You’ll join a team working on a high-complexity system in the billing & subscription management
domain. The platform uses a hybrid architecture (monolith + selected microservices) and a hybrid
technology stack, requiring strong engineering judgment around consistency, correctness, reliability,
and scalability.
Critical domain: billing cycles, and subscription lifecycles across multiple payment providers.
Precision and data integrity are non-negotiable.
Distributed architecture: event-driven patterns (Kafka), Outbox patterns, and distributed
Hybrid ecosystem: mix of Spring Boot + Jersey + Guice, split between Java 21 and Kotlin
2.0.
Scale & resilience: resilience patterns (Resilience4j), observability (Datadog/OpenTelemetry),
What you’ll do
Collaborate with technical leaders and architects to efficiently deliver new functionalities in a
complex domain.
Plan, design, and implement new features with a strong focus on reliability, consistency, and
maintainability.
Solve production problems before they affect customer experience (root-cause analysis,
mitigation, and long-term fixes).
Contribute to engineering: testing strategy, performance, observability, and operational
readiness.
Expected Qualifications
5+ years of experience as a Java Developer (enterprise systems preferred).
Strong proficiency in Java (up to v21) and plus would be a solid experience with Kotlin.
Experience with Spring Boot (2.7+) / Spring Framework.
Good level of understanding of SQL (MySQL 8) and ORM (Hibernate), including: transaction
isolation and locking strategies; performance tuning
exactly/at-least-once thinking); Redis / Redisson (distributed locks, concurrency handling);
designing for eventual consistency, idempotency, and failure scenarios
Strong automated testing culture: JUnit 5, Mockito, Testcontainers
Polish, English (B2)
Nice to have
Cloud/infra: Basic understanding of AWS, Docker/Docker Compose.
Observability: Datadog, OpenTelemetry, distributed tracing/metrics-first mindset.
Payments: experience integrating Stripe
Frameworks: Spring Boot, Guice, Jersey (JAX-RS)
Data: MySQL 8.0, Redis (Redisson), Hibernate 5.6, DynamoDB