Senior, Software Engineer - Sensor Calibration at Torc Robotics
United States
$160.8k - $193k
<p><strong><span data-contrast="auto">About the Company</span></strong><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">At Torc, we have always believed that autonomous vehicle technology will transform how we travel, move freight, and do business.</span></p> <p><span data-contrast="auto">A leader in autonomous driving since 2007, Torc has spent over a decade commercializing our solutions with experienced partners. </span><a href="https://torc.ai/daimler-testing-automated-trucks-public/"><span data-contrast="none"><span data-ccp-charstyle="Hyperlink">Now a part of the Daimler family</span></span></a><span data-contrast="auto">, we are focused solely on developing software for automated trucks to transform how the world moves freight.</span> </p> <p><span data-contrast="auto">Join us and catapult your career with the company that helped pioneer autonomous technology, and the first AV software company with the vision to partner directly with a truck manufacturer.</span><span data-ccp-props="{}"> </span></p> <p><strong><span data-contrast="auto">Meet the Team</span></strong><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">The Sensor Calibration team at Torc plays a vital role in ensuring the accuracy and reliability of perception systems across our autonomous vehicle platform. We develop and maintain software tools and algorithms that calibrate and validate multi-modal sensors including cameras, Lidar, and IMUs—both in simulation and on real vehicles. Our work directly supports the safety, performance, and robustness of autonomous driving capabilities.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></p> <p><strong><span data-contrast="auto">What You’ll Do</span></strong><span data-ccp-props="{}"> </span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Design and implement scalable sensor calibration pipelines in </span><span data-contrast="auto">Python</span><span data-contrast="auto"> and </span><span data-contrast="auto">C++</span><span data-contrast="auto">, leveraging </span><span data-contrast="auto">OpenCV</span><span data-contrast="auto">, </span><span data-contrast="auto">ROS</span><span data-contrast="auto">, and </span><span data-contrast="auto">linear algebra libraries</span><span data-contrast="auto"> for real-time and offline calibration.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Develop tools to perform and automate </span><span data-contrast="auto">camera intrinsic calibration</span><span data-contrast="auto">, </span><span data-contrast="auto">Lidar-to-camera</span><span data-contrast="auto">, and </span><span data-contrast="auto">IMU-to-camera extrinsic calibration</span><span data-contrast="auto">.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Apply mathematical rigor using </span><span data-contrast="auto">Lie groups</span><span data-contrast="auto">, </span><span data-contrast="auto">quaternions</span><span data-contrast="auto">, and </span><span data-contrast="auto">3D transformations</span><span data-contrast="auto"> to support accurate calibration and registration.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Build and maintain simulation tools and data pipelines for sensor modeling and calibration validation.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Work closely with perception, simulation, and platform teams to ensure calibration accuracy across hardware configurations and software versions.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Utilize </span><span data-contrast="auto">Docker</span><span data-contrast="auto">, </span><span data-contrast="auto">Bazel</span><span data-contrast="auto">, and </span><span data-contrast="auto">Git</span><span data-contrast="auto"> to develop reproducible, containerized calibration workflows integrated into CI/CD pipelines.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Debug sensor alignment issues in vehicle logs and simulation using ROS tools, rviz, and custom visualizers.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> </ul> <p><strong><span data-contrast="auto">What You’ll Need to Succeed</span></strong><span data-ccp-props="{}"> </span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="8" data-aria-level="1"><span data-contrast="auto">Bachelor’s Degree in Computer Science, Robotics, Electrical Engineering, or a related field with 6+ years of experience (or a Master’s Degree with 4+ years of experience).</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="8" data-aria-level="1"><span data-contrast="auto">Proficiency in </span><span data-contrast="auto">Python</span><span data-contrast="auto"> and </span><span data-contrast="auto">C++</span><span data-contrast="auto"> for tool development and algorithm implementation.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="8" data-aria-level="1"><span data-contrast="auto">Experience with </span><span data-contrast="auto">OpenCV</span><span data-contrast="auto">, </span><span data-contrast="auto">ROS</span><span data-contrast="auto">, and numerical libraries for computer vision and robotics.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="8" data-aria-level="1"><span data-contrast="auto">Experience working with sensors and sensor data across multiple modalities.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="8" data-aria-level="1"><span data-contrast="auto">Strong understanding of </span><span data-contrast="auto">camera intrinsic/extrinsic models</span><span data-contrast="auto">, </span><span data-contrast="auto">sensor alignment</span><span data-contrast="auto">, and </span><span data-contrast="auto">coordinate frame transformations</span><span data-contrast="auto">.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="8" data-aria-level="1"><span data-contrast="auto">Familiarity with </span><span data-contrast="auto">Lidar</span><span data-contrast="auto">, </span><span data-contrast="auto">IMU</span><span data-contrast="auto">, and </span><span data-contrast="auto">multi-sensor calibration</span><span data-contrast="auto">, especially in robotics or autonomous systems.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="8" data-aria-level="1"><span data-contrast="auto">Solid grasp of </span><span data-contrast="auto">3D geometry</span><span data-contrast="auto">, </span><span data-contrast="auto">non-linear optimization</span><span data-contrast="auto">, and matrix math, including </span><span data-contrast="auto">SE(3)</span><span data-contrast="auto"> and </span><span data-contrast="auto">SO(3)</span><span data-contrast="auto"> representations.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="8" data-aria-level="1"><span data-contrast="auto">Comfort working in Linux development environments, using Git, Docker, and command-line tools.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> </ul> <p><strong><span data-contrast="auto">Bonus Points!</span></strong><span data-ccp-props="{}"> </span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="16" data-aria-level="1"><span data-contrast="auto">Experience with </span><span data-contrast="auto">Rust</span><span data-contrast="auto"> or interest in learning it for high-performance tooling.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="16" data-aria-level="1"><span data-contrast="auto">Familiarity with </span><span data-contrast="auto">non-linear least squares solvers</span><span data-contrast="auto"> (e.g., Ceres, g2o).</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="16" data-aria-level="1"><span data-contrast="auto">Background in </span><span data-contrast="auto">sensor simulation</span><span data-contrast="auto"> for synthetic data generation and validation.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="16" data-aria-level="1"><span data-contrast="auto">Contributions to ROS-based open-source calibration tools.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="16" data-aria-level="1"><span data-contrast="auto">Uses </span><span data-contrast="auto">vim</span><span data-contrast="auto"> as a primary editor (yes, really).</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> <li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{"335552541":1,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="16" data-aria-level="1"><span data-contrast="auto">Willingness to travel on occassion.</span><span data-ccp-props="{"335559738":240,"335559739":240}"> </span></li> </ul> <p><strong><span data-contrast="auto">Work Location: </span></strong><span data-contrast="auto">For this position, we are open to hiring in Ann Arbor, MI (U.S.) office work locations in a hybrid capacity. We are also open to hiring Remote in the United States.</span></p> <p><strong><span data-contrast="auto">Perks of Being a Full-time Torc’r</span></strong><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}"> </span></p> <p><span data-contrast="auto">Torc cares about our team members and we strive to provide benefits and resources to support their health, work/life balance, and future. Our culture is collaborative, energetic, and team focused. Torc offers: </span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}"> </span></p> <ul> <li data-leveltext="" data-font="Symbol" data-listid="20" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">A competitive compensation package that includes a bonus component and stock options</span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}"> </span></li> </ul> <ul> <li data-leveltext="" data-font="Symbol" data-listid="20" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">100% paid medical, dental, and vision premiums for full-time employees </span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}"> </span></li> </ul> <ul> <li data-leveltext="" data-font="Symbol" data-listid="20" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">401K plan with a 6% employer match</span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}"> </span></li> </ul> <ul> <li data-leveltext="" data-font="Symbol" data-listid="20" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">Flexibility in schedule and generous paid vacation (available immediately after start date)</span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}"> </span></li> </ul> <ul> <li data-leveltext="" data-font="Symbol" data-listid="20" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="5" data-aria-level="1"><span data-contrast="auto">Company-wide holiday office closures</span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}"> </span></li> </ul> <ul> <li data-leveltext="" data-font="Symbol" data-listid="20" data-list-defn-props="{"335552541":1,"335559683":0,"335559684":-2,"335559685":720,"335559991":360,"469769226":"Symbol","469769242":[8226],"469777803":"left","469777804":"","469777815":"hybridMultilevel"}" data-aria-posinset="6" data-aria-level="1"><span data-contrast="auto">AD+D and Life Insurance </span><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":0,"335559739":0}"> </span></li> </ul> <p><span data-contrast="auto">At Torc, we’re committed to building a diverse and inclusive workplace. We celebrate the uniqueness of our Torc’rs and do not discriminate based on race, religion, color, national origin, gender (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender identity, gender expression, age, veteran status, or disabilities.</span> <br><span data-contrast="auto">Even if you don’t meet 100% of the qualifications listed for this opportunity, we encourage you to apply.</span><span data-ccp-props="{}"> </span></p> <p><span data-contrast="auto">Our compensation reflects the cost of labor across several geographic markets. Pay is based on a number of factors and may vary depending on job-related knowledge, skills, and experience. Torc's total compensation package will also include our corporate bonus and stock option plan. Dependent on the position offered, sign-on payments, relocation, and other forms of compensation may be provided as part of a total compensation package, in addition to a full range of medical, financial, and/or other benefits.</span><span data-ccp-props="{}"> </span></p> <p><strong><span data-contrast="auto">Job ID:</span></strong><span data-ccp-props="{"134233117":false,"134233118":false,"335551550":0,"335551620":0,"335559738":240,"335559739":240}"> 102505</span></p><div class="content-pay-transparency"><div class="pay-input"><div class="description"><span style="text-decoration: underline;"><strong>Hiring Range for Job Opening </strong></span></div><div class="title">US Pay Range</div><div class="pay-range"><span>$160,800</span><span class="divider">—</span><span>$193,000 USD</span></div></div></div>
Apply Now