Senior Software Engineer (Systems Programmer) - 21-0190
We are Relativity. A market-leading, global tech company that equips legal and compliance professionals with a powerful platform to organize data, discover the truth, and act on it. The US Department of Justice, 199 of the Am Law 200, and more than 329,000 enabled users 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, authentic self to our team.
We believe that great talent is not bound by geography and that what you do matters more than where you do it. Relativity has assumed a hybrid work strategy, allowing choice and flexibility for employees to work either from home, a physical Relativity office location (once safe to do so), or a combination of the two, within certain logistical boundaries. Submit your application to learn more from our recruiters or contact us for more details.
The Storage Vertical:
The Storage Vertical is a critical portion of Cloud Engineering, providing Relativity with all of its storage needs. It abstracts away infrastructure management and provides operations with mechanisms by which underlying storage infrastructure is built, operated, vended, and consumed. This Software Engineer will play the role of a leader in the Storage Vertical, driving its overall interests in optimizing infrastructure for efficiency, reliability, and the satisfaction of all of Relativity's storage requirements.
The File Asset Storage Team (FAST):
Within the Storage Vertical, the File Asset Storage Team (FAST) owns all unstructured data storage needs for the Relativity application. The FAST team manages the internal storage servers upon which all of Relativity relies. We develop and maintain the infrastructure and the control plane that facilitates the provisioning and consumption of file storage space. We develop storage-layer abstractions to increase our platform's data management capabilities, reduce costs, and increase business agility. Our key challenge: how do we simplify and optimize the management of petabyte-scale cloud storage to the delight of our customers and developers?
Our team is looking to build out the next generation of infrastructure. Join us as we work to leverage cloud-native technologies to respond to the scale of Relativity’s increasing growth as well as to idiosyncratic nature of massive-scale storage. To achieve this, our team is using a diverse set of technologies, including Linux, Azure, Kubernetes, Docker, Powershell, C#/.NET, and SQL.
As a senior software engineer, you will be responsible for managing and driving the full software lifecycle of the unstructured storage offering. You will identify and implement optimizations, continuously drive enhancements to its operational state, define and promote best practices, design and plan the future of the service and the offering. You will work with Staff and Principal Engineers to continually align the service with the storage platform's vision. You will work on our storage abstraction layer, data plane, as well as the control plane that manages these in order to deliver petabyte-scale, cloud-native storage solutions for Relativity.
- Lead development of low-level systems programming as a Senior Engineer (e.g. disk or net IO, operating system, driver, or kernel development)
- Solve complex storage problems and implement their solutions using cloud native patterns and services
- Adopt and exercise best practices in developing and delivering software, including test-driven and trunk-based development, as well as continuous integration and deployment
- Contribute to the product through our development workflow
- Triage customer requests and troubleshoot incidents when on-call
- Continuously improve the operational state of the software, striving for observability, reliability, and availability
- Effectively communicate with team members and stakeholders
- Identify opportunities for improvement across the stack and promote their solutions
- Align the offerings with platform expectations and contracts
- Document current and future service architecture via well-written design narratives and architectural decision records
- Maintain a high bar for code and architectural quality
- Experience (at least five years) in software development
- Experience with low-level systems programming (e.g. disk or net IO, operating system, driver, or kernel development)
- Experience working in an agile development environment (using Scrum, Kanban, etc)
- Experience developing with C#, and/or .NET Core
- Experience running Linux in a production environment
- Experience working with large-scale storage infrastructure
- Experience developing and delivering in a continuous deployment environment
- Experience developing and maintaining RESTful web services