Miro is a visual workspace for innovation that enables distributed teams to build the next big thing. They are looking for a Machine Learning Research Engineer to drive architectural decisions for their Machine Learning organization, focusing on building models that understand spatial relationships and visual diagrams.
Responsibilities:
- Design, train, and ship production-grade ML models—including deep learning, NLP, and computer vision systems—that solve complex business problems and power core product features
- Conduct deep exploratory research on massive datasets to uncover novel patterns in user behavior and content creation, translating raw data insights into new predictive modeling opportunities
- Apply advanced fine-tuning strategies (e.g., PEFT, LoRA) to adapt state-of-the-art foundation models to specific domain tasks, rigorously experimenting to maximize performance
- Architect scalable ML pipelines for data processing, feature engineering, training, and evaluation, ensuring high data quality and system reliability
- Optimize model performance for latency, throughput, and resource utilization, balancing model complexity with production constraints (e.g., overfitting vs. underfitting, compute efficiency)
- Collaborate cross-functionally with data engineers, product managers, and software engineers to translate business requirements into technical ML specifications and integrate models into user-facing applications
- Champion MLOps excellence by automating deployment workflows, implementing CI/CD for ML, and establishing robust monitoring for model drift and health
- Stay at the forefront of ML research, evaluating novel algorithms and techniques (e.g., Transformer architectures, quantization) to drive innovation and technical strategy
Requirements:
- Strong foundation in ML theory and statistics, including hypothesis testing, probability distributions, regression, classification, and optimization techniques
- Solid engineering fundamentals. You are comfortable writing production-level Python and have a deep understanding of data structures, algorithms, and distributed system design
- Deep proficiency in Python and the modern ML stack, with hands-on experience using libraries like Pandas, NumPy, Scikit-learn, and deep learning frameworks (PyTorch, TensorFlow)
- Gradient Debugging: Expertise in PyTorch or JAX, including experience with distributed training (e.g., DDP, FSDP) and debugging complex gradient issues
- Applied Research: Ability to read, implement, and improve upon the latest academic papers (NeurIPS, ICML, CVPR). You don't just use libraries; you understand the math underneath them and can reproduce results in peer-reviewed papers
- Track record of end-to-end ML delivery, from exploratory data analysis (EDA) and feature engineering to training, validation, and deploying models in a production environment
- Experience with large-scale systems, capable of designing resilient architectures that handle vast datasets and high-throughput inference requests
- Strong engineering mindset, valuing code quality, testing, modularity, and maintainability just as highly as model accuracy
- Option A: Bachelor's or Master's degree in Computer Science, Mathematics, Statistics, or related field plus ~3+ years of professional ML engineering experience
- Option B: No formal degree, ~6+ years of industry experience demonstrating equivalent proficiency in building and shipping ML systems