Senior Software Engineer, Machine Learning Services

Senior Software Engineer, Machine Learning Services

Full-Time 36000 - 60000 £ / year (est.) No working from home possible
UiPath

At a Glance

  • Tasks: Design and build the core Machine Learning Services platform using Rust and Python.
  • Company: Join UiPath, a leader in automation technology with a vibrant culture.
  • Benefits: Flexible work options, competitive salary, and opportunities for professional growth.
  • Other info: Diverse and inclusive workplace with a commitment to continuous improvement.
  • Why this job: Tackle exciting challenges in AI and distributed systems while making a real impact.
  • Qualifications: 5+ years in engineering large-scale services, strong skills in Rust and Python.

The predicted salary is between 36000 - 60000 £ per year.

The people at UiPath believe in the transformative power of automation to change how the world works. We’re committed to creating category-leading enterprise software that unleashes that power. To make that happen, we need people who are curious, self-propelled, generous, and genuine. People who love being part of a fast-moving, fast-thinking growth company. And people who care—about each other, about UiPath, and about our larger purpose.

Your mission: Build the Engine, Not Just the Car

We’re the Machine Learning Services (MLS) team at UiPath—a small, sharp group of senior engineers building the core platform that powers UiPath's large-scale AI and Document Understanding products. Our world is one of distributed systems, high-throughput model serving, and complex asynchronous training workflows. We’re looking for a systems-level engineer who wants to work on the gnarly, foundational problems of a production ML platform. You’ll support a system that handles a massive volume of inference requests and orchestrates unattended model training across a diverse landscape of model architectures. This isn’t just about gluing APIs together; it’s about building the infrastructure that makes it all possible. Our core platform is written in Rust for performance, correctness, and fearless concurrency. ML models and services are primarily in Python. If you’re intrigued by the challenges of the software/hardware interface, OS-level optimization, and building robust, multi-tenant distributed systems, you’ll fit right in.

What you’ll do at UiPath:

  • Design, build, and operate the core MLS platform. This includes our Rust-based API gateway, Python ML compute workers, and the distributed job queue that orchestrates it all.
  • Solve hard concurrency, performance, and distributed systems problems to ensure our platform is bulletproof for high-volume production workloads.
  • Work directly with product and ML science teams to understand their needs and build the scalable infrastructure required to bring their models to life—from massive GenAI models to fine-tuned, specialized classifiers.
  • Develop our custom-built, content-addressable storage abstraction layer over cloud object stores (GCS, S3, Azure Blob), complete with its own garbage collection and sharding logic.
  • Enhance our asynchronous job-queueing system, built from the ground up on the storage layer using compare-and-swap primitives for atomicity.
  • Dive deep into the entire stack, from Kubernetes and container orchestration, through gRPC-based service communication, to the performance tuning of ONNX-based inference on GPU-accelerated hardware.
  • Write clean, efficient, and rigorously tested code. We value simplicity, correctness, and peer review.

What you’ll bring to the team:

  • A solid track record (5+ years) of engineering and architecting large-scale, distributed commercial services.
  • Deep proficiency in a systems-level language (Rust, C++, Go). A willingness and curiosity to become an expert in Rust is essential, as it’s the foundation of our core services.
  • Strong Python skills are also critical.
  • Real-world experience with cloud ecosystems (Azure, AWS, or GCP) and containerization (Docker, Kubernetes).
  • A firm grasp of concurrency, multithreading, and asynchronous programming.
  • A pragmatic understanding of computer science fundamentals.
  • An opinion on what makes good code and good architecture, and the ability to articulate it.
  • You’re a builder and a problem-solver at heart.

Nice to Haves (but we can teach you):

  • You’ve already worked with Rust in a production environment.
  • Experience with MLOps, particularly the challenges of managing the lifecycle of models in a multi-tenant, high-availability system.
  • Familiarity with building ML inference services, model serialization (e.g., ONNX), and GPU programming (CUDA).
  • You’ve built or worked on custom storage or job-queueing systems before.

Maybe you don’t tick all the boxes above—but still think you’d be great for the job? Go ahead, apply anyway. Because we know that experience comes in all shapes and sizes—and passion can’t be learned.

Many of our roles allow for flexibility in when and where work gets done. Depending on the needs of the business and the role, the number of hybrid, office-based, and remote workers will vary from team to team. Applications are assessed on a rolling basis and there is no fixed deadline for this requisition. The application window may change depending on the volume of applications received or may close immediately if a qualified candidate is selected.

We value a range of diverse backgrounds, experiences and ideas. We pride ourselves on our diversity and inclusive workplace that provides equal opportunities to all persons regardless of age, race, color, religion, sex, sexual orientation, gender identity, and expression, national origin, disability, neurodiversity, military and/or veteran status, or any other protected classes. Additionally, UiPath provides reasonable accommodations for candidates on request and respects applicants' privacy rights.

Senior Software Engineer, Machine Learning Services employer: UiPath

At UiPath, we pride ourselves on being an exceptional employer, offering a dynamic work culture that fosters innovation and collaboration in the heart of Manchester. Our commitment to employee growth is evident through continuous learning opportunities and a supportive environment where your contributions directly impact our customers' success. Join us to be part of a forward-thinking team that values your expertise and encourages you to stay at the forefront of AI advancements.

UiPath

Contact Details:

UiPath Recruitment Team

StudySmarter Expert Advice🤫

We think this is how you could land Senior Software Engineer, Machine Learning Services

Tip Number 1

Network like a pro! Reach out to current or former employees at UiPath on LinkedIn. A friendly chat can give you insider info and maybe even a referral, which can really boost your chances.

Tip Number 2

Prepare for the technical interview by brushing up on your Rust and Python skills. Work on some real-world projects or contribute to open-source to showcase your expertise. We love seeing practical applications of your skills!

Tip Number 3

Show your passion for automation and machine learning during interviews. Share your thoughts on recent trends or challenges in the field. This not only demonstrates your knowledge but also your genuine interest in the role.

Tip Number 4

Don’t forget to apply through our website! It’s the best way to ensure your application gets seen. Plus, it shows you’re serious about joining the UiPath team and contributing to our mission.

We think you need these skills to ace Senior Software Engineer, Machine Learning Services

Rust
Python
Distributed Systems
Concurrency
Multithreading
Asynchronous Programming
Cloud Ecosystems (Azure, AWS, GCP)

Some tips for your application 🫡

Show Your Passion:When you're writing your application, let your enthusiasm for the role shine through! We want to see that you’re genuinely excited about the opportunity to work with cutting-edge technology and contribute to our mission.

Tailor Your CV:Make sure your CV is tailored to highlight your experience with distributed systems and machine learning. We love seeing how your skills align with what we do, so don’t be shy about showcasing relevant projects or achievements!

Be Clear and Concise:Keep your application clear and to the point. We appreciate well-structured applications that make it easy for us to see your qualifications and fit for the role. Avoid jargon unless it’s relevant to the position!

Apply Through Our Website:Don’t forget to apply through our website! It’s the best way for us to receive your application and ensures you’re considered for the role. Plus, it’s super easy to do—just a few clicks and you’re on your way!

How to prepare for a job interview at UiPath

Know Your Tech Stack

Make sure you’re well-versed in Rust and Python, as these are crucial for the role. Brush up on your knowledge of distributed systems and concurrency concepts, as you'll likely be asked to solve problems related to these areas during the interview.

Showcase Your Problem-Solving Skills

Prepare to discuss real-world challenges you've faced in previous roles, especially those involving large-scale distributed services. Be ready to explain how you approached these problems and the solutions you implemented, as this will demonstrate your practical experience.

Understand the Company Culture

UiPath values curiosity, generosity, and a genuine approach. During the interview, express your passion for automation and how it aligns with their mission. Share examples of how you've contributed to team success and fostered a collaborative environment.

Ask Insightful Questions

Prepare thoughtful questions about the team’s current projects, challenges they face, and their vision for the future. This shows your interest in the role and helps you gauge if the company is the right fit for you.