Senior Software Engineer, Immersive and Interactive Media
Role details
Job location
Tech stack
Job description
-
Architect, design, develop, deploy, and maintain Unity-based immersive and interactive applications with attention to detail, quality, performance, reliability, and maintainability.
-
Build rapid prototypes and evolve features into production software in an iterative design and development process.
-
Develop and optimize real-time rendering, animation, UI, and data processing systems; profile and resolve performance bottlenecks with the CPU, GPU, and memory.
-
Integrate software with audio, video, or sensor hardware; occasionally research new hardware and develop software interfaces.
-
Test, debug, deliver, and maintain Windows desktop builds, addressing any functional, deployment, or platform-specific issues.
-
Use version control effectively (Git-based workflows), manage branches/merges, and support release processes.
Media Preparation and Asset Export:
- Prepare media and design files for software development by slicing graphics, converting file formats, and exporting content into usable assets.
Communication & Collaboration:
-
Collaborate and communicate effectively with cross-functional teams, external partners, and stakeholders.
-
Analyze software requirements to determine the feasibility of a design within project timeline and budget, communicate potential risks and negotiate scope to stay within constraints.
-
Document software, tools, and templates for easy use by other developers, collaborators, or partners.
Requirements
- Participate in code review and team collaboration to share and improve skills, knowledge, and software development practices.
Applicants must currently reside in Massachusetts, New Hampshire, or Rhode Island. This is a hybrid position, requiring a minimum of 2 days onsite per week in Boston (with the potential of additional onsite days required during project phases.
What We're Looking For (Competencies)
Technical skills:
-
High proficiency with C#
-
Working knowledge of C++
-
Demonstrated experience developing software with game engines (Unity, Unreal, Godot, etc.)
-
Demonstrated experience delivering immersive projects (projection mapped environments/XR/VR) and building interactive 3D experiences
-
Proficiency with real-time 3D pipelines, shaders, and visual effects
-
Working knowledge of 2D/3D math (vector math, linear algebra, trigonometry, geometry, coordinate systems, etc.)
-
Working knowledge of basic algorithms and data structures
-
Working knowledge of data representations (byte representation of common data types, byte serialization/deserialization, image data representations, etc.)
-
Demonstrated experience with desktop application development on Windows
-
Demonstrated experience with prototyping and understanding of agile or iterative development philosophies.
-
Demonstrated experience with any of the following:
-
Computer graphics
-
Computer vision
-
Machine learning
-
Game development or design
-
2D graphic design
-
3D computer modeling and animation
-
UI and UX design
-
Graphics APIs (OpenGL, Vulkan, DirectX, WebGL, WebGPU etc.)
-
GPU compute APIs (CUDA, OpenCL, etc.)
-
Python, JavaScript
-
Knowledge of the Software Development Life Cycle (SDLC) and software engineering best practices
-
Strong understanding of hardware and technologies for interactive media or immersive experiences (computer components, displays, projectors, Arduino, etc.)
-
Strong understanding of version control tools (Git, BitBucket, GitHub, etc.)
-
Strong understanding of graphic design, video, and 3D content creation tools (Adobe Creative Suite, Autodesk, Blender, etc.)
-
Working knowledge of slicing and exporting graphics
-
Working knowledge of converting, modifying, and exporting media files
Collaboration:
- Demonstrated experience working closely with cross-functional and technical teams to deliver high-quality digital experiences and software.
Communication:
- Strong communication skills for cross-functional collaboration, team coordination, constructive feedback, and technical documentation.
Comfort with Ambiguity:
-
Ability to understand, define, and clarify an ambiguous or uncertain problem so a technical solution can be developed.
-
Excellent judgement and analytical skills to make technical decisions despite ambiguity and uncertainty.
Strategic Problem Solver:
- Ability to identify challenges, develop solutions, and drive continuous improvement in our software engineering practices and technology platforms.
Benefits & conditions
3.33.3 out of 5 stars 1 Science Park, Boston, MA 02114 Hybrid work $90,000 - $102,000 a year