Start Your Search Here

Job Search

NTT DATA Europe & Latam

, EMILIA-ROMAGNA, Italy / Global

Senior Backend Software Engineer with Kotlin

  • €85.000 - €110.000

Job Summary

Salary Range:
€85.000 - €110.000
Applica Now

Job Description

Who We Are

We are looking for a Senior Backend Software Engineer to design, build, and operate backend services for an internal platform that leverages decisioning and machine learning to deliver personalised customer experiences. This senior individual contributor role focuses on Kotlin, APIs, PostgreSQL, cloud technologies, streaming, and distributed data processing, delivering backend capabilities end-to-end while collaborating closely with frontend and data teams.

Who We Are

We are looking for a Senior Backend Software Engineer to design, build, and operate backend services for an internal platform that leverages decisioning and machine learning to deliver personalised customer experiences. This senior individual contributor role focuses on Kotlin, APIs, PostgreSQL, cloud technologies, streaming, and distributed data processing, delivering backend capabilities end-to-end while collaborating closely with frontend and data teams. The role drives key technical outcomes, contributes to architecture and engineering standards, mentors engineers, and works within the guidance of the Technical Lead. As a client-facing consultant, you will provide clear communication, sound technical judgement, and pragmatic solutions in complex delivery environments.

Technology Stack

Backend: Kotlin and Ktor

Data and messaging: PostgreSQL, Kafka, and Spark

Frontend: API contract testing, schema evolution, service compatibility, or consumer-driven contract approaches

Cloud and delivery: AWS, GCP, Docker, Terraform, and GitLab CI/CD

Quality and operations: Kotest, property-based testing, Cucumber, Playwright, and observability tooling

What You’ll Be Doing

Design, build, maintain, and operate backend services and REST APIs using Kotlin and Ktor

Own backend-led work from discovery and domain design through implementation, automated testing, deployment, observability, production support, and iteration

Model and manage data in PostgreSQL, including schema design, queries, performance tuning, and database migrations

Use Terraform to define, provision, and manage cloud infrastructure as code

Build event-driven and batch data-processing workflows

Collaborate with data scientists and adjacent teams on reliable integrations with internal services, data platforms, and machine-learning systems

Improve service resilience, security, logging, metrics, tracing, and operational tooling

Use unit, property-based, integration, contract, behaviour-driven, and end-to-end testing where appropriate

Contribute to technical design, code reviews, documentation, and the maintainability of a large codebase

Design stable interfaces and integration contracts that enable frontend, data, and downstream teams to deliver end-to-end capabilities

Work directly with client stakeholders and delivery partners as requirements evolve, explaining technical trade-offs and adapting backend scope without compromising reliability, maintainability, or operational quality

What You’ll Bring Along

BSc/MSc in Computer Science or related field

6/8+ years of experience in software engineering

Strong backend development experience with Kotlin and Ktor, Java, or another modern JVM language

Experience designing, delivering, and maintaining production APIs and distributed services

Strong relational database and SQL capability, including data modelling, schema evolution, and query or performance considerations

Experience with asynchronous programming, concurrency, event streaming, or resilient integration patterns

Experience developing and operating cloud-native applications using containers, managed services, identity, networking, observability, and infrastructure-as-code such as Terraform

Evidence of automated testing and responsibility for software quality

Evidence of independently owning substantial backend work and making sound trade-offs between delivery, maintainability, reliability, and performance

Designing stable service interfaces and integration contracts for use by frontend, data, or downstream systems

Experience contributing to design decisions, code reviews, technical documentation, troubleshooting, and the development of other engineers

Evidence of client-facing engineering delivery in demanding or ambiguous environments, including explaining technical trade-offs, responding to changing requirements, and setting realistic expectations Nice to have:

Kafka, Avro, NoSQL stores, event-driven architecture, or high-volume data processing

GCP services, cloud migration, infrastructure portability, and operational-parity validation

Spark, Scala, Python-based data pipelines, or integration with machine-learning systems

API contract testing, schema evolution, service compatibility, or consumer-driven contract approaches

GitLab CI/CD, OpenTelemetry, property-based testing, or behaviour-driven development

Experimentation platforms, rules engines, recommendation systems, or customer decisioning

#J-18808-Ljbffr

Applica Now

Similar Opportunities

View all jobs