Senior Java Developer
Piano Software
About Piano
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 coordination (Redis/Redisson distributed locks).
- Hybrid ecosystem: mix of Spring Boot + Jersey + Guice, split between Java 21 and Kotlin 2.0.
- Scale & resilience: resilience patterns (Resilience4j), observability (Datadog/OpenTelemetry), and scheduling (Quartz).
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
- Hands-on distributed systems experience:
- Kafka (event design, consumer reliability, 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
- Computer Science degree
- Selenium experience
Current Tech stack
- Languages: Java 21, Kotlin 2.0
- Frameworks: Spring Boot, Guice, Jersey (JAX-RS)
- Data: MySQL 8.0, Redis (Redisson), Hibernate 5.6, DynamoDB
- Messaging: Apache Kafka
- Resilience / Scheduling: Resilience4j
- Observability: Datadog, OpenTelemetry
- Build: Gradle (Kotlin DSL)
- Infrastructure: Docker, AWS, Kubernetes
Employment & benefits
- B2B contract
- Up to PLN 27,000
- Hybrid work model: 2 days/week from the office in Warsaw
- Benefits: 20 days of paid leave, Lunch Card, Luxmed
Recruitment process
- Screening call (up to 30 minutes, video)
- Technical Interview
- Manager Interview