Principal Software Engineer (UK Remote)
- Full-time
Company Description
When you join Turnitin, you'll be welcomed into a company that is a recognized innovator in the global education space. For more than 20 years, Turnitin has partnered with educational institutions to promote honesty, consistency, and fairness across all subject areas and assessment types. Over 16,000 academic institutions, publishers, and corporations use our services: Gradescope by Turnitin, iThenticate, Turnitin Feedback Studio, Turnitin Originality, Turnitin Similarity, ExamSoft, and ProctorExam.
Turnitin has offices in Australia, India, Indonesia, Japan, Korea, Mexico, the Netherlands, the Philippines, Ukraine, the United Kingdom, and the United States. Our diverse community of colleagues are all unified by a shared desire to make a difference in education. Come join us, and let's make change together.
Job Description
As a Principal Software Engineer, you will be part of the Integrations team. This team develops and maintains critical integrations with external partners, along with also developing in-house applications and components which can be used by other internal teams.In this role you will be required to be a hands-on developer.
You will be primarily responsible for analysing requirements, brainstorming ideas and software design and carrying out the development work. You will be expected to consider aspects like performance, scalability, cost-effectiveness when developing features. Ability to work across cross-functional teams, partner with Architects, collaborate with Product Managers and other stakeholders. The ability to mentor and coach junior developers is highly desirable.
As Principal, you will also be expected to technical lead on a project from conception to completion, with the support of your team.
Responsibilities:
- Responsibility of multiple Integrations, with external partners
- Support the move to a microservice architecture by designing and writing new services that can gradually replace portions of existing and new integrations
- Support existing features while improving the quality of the current codebase
- Investigate and address production issues
- Work closely with software architects and database/operations engineers on system infrastructure and design
- Foster engineering best practices and technical excellence through mentoring of engineers and working closely together on projects (e.g. pair programming, code review)
- Provide technology analysis, proof of concepts, pilots, evaluations, and recommendations across the various heterogeneous technology stacks
- Accelerate the reduction of technical debt across our production software systems
- Evangelize and implement engineering and testing best practices across the company (code reviews, SCM conventions, tools, etc)
- Innovate, drive, and define high impact technology research and projects
Qualifications
- 8+ years experience writing robust web/SaaS applications in one or more high-level programming languages such as Golang, Node.js, Java, Python, and Perl
- 8+ years experience of designing and developing applications using, preferably, Java
- Extensive experience with web application frameworks and software development best practices (e.g. test-driven development, ORM, object-oriented design, code profiling, debugging)
- Experience with container and clustering technologies like Docker, Kubernetes, Tectonic, etc in a micro-services environment
- Background in cloud technologies and frameworks such as Amazon Web Services
- Demonstrated success working as a technical lead on one or more significant projects
- 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)
- A 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
Additional Information
Our Mission is to ensure the integrity of global education and meaningfully improve learning outcomes.
Our Values underpin everything we do.
- Customer Centric - We realize our mission to ensure integrity and improve learning outcomes by putting educators and learners at the center of everything we do.
- Passion for Learning - We seek out teammates that are constantly learning and growing and build a workplace which enables them to do so.
- Integrity - We believe integrity is the heartbeat of Turnitin. It shapes our products, the way we treat each other, and how we work with our customers and vendors.
- Action & Ownership - We have a bias toward action and empower teammates to make decisions.
- One Team - We strive to break down silos, collaborate effectively, and celebrate each other’s successes.
- Global Mindset - We respect local cultures and embrace diversity. We think globally and act locally to maximize our impact on education.
Seeing Beyond the Job Ad
At Turnitin, we recognize it’s unrealistic for candidates to fulfill 100% of the criteria in a job ad. We encourage you to apply if you meet the majority of the requirements because we know that skills evolve over time. If you’re willing to learn and evolve alongside us, join our team!
Turnitin, LLC is committed to the policy that all persons have equal access to its programs, facilities and employment. We strongly encourage applications from people of color, persons with disabilities, women, and the LGBTQ+ community, regardless of age, gender, religion, marital or veterans status.