Nalanda is a leading Spanish multinational dedicated to bridging the gap between large companies and their suppliers through an innovative digital platform. Our platform streamlines business processes such as document exchange, purchases, invoices, and vital business information. We specialize in coordinating activities between contractors and their suppliers, minimizing costs, time, and risks, while fostering transparent and effective business relationships.
We are a dynamic, forward-thinking company committed to building an inclusive workplace where talent thrives. At Nalanda, we believe that the development of people drives organizational success. Join us as we continue to build a culture of growth, inclusivity, and excellence.
We are also part of Once For All, an international group with a presence in the UK, France, Latin America, and more than 1,000 people working on digital solutions for supply chain management and regulatory compliance.
We're looking for a Senior Full Stack Engineer with a T-shaped profile: deep backend expertise in Java/Spring Boot microservices and solid TypeScript/SDK engineering capability on the frontend side.
This is not a traditional web app frontend role. The "frontend" work here is a published TypeScript SDK — library bundling, npm packaging, and API ergonomics for third-party consumers. If you've built or maintained a JS/TS library and know what dual ESM/CJS output means, you'll feel at home.
You'll own complex features end-to-end across the AIV platform — from event-driven backend services through to the SDK that surfaces document data to consuming applications — and contribute to architectural decisions that span the full system.
Backend — your depth
- Design, build, and maintain backend services and APIs using Java 21 and Spring Boot 3.x (Web, Data JPA, Validation, Actuator).
- Build and maintain Kafka producers and consumers on AWS MSK with IAM auth.
- Own database schema design and migrations in PostgreSQL using Liquibase.
- Deploy and operate containerized services on AWS ECS/Fargate, working with S3, SQS, and IAM in a Terraform-provisioned infrastructure.
- Design clean, versioned, resource-oriented REST APIs with solid error handling and documentation.
- Navigate a microservice topology — per-service schemas, careful migration discipline.
SDK & frontend — your second arm
- Develop and maintain the platform's TypeScript SDK: bundling with Vite, dual ESM/CJS output, type declarations, and semver discipline.
- Own the SDK's public API ergonomics — presigned URL flows, auth token handling, and a clean developer experience for internal and third-party consumers.
- Write and maintain tests with Vitest; manage releases via private npm registry with proper CHANGELOG practices.
- Integrate PDF.js (pdfjs-dist) and client-side instrumentation (Amplitude) as needed.
Architecture & cross-cutting concerns
- Contribute to architectural decisions spanning backend services, event flows, and SDK contracts.
- Define and uphold standards for code quality, testing, observability, and documentation across the platform.
- Improve observability practices: structured logging, metrics, tracing, and alerting on both backend services and SDK integrations.
- Identify and drive refactoring, modernization, and technical debt reduction.
Collaboration & mentoring
- Work closely with Product, AI/ML, and platform engineering teams across Spain, France, and the UK.
- Mentor Junior and Semi Senior engineers through code reviews, design discussions, and direct feedback.
- Communicate trade-offs clearly to technical and non-technical stakeholders alike.
Non-negotiable
- 5+ years of professional backend engineering, with production Java (17+) and Spring Boot 3.x experience at meaningful scale.
- Hands-on Kafka experience — producers, consumers, partitioning, offset management.
- PostgreSQL expertise: query optimization, schema design, and migration tooling (Liquibase or equivalent).
- AWS fundamentals in practice: ECS/Fargate, S3, SQS, IAM — you've deployed and operated services.
- Solid TypeScript and module/bundling knowledge — you understand the difference between ESM and CJS and why it matters for SDK consumers.
- Experience publishing and versioning npm packages (semver, changelogs, private registry).
- Proficiency with Docker, Gradle, Git, and CI/CD workflows.
- English at B2 or above (working language across a multi-country team).
Strong signals of the right level
- You've owned a service end-to-end — design, deployment, monitoring, and incident response.
- You've built or maintained a JS/TS library consumed by other teams or external developers.
- You've made architectural decisions that held up under real production load.
- You've mentored at least one engineer who is now independently effective.
- You're comfortable working from ambiguous requirements and making pragmatic calls without waiting for a perfect spec.
- Python 3.12 experience — several components are FastAPI + boto3 + pydantic, and occasional contribution to these is expected.
- Experience integrating with LLM APIs (AWS Bedrock / Claude) or document intelligence pipelines (Azure Document Intelligence, OCR).
- GitLab CI/CD pipeline authoring.
- Familiarity with SDK ergonomics for third-party consumers: auth flows, presigned URLs, versioned contracts.
- Experience with event-driven architecture patterns beyond basic Kafka usage (DLQs, exactly-once semantics, consumer group design).
Competitive compensation package, with a salary range of €40.000 €65.000 gross per year, depending on experience and fit.
Flexible working time.
️ Teleworking.
️ Intensive working time in summer.
️ Flexible benefits.
A dynamic and inclusive workplace with opportunities for growth and development.
The chance to make a significant impact on our organizational culture and talent strategy.