Turnitin is your partner in education with integrity. Turnitin’s originality checking and authorship investigation services ensure academic integrity, promote critical thinking, and help students improve their authentic writing. Turnitin provides instructors with the tools to prevent plagiarism, engage students in the writing process, and provide personalized feedback. Turnitin is 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, Melbourne, Australia, Seoul, Korea and throughout Latin America.
Turnitin is seeking a Senior Software Engineer to join the Viewer application team and build the next generation of Turnitin's integrity and feedback tools used by millions of instructors and students. You will be building single-page web applications, which enable users to interact with Turnitin's award winning similarity detection tools, and create and engage with rich feedback on documents. As a Senior Software Engineer, you will use your technical expertise and leadership to develop products which support students in classrooms worldwide.
Lead back-end Java engineering efforts for the shared Viewer web application used in Turnitin products
Work hand in hand with other engineers along with other members of the scrum team - Product Management, UX, etc.
Produce high quality software that is unit tested, code reviewed, and continuously integrated
Shape and evangelize best practices to improve engineering and team productivity
Foster a culture of collaboration, mentoring and open communication
- 5+ years experience writing robust web/SaaS applications with Spring Framework (Spring Boot, Spring Cloud, Spring security, Spring MVC, Spring Data) using Java
- 5+ years experience in object oriented programming with expert knowledge of distributed systems, microservices, concurrency, RESTful web services, SQL and no-SQL databases, and internet scalability
- Extensive hands-on experience in building cloud ready solutions based on microservices, multi-tenancy architecture using Spring Boot and related Spring technologies.
- Good knowledge of federated security architecture, flows and standards, e.g. OAuth JWT, SAML, OpenID Connect.
- Experience in designing and documenting RESTful APIs
- Extensive experience with software development best practices (e.g. test-driven development, ORM, object-oriented design, code profiling, refactoring, debugging)
- Experience with container and clustering technologies like Docker, Kubernetes, etc in a microservices environment is desirable
- Background in cloud technologies and frameworks such as Amazon Web Services, Google Cloud, and OpenStack a plus
- Front-end development interest and experience a plus