Position: Backend Software Engineer in ML Team
Company: Turnitin
Category: Java
Experience required: 2y
English level: upper

Job Description
Machine Learning is integral to the continued success of our company. We are significantly increasing our ML team over the next year in order to execute on an exciting and ambitious product roadmap. You will join a team of curious, helpful, and independent scientists and engineers, unified by a commitment to deliver cutting-edge, well-engineered ML systems.
We are in a unique position to deliver powerful,  cutting edge Machine Learning to hundreds of thousands of instructors teaching millions of students around the world. Over 1B papers have been submitted to the Turnitin platform, and over 100M answers have been graded on Gradescope by Turnitin. Currently, ML powers in depth understanding of student writing, investigates authorship of student writing, groups handwritten student answers by content, and plays a crucial role in many back-end processes.
Machine Learning Engineers focus on building resilient and scalable ML infrastructure including data ingestion and model training pipelines.  Additionally, ML Engineers train, deploy and update production ML models.
We expect all Machine Learning Engineers to be strong software engineers with a passion for machine learning methods and applications. You will focus on building resilient and scalable ML infrastructure.  Additionally, you will help build turn-key model training pipelines and bring trained models to production, with some fluency in dataset construction and model training.

Day-to-day, your responsibilities are to:
Write and review clean, efficient, and modular code, with automated tests and appropriate documentation.
Work in collaboration with other teams to launch new and improve existing services.
Use efficient SQL queries and scripting languages, when needed.
Given trained model, deliver prediction-serving system with required scale, uptime, and monitoring.
Stay up to date with technology, make good technological choices, and be able to explain them to the organization.
 
Required Qualifications:
Experience with the below responsibilities.
Strong software engineering fundamentals (We use Python and Java/Kotlin, Unix-based systems, git, and Github for collaboration and review).
Essential dev-ops skills (we use on-prem hardware, AWS EC2/Batch/Lambda), SQS, Docker, Kubernetes.
Basic machine learning development skills (we use sklearn, tensorflow, pytorch, jupyter).
At least 3 years of relevant development experience.
Bachelor’s Degree in Computer Science, Statistics, Applied Mathematics, or a related field.
Good written and verbal communication skills (Upper intermediate and Fluent English).

Desired Qualifications:
Experience or interest in education and machine learning methods for education technology.
Interest in product thinking and empathy for the user.
Experience with Lucene / Solr.
Experience with cloud-based workflows.
Previous experience in working with and developing machine learning infrastructure, models and pipelines.
 
We offer:
Professional growth opportunity.
Generous holiday allowance.
Free English classes.
Young and friendly team.
Close-knit family atmosphere.
Flexible schedule.
Comfortable and modern office.