Senior or Principal Machine Learning Software Engineer(REMOTE)

Turnitin, LLC

Company Description

Turnitin is revolutionizing the experience of writing to learn. Turnitins 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, youll 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 Turnitins 33 million active students and teachers.

What youll 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 -- youll 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).
Masters degree in Computer Science or a related field
or a Bachelors 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.

Additional Information

Turnitin is committed to the policy that all persons have equal access to its programs, facilities and employment without regard to race, color, ancestry, national origin, age, gender, sexual orientation, gender identity, age, religion, creed, disability, medical condition, genetic information, marital or veterans status, domestic partner status, AIDS or HIV status, height, weight, or association with members of a protected class.

View this job on