Staff Software Engineer - Cloud Development
- Collaborate with product architects to design, document, and execute on a containerization strategy.
- Evaluate container and orchestration technologies and make a recommendation of technologies and designs based on the product requirements.
- Develop best practices for implementing and usage of container technologies so that they are consistently implemented across the product by all teams.
- Partners with management and the architecture team to set and communicate team goals and vision aligned to business requirements;
- Takes on independent critical projects which may impact the company's short- and long-term goals and strategies.
- Offers coaching to ensure the teams stays focused and delivers against the goals and design, adapting to changing business requirements.
- Specify non-functional software requirements and analyze all requirements to determine design feasibility within time and cost constraints and mentors others to do the same.
- 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 Advisory, Principle Engineers and Architecture team as required.
- Design and lead the design of software using abstraction, low coupling and high cohesion, modularization, encapsulation and information hiding, interfaces, and separation of concerns.
- Implement and lead the implementation of software using the practical application of algorithms, defensive programming and exception handling, fault tolerance, design patterns, and best practices of Object-Oriented Design (OOD) and Object-Oriented Programming (OOP) such as SOLID (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion).
- Test and lead the test of software with traceability back to requirements emphasizing the practice of Test Driven Design and the use of autonomous frameworks and Continuous Integration
- Offer solutions to improve agile software development processes and practices (SCRUM) to advance engineering efficiency to maximize resources and reduce expense.
- Provides project and professional guidance and mentoring to team members.
- Provides solutions to varied and ambiguous issues, utilizing judgment to select methods and techniques for obtaining solutions.
- 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 offer solutions to reduce technical debt
- Experience with cloud technologies including containers, orchestration tools, monitoring, delivery pipeline and other technologies used in a container based environment.
- Experience specifically with Docker, Kubernetes and Azure are ideal.
- Ability to understand and design a macro scale architecture of a software technology or product line.
- Ability to works on critical issues and the most complex projects as needed by the organization.
- Ability to decompose larger problems into software development work as self-contained, minimally inter-dependent tasks for team members to implement.
- Ability to segregate software using abstraction and interfaces.
- Ability to efficiently multi-task and manage multiple concurrent tasks by identifying differing priorities relative to changing business need.
- Ability to consistently identify and deliver technical improvement feedback to team members in a supportive and constructive manner to achieve demonstrable results over time.
- Excellent problem solving.
- Excellent interpersonal and teamwork to facilitate collaborative problem solving amongst team members.
- Excellent verbal and written communication to clearly, succinctly, and completely communicate intent (both technical and non-technical) in interactions with team members and management.
- Excellent time management to ensure time (both his or hers and that of his or her team) is optimally allocated to meet prioritized business need.
- Bachelor's degree in Computer Science, Math or other related subject.
- Knowledge and experience in working with Agile development methodology.
- BA/BS or equivalent in Computer Science or related disciplines
- At least 12+ years designing and coding software for commercial-grade systems
- At least 12+ years writing software that tests software in an automated fashion
About RelativityRelativity has over 160,000 users in 40+ countries from organizations including the U.S. Department of Justice, more than 70 Fortune 100 companies, and all of the Am Law 200. Relativity's cloud solution, RelativityOne, offers all the functionality of Relativity in a secure and comprehensive SaaS product. Our company has also been named one of Chicago's Top Workplaces by the Chicago Tribune for seven consecutive years. If you’re ready to grow with us, we’d love to hear from you. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, or national origin, disability or protected veteran status, or any other legally protected basis, in accordance with applicable law.
How We #ActOnIt
Connect With Us
Not ready to apply? Connect with us for general consideration.
All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, sexual orientation, gender identity, or national origin, disability or protected veteran status, or any other legally protected basis, in accordance with applicable law.