Senior Software Engineer
Sinch
- Location
- Madrid, Spain
- Job Type
- full-time
- Salary
- Unknown
- Posted
- July 21, 2025
Job Description
Sinch is pioneering the way the world communicates. More than 150,000 businesses — including Google, Uber, Paypal, Visa, Tinder, and many others — rely on Sinch’s Customer Communications Cloud to power engaging customer experiences through mobile messaging, voice, and email.
Whether you need to verify users or craft omnichannel campaigns, Sinch makes it easy. Our AI-infused Super Network, APIs, and applications ensure you can connect with your customers reliably and securely, at every step of their journey.
At Sinch we “Dream Big”, “Win Together”, “Keep it simple”, and “Make it Happen”. These values are our foundation!
As a Senior Software Engineer - (Java) - Gen AI, you will play a key role in designing and building the next generation of our AI-powered chatbot platform. You will work in a dynamic, collaborative environment to develop scalable distributed systems that power real-time messaging and LLM-based applications. Your contributions will directly impact the efficiency, performance, and safety of AI-driven conversations at scale.
What You’ll Do
- Design, develop, and maintain backend services for AI-driven chatbot orchestration.
- Build high-performance, scalable, and distributed systems for real-time messaging and workflow execution.
- Work with LLMs (Large Language Models) to enhance bot interactions, ensuring safety, efficiency, and responsiveness.
- Develop internal tools for monitoring, debugging, and optimizing LLM-based applications at scale.
- Implement and optimize workflow orchestration using frameworks like Temporal.io.
- Ensure observability, reliability, and fault tolerance across all services.
- Collaborate with cross-functional teams including ML engineers, frontend engineers, and product managers.
- Maintain a strong focus on code quality, security, and best practices in software development.
This is a 95% remote role. You must be based in Spain and we will bring you to the office in Madrid for some days every quarter.
Requirements
What We Look For
- Production-level experience in backend development using Java and Typescript
- Deep understanding of distributed systems and experience building high-scale microservices and event-driven architectures.
- Strong background in database design and optimization, particularly with MongoDB, Cassandra, or other distributed databases.
- Experience with observability, logging, and monitoring tools for debugging and performance analysis.
- Familiarity with cloud platforms (AWS, GCP, or Azure) and containerized deployments (Docker, Kubernetes).
- A problem-solving mindset with the ability to debug complex distributed systems.
- Strong communication skills and the ability to work effectively in a collaborative environment.
Nice to Have
- Experience with LLM fine-tuning or AI-driven chatbot development.
- Knowledge of message brokers like Kafka, RabbitMQ,
- Hands-on experience with Temporal.io or similar workflow orchestration frameworks.
Benefits
Sinch is a global company composed of people from different countries and cultures. Our benefits adjust regionally to support employees and help them to thrive in every stage of life. We offer valuable benefits and resources, including health and life insurance, a flexible work environment, retirement savings plans, and more.
Our Hiring Process
In Sinch, we are committed to following a recruitment process that is fair, objective, consistent, and equal opportunity. Our Talent Acquisition team, together with hiring managers and the rest of the interviewing team, persistently works towards identifying the people that best fit each open job, based on Sinch’ s hiring needs and candidates’ career expectations.
We encourage applications from strong candidates with relevant professional backgrounds for this role. Not all applicants will meet all job requirements exactly! Don't let that stop you from considering Sinch for the next step in your career. We are always open to candidates that could bring new insights and perspectives to Sinch!
π― Who is this job for?
This role is ideal for a Senior-level backend engineer with strong Java and Typescript skills and experience in building distributed systems and microservices. Candidates should be familiar with cloud platforms (AWS/GCP/Azure), database optimization (e.g., MongoDB), and tools like Docker, Kubernetes, and observability stacks. Knowledge of LLMs, chatbot development, and workflow orchestration (e.g., Temporal.io) is a big plus.
π¬ Potential Interview Questions
-
What are the key considerations when designing scalable microservices in Java?
Focus on stateless design, database partitioning, asynchronous communication, and proper use of containers and orchestration tools like Kubernetes. -
How would you use Temporal.io in a chatbot orchestration system?
Temporal.io helps manage long-running workflows and retries, making it ideal for orchestrating conversations and integrating external APIs reliably. -
What techniques do you use to optimize performance in distributed systems?
Caching, load balancing, minimizing network calls, using asynchronous processing, and efficient database indexing are common techniques. -
How do you ensure safety and efficiency when integrating LLMs into production applications?
Implement input/output validation, rate limiting, monitoring, and use of guardrails or moderation APIs to control and filter responses. -
Describe how you would monitor and debug issues in a real-time messaging platform.
Use observability tools like Prometheus, Grafana, ELK stack, and distributed tracing with OpenTelemetry to track system health and performance. -
How would you implement fault tolerance in a Java-based distributed application?
Use retries with backoff, circuit breakers (e.g., Resilience4j), service replication, and fallback mechanisms. -
What’s your approach to database design with MongoDB or Cassandra in a high-load system?
Design for read/write patterns, use proper sharding and indexing strategies, and avoid large document sizes or hot partitions. -
How do you containerize a Java application for deployment on Kubernetes?
Use multi-stage Docker builds, include health checks, configure resources, and define Kubernetes manifests with proper probes and autoscaling. -
How do you integrate Kafka into a microservices architecture?
Kafka can be used for decoupling services, enabling asynchronous communication, and persisting events for replay and auditing. -
What are some best practices for secure API development in backend services?
Use HTTPS, authenticate with OAuth2 or JWT, validate inputs, implement rate limiting, and audit logs for all sensitive operations.
π Job Summary
Join Sinch, a global leader in customer communications trusted by brands like Google and Uber, as a Senior Software Engineer (Java) for their Gen AI team. You'll design scalable backend systems and work with LLMs and tools like Temporal.io to power real-time AI-driven chatbots. This is a 95% remote role based in Spain, offering flexibility and quarterly visits to the Madrid office. Tech stack includes Java, Typescript, MongoDB, Kubernetes, and AWS. Be part of an innovative, international team shaping the future of conversational AI—apply now to make a real impact!