About the job
We are seeking a skilled Native Node.js Developer with a strong background in system-level programming and hardware interfacing. This role focuses on building robust command-line tools, desktop applications, and utilities that leverage Node.js’s capabilities (using serial communication, file system operations, and stream processing) rather than traditional server-side web applications. A solid understanding of software engineering principles, particularly SOLID design principles and efficient data structures, is essential. Experience with embedded systems firmware is a significant plus.
Responsibilities:
- Develop Native Node.js Applications:
- Build and maintain command-line tools and desktop applications (using Electron) that interface with hardware components and local resources.
- Serial Communication & Hardware Interfacing:
- Write code to interact with serial ports and other hardware interfaces for device automation and data acquisition.
- File System & Stream Processing:
- Implement efficient file system operations and manage large data streams for tasks like logging, real-time analytics, or data processing.
- Software Architecture & Engineering:
- Apply SOLID principles and design patterns to create maintainable, scalable code. Develop efficient data structures and algorithms tailored to embedded systems.
- Collaborate with Firmware & Hardware Teams:
- Work closely with engineers in embedded systems and firmware to integrate and optimize software-hardware solutions.
- Desktop Application Development:
- Use Electron to create intuitive desktop interfaces that complement the native utilities and tools.
- Testing & Debugging:
- Write comprehensive unit and integration tests, and participate in code reviews to ensure high-quality, reliable software.
- Documentation & Knowledge Sharing:
- Maintain clear and concise documentation of code and processes to support future development and troubleshooting.
Requirements:
- Strong proficiency in native Node.js development (without reliance on heavy server-side frameworks).
- Extensive experience with serial communication, file system operations (fs), and stream processing.
- Familiarity with Electron for building desktop applications.
- Solid understanding of SOLID principles, data structures, and design patterns.
- Prior experience with embedded systems or firmware integration is a major plus.
- Excellent problem-solving skills and attention to detail.
- Ability to work independently and collaboratively in a dynamic, innovative environment.
Bonus:
- Experience with command-line tool development or automation scripting.
- Familiarity with TypeScript or modern JavaScript (ES6+).
- Contributions to open-source projects in the Node.js or Electron communities.
NB: Only Shortlisted Applicants will be contacted