Senior Java Developer
⚲ Warszawa
25 000 - 28 000 PLN netto (B2B)
Wymagania
- Java
- AWS
- Kotlin
- Kubernetes
- Docker
- Spring Boot
Opis stanowiska
About Company:
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, Kotlin2.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 (KotlinDSL)
Infrastructure: Docker, AWS, Kubernetes
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, Kotlin2.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 (KotlinDSL)
Infrastructure: Docker, AWS, Kubernetes
🔍 Dekoder Ogłoszenia
✓ Ogłoszenie wygląda transparentnie — brak typowych czerwonych flag.