Company: RDS DOO
Position: Kotlin Backend Developer (Middle+)
Location: Serbia, office
About the project
The Project is a Smart City video-surveillance platform. The platform handles video conversion, integrates with storage, and uses an event-driven architecture. Deployed across several countries, it focuses on scalability, observability, and reliability.
Stack
•Language & Frameworks: Kotlin, Spring Boot, Spring MVC, Spring Security
•Database: PostgreSQL, ClickHouse, JPA / Hibernate, Spring Data JPA
•Security: JWT, Spring Security, RBAC, permission-based authorization
•Async: Kotlin Coroutines
•Testing: JUnit, MockK, Testcontainers
•Infra: Docker, Kubernetes, Linux
•Monitoring: Prometheus, Grafana, logging, metrics, tracing
•Docs: OpenAPI / Swagger
Responsibilities
•Develop and maintain backend services in Kotlin / Spring Boot;
•design and implement REST APIs and business logic;
•work with PostgreSQL / ClickHouse, JPA / Hibernate and optimize database access;
•identify and resolve N+1, lazy-loading and transaction-related issues;
•design and implement RBAC and permission-based authorization;
•implement tenant- and resource-level access control;
•work with JWT authentication and Spring Security;
•deploy and troubleshoot services in Docker / Kubernetes environments;
•refactor and optimize existing Kotlin code;
•write unit and integration tests;
•participate in code reviews and backend architecture decisions.
Must-have
•2+ years of commercial backend development experience with Kotlin / Spring Boot (Middle+ level);
•strong Kotlin knowledge and good understanding of Java ecosystem;
•production experience with Spring Boot / Spring MVC;
•solid understanding of Spring IoC, DI, proxies and @Transactional;
•practical experience with PostgreSQL and JPA / Hibernate;
•understanding of persistence context, lazy loading, N+1 and dirty checking;
•experience with Spring Security and JWT;
•good understanding of roles, permissions and RBAC;
•understanding of resource-level authorization and multi-tenant access control;
•hands-on experience with Docker, Kubernetes and Linux;
•ability to analyze and optimize existing code and database queries;
•solid understanding of collections, algorithmic complexity and basic performance trade-offs.
Nice-to-have
•ClickHouse production experience;
•Kotlin Coroutines / Flow;
•experience with high-load or distributed backend systems;
•ABAC / policy-based authorization experience;
•Testcontainers;
•Kafka / RabbitMQ;
•Kubernetes operations and troubleshooting;
•Prometheus / Grafana / distributed tracing;
•OAuth2 / OpenID Connect;
•experience designing multi-tenant systems.
Offer
•Strong engineering team and real impact on backend architecture;
•modern Kotlin / Spring stack, CI/CD, Kubernetes and code reviews;
•opportunity to work on security- and performance-critical backend components;
•flexible schedule;
•competitive compensation based on experience and interview performance.