Stay in Touch



Senior or Prinicpal ML Software Engineer






Oakland, CA, US


Company Description

Turnitin is revolutionizing the experience of writing to learn. Turnitin’s formative feedback and originality checking services promote critical thinking, ensure academic integrity and help students improve their writing. Turnitin provides instructors with the tools to engage students in the writing process, provide personalized feedback, and assess student progress over time. Turnitin'sapplications are used by more than 30 million students at 15,000 institutions in 140 countries. Turnitin is headquartered in Oakland, Calif., with international offices in Newcastle, U.K., Utrecht, Netherlands, Seoul, South Korea and Melbourne, Australia.

Job Description

Join our R&D group and help better the lives of students and teachers across the world! Our growing research team
(with backgrounds in statistics, machine learning, NLP, and learning science) explores, invents, and engineers
cutting-edge solutions to natural-language problems in educational technology. As a member of this team, you’ll be
creating and extending the software libraries that power our newest products, including automated essay evaluation
and formative feedback tools for student writing, as well as authorship analysis tools to support academic integrity
investigations. The software you write will directly impact Turnitin’s 33 million active students and teachers.

What you’ll get from us:
● A smart, fun, and casual environment where you can learn from and teach others.
● Flexibility in technology and development practices.
● An interesting stack -- we use scientific Python, Docker, Kubernetes, and AWS (S3, SQS, Lambda, etc).
● An enthusiastic team that uses the latest software development methods - we continuously test and deploy
our code, follow the Agile methodology, get feedback from our users, have strong code reviews, and are
always learning.
● A great mission -- you’ll get to build systems that ensure education is fair for students around the world.
● Freedom to work on a small team focused on making great products, and also to contribute
cross-functionally through the entire development lifecycle to make it happen.


What we expect from you:
● Strong object-oriented and functional programming skills.
● Experience using scientific Python (numpy, scipy, pandas, scikit-learn, etc.) to build fast, reusable python
● Experience building and maintaining scalable, distributed applications in a production environment.
● Experience writing code to analyze and manipulate data.
● Experience translating research insights and prototypes into production-ready code.
● Experience in machine learning, natural language processing, and/or data mining.
● Comfort working on a new product and in an environment where priorities can change quickly.
● Demonstrated ability to collaborate in an agile process with a cross-functional team on both small and large
scale changes.
● Familiarity with distributed source control platforms (we use git and GitHub).
● Master’s degree in Computer Science or a related field
○ or a Bachelor’s degree with significant relevant industry experience
● Flexible and self-directed, with excellent written and verbal communication skills.

Above and beyond:
● Experience or interest in education, authorship analysis, fraud detection, discourse analysis or learning
● Working with Docker in development and production environments.
● Working with cloud services like AWS.
● Experience using Spark with Java, Scala, and/or Python.
● Experience using tensorflow, pytorch, keras, etc.

Apply for the job

Subscribe to our blog.


Blog & Newsletter Signup