Your Mission As part of our engineering team, you'll be responsible for building and maintaining our backend and ML services. This includes a highly available public API, data-aggregation services and real-time pipelines to support and scale our machine learning models. The stack is written in Python and Rust with a few other programming languages mixed in. All services run in Docker and are orchestrated
by Kubernetes.
We’re looking for someone who loves programming and computers, has an interest or experience in machine learning infrastructure and can learn quickly and work on multiple problems at the same time. In a principal position, you also need to have experience and be comfortable leading technical designs and enjoy collaborating across teams to make informed trade-offs. Finally, we’re looking for all our engineers to be kind, courteous, motivated, self-starting, honest and responsible.
What you'll do at UiPath- As a Principal Software Engineer you will collaborate with the engineering team and product managers to design, engineer and operate our highly scalable machine learning platform.
- Ensure our software meets customer expectations as well as all requirements of quality, security, scalability, extensibility, testability etc.
- Contribute to our agile engineering practices, mentor other members of the team and help grow the team even further
What you'll bring to the team- 7+ years of software development experience with significant time spent programming in Python.
- Familiarity with Rust and/or a willingness to learn new programming languages.
- Knowledge and appreciation of statically typed languages and using type systems to catch bugs early, rather than at runtime.
- Solid knowledge of basic data structures (list, vector, stack, heap), fundamental algorithms (sort, search, etc.) and associated time/memory asymptotic complexity.
- Solid knowledge of distributed systems, multi-threading and synchronization.
- Bachelor's degree in Computer Science, Engineering or a related technical field (or equivalent industry experience)
- Experience in technical leadership, technical design and delivery.
- Strong communication skills, able to coordinate across products and technical teams.
- Experience or interest in technical mentorship of more junior engineers.
- Experience with high-availability, compute intensive distributed applications
- Experience with “Infrastructure as a Service” (e.g. Azure, Google Cloud, AWS).
- Experience with containers and orchestration (e.g. Kubernetes).
- Experience with distributed data storage (e.g. CockroachDB, ElasticSearch) and SQL.
- Solid knowledge of GNU/Linux
#LI-RU1
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. To review these and other legal disclosures, visit our privacy policy.