Software Engineer
Backend Software Engineer at nShift in Bucharest who will design and build a new Java 25 / Spring Boot shipment-booking service on AWS to replace a legacy Python system: carrier integrations, SQS event flows, PostgreSQL, load testing, CI/CD and production ownership, using AI tools like Claude daily.
- Compensation
- Not disclosed
- Location
- București, RO
- Work setup
- Hybrid
- Seniority
- Not specified
- Employment
- Contract
- Experience
- 5+ years
- Category
- Software engineering
- Posted
Skills
Must have
- 5+ years professional backend development with strong Java background and recent Java versions (Java 21+)
- Solid experience with Spring Boot and Spring MVC; understanding of virtual threads and JVM concurrency
- Experience calling external HTTP APIs with Spring RestClient (or WebClient/RestTemplate) with resilience via Resilience4j or similar
- Experience with JSON Schema validation (networknt or similar) and API contract design (REST, OpenAPI), versioning and backward compatibility
- Proven experience designing and running microservices and distributed systems (failure modes, consistency, idempotency, backpressure)
- Experience scaling services: horizontal scaling, stateless design, connection pooling, caching
- Hands-on load and stress testing with tools such as Gatling, k6 or JMeter
- Strong testing habits: unit (JUnit, Mockito), integration (Testcontainers), REST API tests (REST Assured, Postman), contract tests and CI regression suites
- Clean code practices: SOLID, design patterns, refactoring, static analysis (e.g. SonarQube)
- Good knowledge of PostgreSQL or another relational database: schema design, indexing, transactions, query tuning
- Hands-on AWS experience including Amazon SQS and CloudWatch, and secure handling of configuration/secrets (Parameter Store or Secrets Manager)
- Experience with OpenSearch (or Elasticsearch) for log search, querying and dashboards
- Comfortable with Maven, Git and GitHub, and CI/CD pipelines (e.g. GitHub Actions) with quality gates
Nice to have
- Python experience or willingness to read and work in Python (legacy service is Python)
- Experience migrating or replacing a legacy system in production (strangler fig, parallel runs, shadow traffic, feature flags)
- Observability beyond logs: OpenTelemetry, distributed tracing (AWS X-Ray), dashboards, SLO-based alerting
- JVM profiling and tuning (Java Flight Recorder, async-profiler, GC tuning)
- Resilience and chaos testing (simulating outages, slow responses, SQS backlogs)
- Security awareness: OAuth2/OIDC, OWASP API Top 10, secure data handling, GDPR basics
- Messaging patterns: outbox pattern, sagas, exactly-once-style processing on at-least-once delivery
- AWS cost awareness in design choices
- Experience building AI-assisted workflows for the team (prompts, review checklists, Claude Code setups)
Full description
About UsnShift is the leading global provider of cloud delivery management solutions (SaaS), we enable the frictionless shipment and return of almost one billion shipments across 190 countries each year. We are headquartered in London and Oslo and have over 460 employees across offices in Sweden, Finland, Norway, Denmark, the United Kingdom, Poland, the Netherlands, Belgium, and Romania.
Our software is used by many of the world leading e-commerce, retail, manufacturing, and 3PL shippers due to us having over 1000 carriers integrated into our platform, nearly 3 times more than our competitors!
If you buy goods online, there is a strong chance that nShift has powered that delivery, so come and join us as we shape the future of shipping, one frictionless journey at a time.
About the role
We are building a new service from the ground up to replace our current Python-based one. It handles the full shipment lifecycle with each carrier: booking shipments, updating, voiding or deleting them. It has to be fast, resilient and correct under real load.
We are looking for a Software Engineer with at least 5 years of experience who wants to shape this service from day one. You will help decide how it is designed, not just implement tickets: architecture, carrier integration patterns, failure handling and the migration path away from the legacy service.
Our stack is modern Java 25 on Spring Boot with virtual threads, running on AWS. We also use AI coding tools, Claude in particular, as part of everyday engineering, and we expect you to use them well and evaluate their output.
What you'll do
- Take an active part in design discussions and architecture decisions for the new booking service.
- Design and build backend services in Java 25 and Spring Boot / Spring MVC running on virtual threads.
- Build carrier integrations with Spring RestClient, with per-carrier resilience (timeouts, retries, circuit breakers, bulkheads, rate limits) using Resilience4j.
- Validate requests and carrier payloads against JSON Schema (networknt) and keep contracts versioned and well documented.
- Design asynchronous, event-driven flows with Amazon SQS, including idempotency, retries and dead-letter handling.
- Model and evolve the data layer in PostgreSQL (or a similar relational database), including migrations and performance tuning.
- Design services that scale horizontally and stay stable under peak load, such as seasonal shipping peaks.
- Plan and run load and stress tests, find bottlenecks and fix them before they reach production.
- Build and maintain an automated test suite: unit, integration, REST API and regression tests that run in CI.