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.
Turnitin is seeking a Senior Software Engineer interested in web products and site reliability to develop and improve our award-winning educational software. As an engineer in this position, you will lead projects to refactor and modularize code in order to make the system more scalable as well as implement features that support our product. This position is part of a fun and highly technical team responsible for maintaining critical business workflows in our SaaS application.
Improve the quality of a large web software application
Support the move to a microservice architecture by designing and writing new services that can gradually replace portions of the legacy codebase
Support existing features while improving the quality of the current codebase
Increase the number, quality, and reach of unit and integration tests
Investigate and address production issues
Work closely with software architects and database/operations engineers on system infrastructure and design
Provide technology analysis, proof of concepts, pilots, evaluations, and recommendations across the various heterogeneous technology stacks (LAMP, Java, Ruby on Rails, Go, Node.js, iOS, Android) and programming languages within Turnitin
Implement highly scalable, elegantly simple, secure, maintainable, and modular commercial grade new software for the core Turnitin technology stack
Accelerate the reduction of technical debt across our production software systems
Contribute to efforts to investigate, document, drive, and define goals, non-goals, formulate designs, plans, and implementation strategies for our transition to a microservices architecture
Innovate, drive, and define high impact technology research and projects
6+ years experience writing robust web/SaaS applications with Spring Framework (Spring Boot, Spring Cloud, Spring security, Spring MVC, etc) using Java
6+ 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. JWT, OpenID Connect.
Experience in designing RESTful APIs for single page applications.
Extensive experience with software development best practices (e.g. test-driven development, ORM, object-oriented design, code profiling, debugging)
Experience with maven or gradle build system
Experience with container and clustering technologies like Docker, Kubernetes, Tectonic, etc in a micro-services environment is desirable
Background in cloud technologies and frameworks such as Amazon Web Services, Google Cloud, and OpenStack a plus
Experience using software version control systems, especially Git and GitHub
Success in mentoring and supporting other engineers
Ability to work with complicated legacy code
Experience working with Linux and SQL databases
Ability to communicate effectively with both technical and non-technical colleagues
Experience or interest in working within an Agile model (particularly Scrum)
High level knowledge and experience of industry trends and technology advancements relating to distributed systems, cloud, platform as a service, software as a service
Experience in participating in open source standards and contributing to open source is highly desirable
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.