Purpose of the job:
This position involves overseeing the installation, upgrade, and configuration of software across build and runtime environments while solving complex challenges related to dependency solvers, GUIs, and package management.
As a Lead Software Engineer, you will provide technical leadership and mentor other engineers in the Core Software Team. You will spearhead the development of new systems while improving existing tools, including our in-house package management solutions and the open-source package manager Rez.
The Core Software Team at Digital Domain is responsible for core tools and distributed services for use across the facility including asset, task, and software management; dailies, render submission, analytics, cross-site data transfer, and core Python libraries.
About Digital Domain:
Our DNA is comprised of equal parts innovation, technology, and storytelling. That philosophy has driven the creation of stunning visuals for hundreds of features, commercials, episodic and streaming programs, music videos, and mixed-reality projects. The company has been at the forefront of research, development, and innovation for more than three decades. These initiatives are infused into the fabric of the studio’s diverse services and operations.
We are developing industry-leading character technology and tools. In films such as Avengers: Infinity War & End Game, Spider-Man: No Way Home and She-Hulk. We have created photo-realistic digital actors that have stood alongside real actors. We are looking for software developers to help us further this technology.
Principal Duties and Responsibilities:
- Software Configuration & Deployment: Configure, build, and release software across Linux and Windows platforms, ensuring stability and consistency.
- CI/CD Pipeline Development: Design and maintain scripts for reproducible builds within our Jenkins & GitLab CI/CD environment.
- Troubleshooting & Support: Collaborate with software engineers to diagnose and resolve build and test failures, enhancing overall team productivity.
- Workflow Optimization: Partner with our DevOps and package management teams to streamline and accelerate workflows, driving continuous improvement.
Qualifications:
- Educational Background: Bachelor’s or higher degree in Computer Science, Engineering, or a related field, or a proven combination of education and experience demonstrating professional problem-solving and analytical skills.
- Experience: Minimum of 1-2 years of hands-on experience in release engineering, systems administration, DevOps, or software development.
- Technical Expertise: Proficiency in build tools such as Make, CMake, Meson, SCons, and Setuptools. Experience with distributed build systems and CI tools, including Jenkins, GitLab, and Artifactory.
- Programming Skills: Demonstrated experience in authoring, configuring, and building projects in C++, C, and Python.
- Problem-Solving: Expertise in diagnosing and resolving issues related to software build configurations.
- Package Management: Experience with package management runtimes such as Rez, SPK, Spack. Familiarity with package management and distribution tools such as yum, apt-get, npm and RPM.
- Additioal Skills: Knowledge of VirtualBox, Vagrant, Docker, AWX, and Ansible is a plus.
Work-Life Balance
- This position offers the flexibility of being fully remote. However, for those who prefer an in-office environment, we have locations in Vancouver and Montreal, and can accommodate those preferences.
- At Digital Domain, we prioritize the well-being of our software engineers and believe in maintaining a healthy work-life balance.
- Standard work hours range from 40 to 50 hours per week. While there may be occasional requirements for additional hours during evenings or weekends to perform maintenance outside of production hours, these instances are typically planned during scheduled down-times.