About the job
Key Responsibilities:
1. Backend Development and Optimization
• Design and implement high-performance backend components, services, and libraries using C/C++/Python.
• Create modular and reusable software libraries with well-documented APIs.
• Enhance memory efficiency, CPU performance, and application responsiveness through advanced debugging and profiling.
• Develop multi-threaded and asynchronous applications leveraging POSIX threads, Boost, or similar libraries.
2. System Design and Architecture
• Architect and construct scalable, distributed backend systems tailored to complex business needs.
• Engage in low-latency systems, implementing efficient networking protocols like TCP, UDP, and custom protocols.
• Contribute to the design of RESTful or binary APIs, ensuring secure and efficient inter-component communication.
3. Embedded and System-Level Programming
• Write and optimize system-level code for Linux environments with a focus on performance and reliability.
• Develop applications for hardware interfaces, including bootloaders, drivers, and kernel.
• Manage memory, inter-process communication (IPC), and shared resources in constrained environments.
4. Performance Tuning and Debugging
• Conduct low-level profiling and performance tuning of applications using tools like perf, VTune, gprof, or Cachegrind.
• Optimize memory management employing custom allocators, object pooling, and stack memory utilization.
• Utilize advanced debugging techniques, such as core dumps, stack traces, and hardware breakpoints.
• Identify and resolve bottlenecks in CPU-bound, memory-bound, or I/O-bound processes.
• Fine-tune compiler settings and devise efficient algorithms for optimal performance.
• Debug intricate issues in production systems using gdb and strace.
5. Networking and Protocol Development
• Develop efficient networking protocols and manage socket programming for server applications.
• Implement and troubleshoot networking layers, including SSL/TLS, WebSocket, and HTTP/2.
• Create custom communication protocols for specific applications, such as real-time streaming or IoT.
• Optimize networking stacks through socket programming, zero-copy mechanisms, and protocol offloading.
• Collaborate on the design of custom communication protocols for real-time or distributed systems.
• Familiarity with Layer2 802.1Q, VLAN, bridging, spanning tree, LLDP, LACP protocols.
• Knowledge of Layer3 Router, Firewall, ACL protocols.
• Understanding of 802.11 wireless protocols.
6. Testing and Quality Assurance
• Write comprehensive unit tests using frameworks like Google Test (gtest) or Catch2.
• Conduct system-level testing to ensure reliability in production environments.
• Implement continuous integration pipelines for automated testing and deployment of C/C++/Python codebases.
