Responsibilities
- Create and deploy high-performance server-side modules, services, and reusable libraries using C, C++, or Python.
- Build modular software components with well-defined interfaces and comprehensive documentation.
- Improve efficiency in memory consumption, processor utilization, and overall system performance via advanced profiling and debugging.
- Develop concurrent and non-blocking applications using threading libraries such as POSIX threads or Boost.
- Design and implement distributed, scalable backend systems to support complex operational needs.
- Work on systems requiring minimal latency, employing efficient network protocols including TCP, UDP, and proprietary solutions.
- Help define RESTful or binary API structures to enable secure and reliable component interaction.
- Write optimized, low-level code for Linux platforms with a focus on speed and stability.
- Develop software that interfaces directly with hardware, including bootloaders, device drivers, and kernel modules.
- Manage memory allocation, inter-process communication, and shared resource access in resource-limited settings.
- Conduct deep system profiling using tools such as perf, VTune, gprof, or Cachegrind to identify inefficiencies.
- Enhance memory handling through custom allocators, object reuse pools, and strategic stack usage.
- Apply advanced debugging methods including analysis of core dumps, stack traces, and hardware-level breakpoints.
- Detect and resolve performance bottlenecks in processes limited by CPU, memory, or I/O throughput.
- Adjust compiler configurations and refine algorithms to maximize execution efficiency.
- Diagnose and fix critical issues in live environments using debugging tools like gdb and strace.
- Design and implement efficient network communication protocols and socket-based server logic.
- Integrate and debug transport layers such as SSL/TLS, WebSocket, and HTTP/2.
- Build custom communication protocols tailored for specific applications like IoT or real-time data streaming.
- Improve network stack performance using techniques like zero-copy data transfer and protocol offloading.
- Collaborate on designing communication protocols for distributed or time-sensitive systems.
- Demonstrate understanding of Layer 2 networking standards including VLAN tagging (802.1Q), bridging, spanning tree, LLDP, and LACP.
- Show knowledge of Layer 3 networking functions such as routing, firewalling, and access control lists (ACLs).
- Possess working knowledge of IEEE 802.11 wireless networking protocols.
- Develop comprehensive unit tests using testing frameworks such as Google Test or Catch2.
Compensation
Competitive salary and benefits package
Work Arrangement
On-site or hybrid work model
Team
Engineering team focused on backend systems and networking software development
Required Qualifications
- Bachelor's or higher degree in Computer Science, Electrical Engineering, or a related field.
- Minimum of 8 years of software development experience in systems programming.
- Strong proficiency in C/C++ and Python with production-level code contributions.
- Extensive experience with Linux system programming and kernel-level development.
- Proven track record in developing multi-threaded, asynchronous, and network-intensive applications.
- Deep understanding of computer architecture, memory management, and performance optimization.
- Hands-on experience with debugging and profiling tools such as gdb, strace, perf, and Valgrind.
- Familiarity with networking protocols across Layers 2 and 3, including VLAN, STP, IP routing, and firewalls.
- Experience with wireless networking standards such as 802.11 is highly desirable.
- Ability to write clean, maintainable code with thorough unit testing and documentation.
Preferred Skills
- Experience with embedded systems and real-time operating environments.
- Knowledge of network hardware offload techniques and high-speed packet processing.
- Familiarity with containerization and orchestration technologies in backend deployments.
- Exposure to IoT platforms or edge computing architectures.
- Contributions to open-source projects or prior work in networking infrastructure.
Available for qualified candidates