- Company Name
- Noblesoft Technologies
- Job Title
- C++ Developer
- Job Description
-
Job title: C++ Developer
Role Summary: Experienced embedded systems C++ engineer with 8+ years of architecture, design, prototyping, software development, code review, and unit testing for low‑level firmware. Specializes in Prpl OS, embedded Linux, QNX, BSP, bootloader and kernel development using modern C++ (C++11‑C++17) and C, with strong expertise in build processes, multithreading, algorithms, IPC/RPC, and performance profiling.
Expactations: Deliver robust, high‑performance C++ code for embedded platforms; conduct thorough code reviews and unit tests; optimise memory and performance; collaborate effectively with multidisciplinary engineering teams; ensure compliance with industry standards and protocols.
Key Responsibilities:
- Design and implement architecture for Prpl OS and embedded Linux kernel modules, bootloaders, and drivers.
- Write high‑quality C/C++ (C++11‑C++17) code; perform code reviews and unit testing.
- Build, compile, and maintain complex C++ build systems; optimize for target embedded devices.
- Profile and tune memory, CPU, and performance; apply optimisation techniques.
- Implement IPC, RPC, multithreaded algorithms, and messaging paradigms.
- Integrate and validate network protocols (HTTP, TLS, REST, Websockets, JSON, XML, Protobuf, Flatbuffers, RTP, RTSP, HLS) as needed.
- Document designs, interfaces, and test results.
- Work collaboratively with cross‑functional teams and troubleshoot issues.
Required Skills:
- 8+ years of C/C++ embedded software development.
- Expert knowledge of Prpl OS, embedded Linux, QNX, and POSIX APIs.
- Strong experience with BSP, Linux subsystems, bootloaders, and device drivers.
- Proficiency in modern C++ (C++11‑C++17), C, and build tools (Make, CMake, Bazel, Ninja).
- Deep understanding of multithreading, synchronization, and algorithm design.
- Solid experience with IPC, RPC, and client‑server/peer‑to‑peer/publish‑subscribe architectures.
- Experience with performance profiling and memory optimisation tools (e.g., perf, gprof, valgrind).
- Familiarity with IP‑based protocols: HTTP, TLS, REST, Websockets, JSON, XML, Protobuf, Flatbuffers, RTP, RTSP, HLS.
- Strong debugging, code‑review, unit‑testing, and documentation skills.
Required Education & Certifications:
- Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or a related field.
- Relevant embedded systems or Linux certifications (e.g., LCPC, Linux Foundation Certified Engineer) preferred.