Company Description
Accesa is a leading technology company headquartered in Cluj-Napoca, with offices in Oradea and 20 years of experience in turning business challenges into opportunities and growth.
A value-driven organisation, it has established itself as a partner of choice for major brands in Retail, Manufacturing, Finance, and Banking. It covers the complete digital evolution journey of its customers, from ideation and requirements setup to software development and managed services solutions.
With more than 1,200 IT professionals, Accesa also has a fast-growing footprint, establishing itself as an employer of choice for IT professionals who are passionate about problem-solving through technology. Coming together in strong tech teams with a customer-centric approach, they enable businesses to grow, delivering value for our clients, partners, industry, and community.
Job Description
Our client is modernizing its retail platform, transitioning from a legacy POS solution to a modular, offline-first architecture that supports POS terminals, self-checkout kiosks, and self-scanning devices. The platform is built around a shared Kotlin Multiplatform (KMP) core, powering key retail processes such as checkout, payments, customer management, and promotions across Android and Desktop applications.
We are looking for a Senior Kotlin Developer who is experienced in Kotlin Multiplatform delivery, comfortable owning complex shared modules in a layered architecture, and motivated by the challenge of building the reliable, platform-agnostic foundation that modern retail operations depend on.
Qualifications
Responsibilities:
- Technical delivery: Design, implement, and maintain shared KMP modules for POS business capabilities, ensuring code is high-quality, maintainable, and performant across JVM/Desktop and Android targets.
- Architecture ownership: Define clean repository, service, facade, DTO, and bridge contracts between Kotlin, platform-specific code, and the VueJS/TypeScript UI layer.
- Platform integration: Implement platform-specific code for desktop and Android targets using expect/actual patterns, without leaking platform concerns into shared business logic.
- Offline-first delivery: Build offline-capable flows with local persistence, caching, synchronization readiness, and explicit failure handling.
- Code quality: Write clean, well-structured code, participate in reviews, and improve existing modules through refactoring where needed.
- Testing: Write automated tests for domain rules, use cases, repositories, bridge contracts, and coroutine-based flows.
- Collaboration: Work closely with frontend engineers, QA, product owners, and architects to align on contracts, requirements, and feature delivery.
- Knowledge sharing: Support teammates by sharing knowledge and mentoring less experienced Kotlin developers when appropriate.
- Team alignment: Respect team agreements and processes, while providing regular updates on progress, trade-offs, and technical decisions.
Qualifications:
Must Have
- 5+ years of experience with Kotlin, including strong hands-on KMP delivery to at least two targets (preferably Android and JVM/Desktop)
- Solid understanding of Clean Architecture: domain, use-case, infrastructure, and platform layers with dependency inversion and repository abstractions
- Practical experience with Kotlin Coroutines and Flow: structured concurrency, suspend APIs, Flow-based state and events, cancellation, and error propagation
- Experience with offline-first or local-first client architecture: local persistence, caching, synchronization concepts, and conflict handling
- Familiarity with dependency injection patterns, preferably Koin: constructor injection, module composition, and test overrides
- Strong testing discipline: unit and integration tests using Kotlin Test or equivalent, test doubles, and coroutine testing utilities
- Experience integrating REST/OpenAPI-style services: typed DTO mapping, serialization, and resilient client-side communication
- Comfortable with Gradle Kotlin DSL, modular builds, and CI-friendly project structures
- Effective communication skills for collaboration with frontend developers, QA, and product stakeholders
Nice to Have
- Android application development experience, including lifecycle awareness and platform integration
- Desktop JVM client experience, especially Electron sidecar or local service integration patterns
- Understanding of VueJS 3 and TypeScript to collaborate effectively on Kotlin-to-UI bridge contract design
- Experience with plugin or extensibility architecture: extension points, lifecycle management, and isolation
- Performance engineering experience for latency-sensitive client operations (e.g., fast item scan, payment flows)
- POS, retail, payment, promotion, or hardware peripheral integration experience
- Familiarity with Agile/Scrum delivery processes
As a people-first organization, we believe diversity strengthens our teams and drives innovation. All employment decisions are based on merit, skills, and performance, without discriminating based on any personal characteristic. This reinforces our commitment to providing an inclusive and respectful workplace.
Additional Information
At Accesa you can
Enjoy our holistic benefits program that covers the four pillars that we believe come together to support our wellbeing, covering social, physical, emotional wellbeing, as well as work-life fusion.
- Physical Wellbeing: Our wellbeing program includes medical benefits, gym support, and personalized fitness options for an active lifestyle, complemented by team events and the Healthy Habits Club.
- Work-Life Fusion: In very dynamic industries such as IT, the line between our professional and personal lives can quickly become blurred. Having a one-size-fits-one approach gives us the flexibility to define the work-life dynamic that works for us.
- Emotional Wellbeing: We believe that to maintain our overall health, we need to invest in our mental wellbeing just as much as we do in our physical health, social connections or in achieving work-life balance
- Social Wellbeing: As a growing community in a hybrid environment, we want to ensure we remain connected not just by the great work we do every day but through our passions and interests