Lead Software Engineer - Processing
We are Relativity. A market-leading, global tech company that equips legal professionals with a powerful platform to organize data, discover the truth, and act on it. The U.S. Department of Justice, 198 of top 200 U.S. law firms, and more than 70 Fortune 100 companies are among our customers who trust Relativity during litigation, internal investigations, and compliance projects.
Our SaaS product, RelativityOne, has become the fastest-growing product in the company's history and we have consistently been named a great workplace. As we grow, we continue to seek individuals that will bring their whole self to our team atmosphere.
Join us in the transformation of the legal industry and play a pivotal role in shaping the future of the practice of law and beyond.
The Lead Software Engineer develops software and leads a team to apply software engineering best practices to deliver high quality, maintainable, reusable, reliable, performant, and scalable software.
You will serve as a technical liaison between your team and other internal and external development teams to identify and resolve dependencies, to identify, improve, and apply software engineering best practices and processes, and to identify and mitigate risks to the on-time delivery of software.
The Processing Team:
Relativity's "Processing" product is the fastest way to feed terabytes of complex and abstract data into the Relativity's Review platform. As part of the processing team, you will be dealing with the unique challenge of processing an incredibly diverse set of documents, a tremendous amount of data and do very complicated data extraction at blazing speeds. If an opportunity to deal with big-data, to solve complex scalability challenges, and to learn a distinct set of technologies on a secure SaaS platform gives you goosebumps, then this is the right team for you. Quality obsession and customer satisfaction are in our DNA, and we strive to exceed customer's and coworker's expectations. We are looking to add new members to our teams.
Our tech stack includes a processing engine written in C#.NET, leveraging numerous document processing applications, and MSSQL as its database.
- Lead a software agile team, managing their scrum boards and projects while mentoring new team members.
- Lead the design of software using abstraction, low coupling, high cohesion, modularization, encapsulation, information hiding, interfaces, and separation of concerns
- Specify, analyze, and estimate non-functional software requirements
- Provide input into system software architecture development by working with Staff, Advisory and Principal Engineers
- Lead the implementation of software using the practical application of algorithms, defensive programming, exception handling, fault tolerance, design patterns, and best practices of Object-Oriented Design and Programming such as SOLID
- Enable best practices of Test Driven Design and the use of autonomous frameworks and Continuous Integration
- Bachelor's degree in Computer Science, Math or relevant industry experience
- Experience leading an agile software team, including mentoring and project leadership
- At least seven years of experience in .NET software development using C# and Microsoft SQL Server, or related technologies
- Experience working in highly automated test environments
- Experience designing and developing highly scalable solutions in a cloud platform (Azure, AWS, Google).