Software Engineer
The company builds an indoor/outdoor navigation platform powered by sensor fusion (IMU, GPS, magnetometer) and magnetic fingerprinting. At the core of our platform is a high-performance C/C++ navigation engine that performs real-time state estimation, sensor calibration, and location processing across device platforms and edge infrastructure.You'll work directly on our core algorithms and low-level runtime engines. This is a high-ownership role on a small engineering team where you'll be close to the metal: optimizing memory footprint, writing low-latency cross-platform C/C++ code, profiling algorithm execution, and tuning real-time sensor processing against ground-truth field data.What you'll do● Develop, maintain, and optimize core navigation algorithms in C and C++ (AHRS, particle filters, DTW, Kalman filters).● Design robust, low-latency cross-platform native interfaces and integrations (e.g., C APIs, JNI, C interop wrappers) to expose core libraries to platform application layers.● Process high-frequency sensor telemetry (accelerometer, gyroscope, magnetometer, barometer, GPS) with strict execution and memory overhead budgets.● Profile CPU, memory, and energy utilization using native tools, systematically diagnosing memory leaks, concurrency bottlenecks, and native crashes.● Integrate C/C++ core logic with cloud services and network backends using lightweight native REST/HTTP networking and serialization libraries.● Implement comprehensive unit and integration test suites (GoogleTest/CTest) to validate numerical stability and algorithmic performance across platforms.● Test on real hardware and simulated telemetry: replay recorded field sessions to analyze drift, convergence, and real-time responsiveness.Our core stack at a glance● Languages: C++17/20 and C throughout the navigation engine.● Build Systems: CMake, CTest, Ninja, GitHub Actions CI/CD.● Testing & Profiling: GoogleTest, Valgrind, AddressSanitizer, LLDB/GDB, perf.● Integration: C API wrappers, JNI bindings, static/shared library distributions.● Networking & Serialization: Lightweight C/C++ HTTP/REST clients and JSON/Protobuf parsing.● Domain: Sensor fusion, magnetic DTW fingerprinting, particle filters, Kalman filtering, multi-floor wayfinding algorithms.Must-Haves1. 4-6 years developing performance-critical software in modern C and C++ (C++17/20).2. Deep understanding of memory management, cache locality, pointer semantics, and resource management (RAII).3. Experience writing concurrent, multi-threaded code and asynchronous data processing pipelines. 4. Proficiency with build tools and package managers (CMake, CTest, Ninja, Conan/vcpkg).5. Hands-on debugging and profiling experience using GDB, LLDB, Valgrind, ASan/TSan, or perf.6. Pragmatic engineering instincts favoring clean, readable, modular native C/C++ architectures over excessive abstraction.7. Solid background in automated testing frameworks (e.g., GoogleTest, Catch2).8. Experience with Git-based workflows and CI/CD pipelines configured for cross-platform native builds.Nice-to-Haves● Conceptual familiarity with sensor fusion and state estimation: Kalman filters, particle filters, complementary filters, AHRS, dead reckoning.● Cross-platform target compilation experience (embedded, iOS/Android native libraries, Linux servers).● SIMD vectorization (NEON, SSE/AVX) and mathematical optimization libraries (Eigen, Ceres).● Geodesy and spatial index algorithms: WGS84, MGRS, spatial hashing, spatial trees.● Practical experience with time-series analysis methods (DTW, COW, etc.).● Practical understanding of the main Statistical analysis tools.● Experience in converting MATLAB code to C.Why it's interesting You will work on a genuinely hard problem: knowing where someone is when GPS can't tell you: touching real sensors, real signal processing, and a product where the difference between good and great is measured in meters and seconds.