Roles and Responsibilities:
- System Services Development: Architect, develop, package (DEB/APT), deploy, and maintain Linux system services and daemons that interface directly with our EEG hardware.
- Device Integration: Design and implement kernel modules, user-space drivers, and interfaces that enable high-throughput, low-latency data acquisition from EEG sensors.
- Real-Time Data Pipelines: Build and optimize high-frequency data capture, buffering, and streaming pipelines to support real-time signal processing.
- Tooling & Automation: Develop developer tools, test harnesses, and CI/CD pipelines tailored for embedded Linux devices.
- System Architecture: Collaborate with firmware, signal-processing, and frontend teams to define scalable architectures that meet stringent performance and reliability targets.
- Agile Execution: Participate in sprint planning, code reviews, pair programming, and retrospectives, continuously improving our agile processes.
Requirements:
- Hands-On Linux Expertise: Deep understanding of Linux OS internals (kernel subsystems, module programming, system services, packaging DEB-based applications).
- C++ Proficiency: 3–4 years of professional experience in modern C++ (11/14/17), including STL, concurrency, memory management, and performance tuning.
- Computer Architecture: Strong grasp of CPU architecture, caching, memory hierarchy, and their impact on real-time performance.
- Real-Time Systems: Proven experience building or optimizing hard/soft real-time or near-real-time systems; knowledge of RT patches or real-time scheduling a plus.
- Signal Processing Foundations: Solid understanding of digital signal processing techniques, filter design, sampling theory, and noise reduction.
- Software Fundamentals: Expertise in data structures, algorithms, multithreading, interprocess communication, and design patterns.
- Agile Practices: Familiarity with Scrum/Kanban, user stories, continuous integration, and test-driven development.
Preferred Skills:
- Designs and builds scalable, maintainable systems with a strong focus on reliability and performance.
- Writes clean, modular code and leads code reviews to uphold engineering standards across the team.
- Thinks like a product owner, aligning technical decisions with user impact and business outcomes.
- Mentors peers, collaborates across functions, and communicates complex ideas clearly to any audience.
- Thrives in ambiguity, takes ownership end-to-end, and adapts quickly to shifting startup priorities.