FULL_TIME
5-10
Senior Software Engineer (Unity WebGL)
6/24/2025
Lead architectural decisions and R&D phases of a browser-native 3D platform built on top of Unity WebGL. Collaborate with product teams to translate clinical requirements into performant 3D tools.
Working Hours
40 hours/week
Company Size
201-500 employees
Language
English
Visa Sponsorship
No
About The Company
Remote Star is providing professional BPO services to clients worldwide.
Their peace of mind is our business!
We bring outsourcing to a whole new level by creating a special team exclusively dedicated to each of our clients. This enables them not to bother with all the business procedures and protocols of managing the workforce and allows them to focus on their core business.
With our help entrepreneurs save not only time but also on average 62% of all costs in comparison to having in-house teams.
We constantly search, train, and manage the best talents, to match them with reputable entrepreneurs who shape the future of business.
We believe the best talents from South and East Europe, when put in a strong positive environment with top-notch management, can help innovative start-ups worldwide achieve greatness beyond measure!
About the Role
<div><strong>Location:</strong> Remote<br><strong>Contract Type: </strong>Full time</div><h3><strong>About the Project</strong></h3><div>We are building a next-generation <strong>3D web engine</strong> to support the design and customization of <strong>orthopaedic devices</strong>, transitioning from a Unity-based desktop application to a collaborative, browser-based platform. The goal is to enable real-time 3D visualisation, customisation, and streamlined data workflows for clinical users.</div><p style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); font-weight: 400; line-height: 1.42857; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, ;"><strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Key Responsibilities</strong></p><p style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); font-weight: 400; line-height: 1.42857; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, ;"><br style="box-sizing: inherit;"></p><ul style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px 0px 0px 18px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9); list-style-type: disc; font-family: -apple-system, system-ui, ;"><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Lead architectural decisions and R&D phases of a browser-native 3D platform built on top of Unity WebGL</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Define and implement the web technology stack, including Unity WebGL, WebAssembly modules, and JavaScript interoperability</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Export existing Unity desktop functionality to WebGL, integrating C++ logic using <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Emscripten</strong></li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Develop a web interface that integrates with the Unity canvas (e.g., via <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Vue.js</strong> or a comparable frontend framework)</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Collaborate with product teams to translate clinical requirements into performant 3D tools</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Work with backend engineers on real-time collaboration features, including data streaming and session sync</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Participate in agile team processes, including weekly stand-ups, sprint planning, and stakeholder reviews</li></ul><p style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); font-weight: 400; line-height: 1.42857; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, ;"><br style="box-sizing: inherit;"></p><p style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); font-weight: 400; line-height: 1.42857; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, ;"><strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Technical Requirements</strong></p><p style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); font-weight: 400; line-height: 1.42857; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, ;"><br style="box-sizing: inherit;"></p><ul style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px 0px 0px 18px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9); list-style-type: disc; font-family: -apple-system, system-ui, ;"><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Proven experience with <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Unity WebGL builds</strong> and plugin integration workflows</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Hands-on experience compiling and integrating <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">C++ or Rust libraries into WebAssembly</strong> using <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Emscripten</strong></li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Proficiency in <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">JavaScript</strong>, <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">TypeScript</strong>, and modern frontend tools such as <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Vite</strong>, <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Webpack</strong>, or <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Rollup</strong></li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Strong understanding of <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">WebGL</strong> and browser-based 3D rendering constraints</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Experience working with 3D file formats such as <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">STL</strong>, <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">OBJ</strong>, or <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">3MF</strong></li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Knowledge of <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">performance optimization</strong> and <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">memory management</strong> in browser environments</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Familiarity with Unity’s interaction system and how to extend or interface with it in a WebGL context</li></ul><p style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); font-weight: 400; line-height: 1.42857; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, ;"><br style="box-sizing: inherit;"></p><p style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); font-weight: 400; line-height: 1.42857; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, ;"><strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Nice to Have</strong></p><p style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); font-weight: 400; line-height: 1.42857; color: rgba(0, 0, 0, 0.9); font-family: -apple-system, system-ui, ;"><br style="box-sizing: inherit;"></p><ul style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px 0px 0px 18px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9); list-style-type: disc; font-family: -apple-system, system-ui, ;"><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Experience with <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">Vue.js</strong> or another modern reactive frontend framework</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Background in <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">medical software</strong> or regulated industries (HIPAA, FDA, etc.)</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Exposure to <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">collaborative multi-user environments</strong>, such as CRDT-based or real-time sync architectures</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Familiarity with <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">cloud-based processing workflows</strong> (AWS, Azure)</li><li style="box-sizing: inherit; margin: 0px 0px 0px 16px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); line-height: 1.42857; font-weight: 400; color: rgba(0, 0, 0, 0.9);">Experience with <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">mesh processing</strong> libraries such as <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">libigl</strong>, <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">CGAL</strong>, or <strong style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0); outline: rgba(0, 0, 0, 0.9) none 0px; font-weight: 600;">pmp</strong> in WASM pipelines</li></ul>
Key Skills
Unity WebGLC++EmscriptenJavaScriptTypeScriptWebAssemblyWebGL3D RenderingSTLOBJ3MFPerformance OptimizationMemory ManagementVue.jsCloud ProcessingMesh Processing
Apply Now
Please let RemoteStar know you found this job on InterviewPal. This helps us grow!
Prepare for Your Interview
We scan and aggregate real interview questions reported by candidates across thousands of companies. This role already has a tailored question set waiting for you.
Elevate your application
Generate a resume, cover letter, or prepare with our AI mock interviewer tailored to this job's requirements.