Job Title:
Software Engineer
Job Description:
We are seeking a highly skilled and passionate Software Engineer to join our team in developing eLife, a next-generation application for advanced brain signal analysis and neurotechnology. The ideal candidate will have a strong background in C++ and C# development, low-level programming, and high-performance application design across Windows, macOS, and Linux platforms.
This role requires not only programming expertise but also a solid understanding of signal processing techniques (e.g., filtering, FFT, pre-processing) and applied mathematics. You will work closely with our neuroscience and engineering teams to implement efficient algorithms and optimize system performance for real-time applications.
Key Responsibilities:
- Develop and maintain cross-platform desktop applications (Windows, Mac, Linux) using C++ and C#.
- Implement and optimize low-level code for maximum speed and efficiency.
- Design and integrate signal processing algorithms for EEG and electrophysiological data (filtering, FFT, preprocessing, etc.).
- Collaborate with hardware engineers to ensure seamless hardware-software integration.
- Debug, profile, and optimize code for performance and reliability.
- Contribute to architectural decisions for scalable, high-performance systems.
Required Skills & Qualifications:
- Strong programming skills in C++ and C#.
- Experience with low-level programming (memory management, interrupts, hardware interaction, performance optimization).
- Familiarity with cross-platform development (Windows, Mac, Linux).
- Solid background in mathematics, physics, electronics, or computer science.
- Strong understanding of digital signal processing (DSP) concepts (filters, FFT, time-frequency analysis).
- Ability to work independently, take ownership of features, and deliver high-quality code.
Preferred Qualifications:
- Experience with scientific/medical device software.
- Knowledge of Python for prototyping or additional tooling.
- Experience with real-time systems and multithreading.
- Exposure to GPU acceleration or parallel computing.
- Strong problem-solving and analytical skills.