×
Natesh Narain

Natesh Narain

Senior Software Developer

Kitchener, Ontario, CA

Background


About

About

Software developer specializing in autonomous robotics systems with expertise in system software, firmware development, and digital electronics design. Passionate about building embedded systems and creating innovative solutions for complex technical challenges.

Work Experience

Work Experience

  • Senior Software Developer (Vehicle Platform), OTTO by Rockwell Automation (Clearpath Inc, Post Aquisition)

    Jan, 2021 - Present

    Senior member of the Vehicle Platform Software Team focusing on rapidly improving software capabilities to accommodate an expanding portfolio of vehicles. Led multiple team initiatives to enabling integrating the OTTO software stack on third-party OEM vehicles.

    • Planned, designed and implemented a configurable system for integrating multiple fieldbus technologies (CAN, CANopen, J1939, Modbus, EtherNet/IP) into autonomous control stack

    • Successfully integrated OEM robots from basic drive-by-wire functionality to full stack autonomous control under tight deadlines

    • Built diagnostic components and tools for debugging and postmortem analysis

    • Identified gaps in the OTTO software stack and prioritized necessary changes to support OEM vehicle integrations

    • Developed solutions with minimal guidance to meet expanding vehicle portfolio requirements

    • Applied a broad knowledge of the OTTO software stack to coordianate cross-team efforts and deliver high-quality solutions

  • Software Developer (Vehicle OS), Clearpath Inc (Industrial Robotics Division, OTTO Motors)

    Sep, 2017 - Jan, 20213 years 4 months

    Designed and implemented software architecture spanning multiple parts of Clearpath's software stack including Fleet Manager and individual robot systems. Maintained key systems for logging, diagnostics, configuration, and robot-to-factory interfacing.

    • Developed ROS drivers in C++ and Python for robotic systems

    • Implemented embedded software for ARM processors using FreeRTOS

    • Built embedded ROS (rosserial) integration systems

    • Maintained Fleet Manager REST API, backend web servers (Django), and PostgreSQL databases

    • Designed and implemented PLC gateway system enabling seamless robot-to-factory communication through industrial protocols

    • Built comprehensive diagnostics and ROS bagging pipeline providing advanced system triage and debugging capabilities

    • Developed robot configuration pipeline supporting deployment-specific parameter management and fleet customization

Projects Experience

Projects Experience

  • GameboyCore (Gameboy/Gameboy Color Emulator)

    - Present

    Comprehensive multi-platform Gameboy emulator library with full system emulation, extensive testing, and multiple language bindings

    • Implemented complete Sharp LR35902 CPU emulation with cycle-accurate timing and comprehensive instruction set

    • Built GPU/PPU emulation supporting sprites, backgrounds, scrolling, and full Gameboy Color palette system

    • Developed APU with 4-channel audio synthesis and proper waveform generation

    • Created LibRetro core enabling integration with RetroArch emulation frontend

    • Built Python bindings using PyBind11 for scripting and AI/bot development

    • Implemented WebAssembly port using Emscripten for browser-based emulation

    • Designed modular architecture with callback-based rendering system for platform independence

    • Achieved compatibility with MBC1/MBC3/MBC5 cartridge mappers and link cable emulation

    • Established comprehensive test suite using Google Test with CPU instruction validation

  • nescore (NES Emulator)

    - Present

    Advanced NES emulator library written in Rust with comprehensive system emulation, extensive testing framework, and cross-platform compatibility

    • Implemented complete 6502 CPU emulation with precise instruction timing and comprehensive opcode support

    • Built sophisticated PPU with nametable mirroring, scroll registers (v/t), sprite rendering, and background graphics

    • Developed 5-channel APU system with pulse waves, triangle, noise, and DMC sample playback with audio downsampling

    • Designed modular trait-based architecture using IoAccess and Clockable interfaces for component decoupling

    • Created comprehensive unit testing framework with mock bus system for isolated CPU instruction validation

    • Integrated nestest ROM automation for validation of official and unofficial 6502 opcodes

    • Implemented INES/NES2.0 cartridge format support with memory mapper abstraction

    • Built functional programming approach with builder patterns and data flow emphasis

    • Achieved cross-platform compatibility targeting desktop SDL2, LibRetro cores, and WebAssembly

  • World (Procedural Terrain Engine)

    - Present

    Comprehensive voxel-based procedural world generation system built in Unity with advanced terrain algorithms, biome systems, and infinite chunk management

    • Implemented infinite terrain generation using sophisticated chunk management with graph-based neighbor tracking

    • Developed multi-layered noise-based terrain system combining 2D height maps and 3D density functions for overhangs and caves

    • Created advanced biome generation using Whittaker diagram classification with temperature, moisture, and elevation mapping

    • Built efficient voxel mesh optimization with greedy meshing algorithms for performance in large-scale terrain

    • Designed modular field generator architecture supporting multiple terrain types (islands, continents, mountains)

    • Implemented real-time terrain modification with raycast-based block placement and removal systems

    • Developed multithreaded chunk loading system using ThreadPool for seamless world streaming

    • Created procedural feature generation including beaches, snow caps, vegetation placement, and geological formations

    • Built complementary 2D map prototyping tools using libnoise, SFML, and ImGui for rapid terrain iteration

  • Icarus Flight Controller

    - Present

    Multi-revision custom flight controller designed for drone and robotics applications with comprehensive sensor fusion and wireless control capabilities

    • Designed and built multiple PCB revisions (Rev A through Rev E) with STM32F302/STM32F405 and ESP32-C3 MCUs

    • Implemented sensor fusion algorithms using IMU, magnetometer, and barometer data for state estimation

    • Developed PID control systems for pitch, roll, and yaw control with motor mixing algorithms

    • Created wireless communication system using Bluetooth LE and dedicated gamepad RC stack

    • Built firmware in both C++ and Rust using Embassy async framework for embedded systems

    • Designed modular stackable PCB architecture for expandable robotics platform

  • HCS12 Embedded Robot Controller

    - Present

    Designed, built, and programmed a functional embedded system to control a robot platform from scratch

    • Custom PCB design and schematic capture

    • Board assembly and bring-up procedures

    • Firmware development for robot control

Skills

Skills

  • Programming Languages

    C

    C++

    Rust

    Python

  • Web Development

    HTML

    JavaScript

    NodeJS

    Express

  • Hardware Design

    KiCAD

    Schematic Capture

    PCB Layout

    Digital Logic Circuits

  • Software Tools

    Git

    CMake

    Microsoft Visual Studio

    Eclipse

  • Frameworks & APIs

    ROS

    ROS 2

Education

Education

  • Electronic Systems Engineering, Bachelor of Engineering, Conestoga College

    - Jan, 2017

Interests

Interests

  • Programming

    Side ProjectsOpen SourceSystem Software
  • Electronics

    Embedded SystemsPCB DesignDigital Logic
  • Robotics

    Autonomous SystemsControl Systems