Senior Front End Engineer
- Remote, REMOTE, us
- Employees can work remotely
Turnitin is a global SaaS company dedicated to ensuring the integrity of education and research and supporting the development of original thinking skills. As the academic and research landscape evolves, Turnitin stays ahead of trends through advancements in technology and deep partnerships with education leaders, institutions, and practitioners. Turnitin’s proprietary content databases — built over 20 years — provide an unparalleled repository of 1+ billion student papers, best-in-class scholarly content from top publishers in every major discipline and in dozens of languages, and 70+ billion current and archived web pages. We promote honesty, consistency, and fairness across all assignment types and subject areas so that educators can help students do their best, original work
Turnitin is looking for an experienced front-end engineer to help us build user-facing applications used by millions of students, teachers, and administrators. This is a high-impact role in which you will:
Collaborate cross-functionally with the Engineering, Product, Quality Assurance, and Support teams
Implement end-to-end solutions for Turnitin’s next generation of academic integrity products
Break down large projects and features into independently workable/shippable milestones and stories
Write readable, testable, and maintainable code
Make contributions to both the short- and long-term development of our products and team processes
Be passionate about the software you build, and the way that you build it. We’re a small, high-output, largely self-directed team that prides itself on both the quality of the code we produce and on our commitment to improving our processes along the way.
Be opinionated enough to speak up when you think we could be doing something better than we’re doing it now -- and tactful and empathetic enough to communicate this in a way that brings people along instead of distancing them.
Be curious enough to try new approaches to problems, in code, architecture, and organizational matters. Don’t be afraid to try something that doesn’t work, or doesn’t work as well as you might like - but also know when to quit.
Be self-directed enough to seek out and understand not just the ‘what’ of what we’re building, but also the reason we’re building it - who is it for, how does it help them - and be informed by this knowledge to make your own decisions, large and small.
Be a proactive communicator - both to teammates and our collaborators from other engineering teams, product, customer support, sales, you get the picture. Our work impacts a lot of people, and there are a lot of stakeholders who need to maintain context alongside us as progress / decisions are made.
Be practical enough to strike a balance between doing things ‘perfectly’ and doing things ‘well enough to ship’. That is, you should know what an ideal project or application looks like, and also know when diminishing returns get in the way of bringing a better experience to our users.
Be well-versed in understanding large feature requests and breaking them down into smaller, more manageable chunks of independently shippable work - and helping to organize the team to collaborate on working together or in parallel to get them done.
Be well-versed in best practices in writing efficient, understandable CSS and accessible, standards-compliant HTML.
Understand frontend performance
Familiarity with current frontend build systems (Webpack, Rollup)
Well-versed in writing and running unit- and integration tests
Using Git as part of a collaborative team, including branching, pull request, and code review processes.
Accustomed to iterative development practices - breaking problems down, shipping small pieces rather than long-running features, etc.
Nice to haves
Specific experience working with web visualization of non-HTML documents (pdf.js or canvas-based document viewers)
Specific experience developing add-ons for G-suite or Office applications
Experience working full-stack in one or more server-side technologies, preferably to develop APIs. Our edge service[s] are mostly written in Java/Spring Boot.
Browser-driven end-to-end testing using a tool like Selenium or Capybara-webkit, and/or frameworks that operate on top of them (we currently use Nightwatch).
Working with containers in development and/or deployment contexts
Experience working in distributed / microservices environment
Automation (Jenkins or other CI/CD)
No agency submissions
Turnitin, LLC 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.