Lead Software Engineer
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.
* You will be developing brand new features to make clients’ lives easier, and the user interface more intuitive, accessible, and performant.
* You will be working in a blended build environment of both Node.js and MSBuild.
* You will be writing unit tests using Jasmine/Karma and NUnit.
If you love solving problems, building great products, working among strong teams, and want to make a visible impact, this role is for you.
- Work with management to set and communicate team goals and vision aligned to business requirements; ensure the team stays focused and delivers against the goals, adapting to changing business requirements.
- Mentors the entire team on development best practices and standards.
- Estimate software development timelines and be accountable to the timelines by actively managing risks and changing requirements.
- Provide input into system software architecture development by working with Staff and Principal Engineers as required.
- Lead the design of software using abstraction, low coupling and high cohesion, modularization, encapsulation and information hiding, interfaces, and separation of concerns
- Collaborate with the Test Lead emphasizing the use of autonomous frameworks and Continuous Integration.
- Ensure the adoption and application of software development tools (IDEs, test frameworks, static analyzers, etc.) to improve engineering efficiency to maximize resources and reduce expense.
- Identify and reduce technical debt.
- Contribute to an Agile team that solves complex challenges and improves the scalability, security, and performance of existing products.
- Architects and designs performant, scalable, and secure software to a high degree of quality – not simply focusing on meeting functional requirements.
- Improves the software development process by recommending and instituting changes in policies and procedures.
- Provides technical guidance to team members through education and coaching of best practice principles.
- Germinates and drives new ideas and encourages innovative practices among peers.
- Participate in code reviews and quality assurance testing as a shared responsibility with the team.
- Perform on-call duties on a rotating schedule.
- Experience writing unit tests.
- Experience and knowledge of object-oriented design.
- Experience and knowledge of the concepts of relational databases.
- Knowledge of HTML5 and CSS3.
- Knowledge of agile processes and milestones.
- Interest and ability to learn other coding languages as needed.
- Bachelor's degree in Computer Science, Math or other equivalent experience
- Ability to speak and write English fluently and idiomatically.
- Knowledge of JIRA, Bitbucket, and other project and code management software.
- Knowledge or experience in WCAG and accessibility best practices.
- Experience writing build scripts and plugins.
- Knowledge of package managers, bundlers, and task runners.
- Knowledge of CSS extensions (SASS, LESS, etc).
- Experience with one or more JS framework(s) (Aurelia, Angular, React, etc).
- Experience using at least one other general programming language (C#/Java/C++/VB.NET, for example).