At a Glance
- Tasks: Optimise machine learning models for performance in a fast-paced trading environment.
- Company: Join Jane Street, a leader in finance and technology innovation.
- Benefits: Competitive salary, flexible work options, and opportunities for professional growth.
- Other info: Dynamic team culture where curiosity and innovation are valued.
- Why this job: Make a real impact by solving complex problems in machine learning.
- Qualifications: Experience in low-level systems programming and modern ML techniques.
The predicted salary is between 60000 - 80000 £ per year.
We are looking for an engineer with experience in low-level systems programming and optimisation to join our growing ML team. Machine learning is a critical pillar of Jane Street's global business. Our ever-evolving trading environment serves as a unique, rapid-feedback platform for ML experimentation, allowing us to incorporate new ideas with relatively little friction.
Your part here is optimising the performance of our models - both training and inference. We care about efficient large-scale training, low-latency inference in real-time systems and high-throughput inference in research. Part of this is improving straightforward CUDA, but the interesting part needs a whole-systems approach, including storage systems, networking and host- and GPU-level considerations. Zooming in, we also want to ensure our platform makes sense even at the lowest level - is all that throughput actually goodput? Does loading that vector from the L2 cache really take that long?
If you've never thought about a career in finance, you're in good company. Many of us were in the same position before working here. If you have a curious mind and a passion for solving interesting problems, we have a feeling you'll fit right in.
What we're looking for:
- An understanding of modern ML techniques and toolsets.
- The experience and systems knowledge required to debug a training run's performance end to end.
- Low-level GPU knowledge of PTX, SASS, warps, cooperative groups, Tensor Cores and the memory hierarchy.
- Debugging and optimisation experience using tools like CUDA GDB, NSight Systems, NSight Compute-sight-systems and nsight-compute.
- Library knowledge of Triton, CUTLASS, CUB, Thrust, cuDNN and cuBLAS.
- Intuition about the latency and throughput characteristics of CUDA graph launch, tensor core arithmetic, warp-level synchronization and asynchronous memory loads.
- Background in Infiniband, RoCE, GPUDirect, PXN, rail optimisation and NVLink, and how to use these networking technologies to link up GPU clusters.
- An understanding of the collective algorithms supporting distributed GPU training in NCCL or MPI.
- An inventive approach and the willingness to ask hard questions about whether we're taking the right approaches and using the right tools.
- Fluency in English.
Machine Learning Performance Engineer employer: Job Search Place Limited
At Jane Street, we pride ourselves on being an exceptional employer, offering a dynamic work environment that fosters innovation and collaboration. Our culture encourages curiosity and problem-solving, providing ample opportunities for professional growth within the fast-paced world of finance and machine learning. With a focus on cutting-edge technology and a supportive team atmosphere, you'll find that your contributions directly impact our success while enjoying the benefits of a well-rounded work-life balance in a vibrant location.
StudySmarter Expert Advice🤫
We think this is how you could land Machine Learning Performance Engineer
✨Tip Number 1
Network like a pro! Attend industry meetups, webinars, or conferences related to machine learning and systems programming. It's a great way to meet people in the field and get your name out there.
✨Tip Number 2
Show off your skills! Create a portfolio showcasing your projects, especially those involving CUDA and ML optimisation. This gives potential employers a taste of what you can do and sets you apart from the crowd.
✨Tip Number 3
Prepare for interviews by brushing up on your low-level GPU knowledge and debugging techniques. Practice explaining complex concepts in simple terms – it shows you really understand your stuff!
✨Tip Number 4
Don't forget to apply through our website! We love seeing candidates who are genuinely interested in joining our team. Plus, it makes the application process smoother for everyone involved.
We think you need these skills to ace Machine Learning Performance Engineer
Some tips for your application 🫡
Tailor Your CV:Make sure your CV highlights your experience with low-level systems programming and optimisation. We want to see how your skills align with the role, so don’t be shy about showcasing relevant projects or achievements!
Craft a Compelling Cover Letter:Your cover letter is your chance to shine! Use it to explain why you're passionate about machine learning and how your background makes you a great fit for our team. We love hearing about your curiosity and problem-solving mindset.
Showcase Your Technical Skills:When filling out your application, be specific about your technical expertise. Mention your experience with CUDA, debugging tools, and any relevant libraries. We’re keen to know how you’ve tackled performance issues in the past!
Apply Through Our Website:We encourage you to apply directly 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 – just follow the prompts and submit your materials!
How to prepare for a job interview at Job Search Place Limited
✨Know Your Tech Inside Out
Make sure you brush up on your knowledge of modern ML techniques and toolsets. Be ready to discuss your experience with CUDA, PTX, and SASS in detail. The more familiar you are with the specifics, the better you'll be able to demonstrate your expertise.
✨Showcase Your Problem-Solving Skills
Prepare to share examples of how you've tackled performance issues in the past. Think about times when you optimised a model's training or inference and be ready to explain your thought process. This will show that you can think critically and creatively under pressure.
✨Understand the Whole System
Since this role requires a whole-systems approach, make sure you can discuss how different components like storage systems and networking impact performance. Being able to connect the dots between low-level programming and high-level outcomes will impress your interviewers.
✨Ask Insightful Questions
Don’t hesitate to ask questions that show your curiosity and willingness to learn. Inquire about the challenges the team is currently facing or how they measure goodput versus throughput. This not only demonstrates your interest but also your proactive mindset.