Job Description
A Linux Userspace & Networking C/C++ Developer is responsible for building high-performance system-level applications running on Linux environments.
This role mainly focuses on:
- Linux userspace programming
- System-level software development
- Networking systems
- High-performance packet processing
- Multithreading
- Performance optimization
The developer works on:
- Networking stacks
- Packet processing frameworks
- Low-latency applications
- Linux internals
- Memory management
- IPC mechanisms
This role is commonly seen in:
- Telecom
- Networking
- Cybersecurity
- Embedded systems
- Infrastructure software
- High-performance computing
Responsibilities
Linux Userspace Development
- Design and develop C/C++ applications for Linux userspace
- Build scalable and efficient system-level applications
- Maintain and optimize existing codebases
Linux System Programming
Work with Linux internals including:
- Process management
- Memory management
- Signals
- IPC mechanisms
- Thread lifecycle handling
- Synchronization techniques
Networking Development
- Develop networking components across:
- L2 (Data Link Layer)
- L3 (Network Layer)
- L4 (Transport Layer)
- L7 (Application Layer)
- Work on packet processing and low-latency networking systems
High-Performance Networking
- Use frameworks like:
- DPDK
- Build kernel-bypass networking applications
- Optimize throughput and latency
Debugging & Troubleshooting
- Diagnose:
- Memory leaks
- Segmentation faults
- Performance bottlenecks
- System crashes
- Use debugging tools like:
- GDB
- Valgrind
- strace
Performance Optimization
- Optimize CPU and memory usage
- Improve packet processing efficiency
- Tune system-level performance
Required Skills
Programming Skills
- Advanced C
- Advanced C++
- Object-Oriented Programming (OOP)
Linux Skills
- Linux Userspace Programming
- Process Management
- Memory Management
- IPC (Inter-Process Communication)
- Signals
- Multithreading
- Synchronization Primitives
Networking Skills
- TCP/IP
- OSI Layers (L2-L7)
- Packet Processing
- Socket Programming
- Low-Latency Networking
Debugging Skills
- GDB
- Valgrind
- strace
- Memory Leak Analysis
- Crash Debugging
Build & Toolchain Knowledge
- GCC / Clang
- Static & Dynamic Libraries
- Linux Build Systems
- Compilation & Linking Process
Good to Have Skills
- Linux distribution migration
- Kernel-bypass networking
- Performance profiling
- System tuning
- DPDK-based systems