Staff SW Engineer
Key Responsibilities:
1. Backend Development and Optimization
• Design and implement high-performance backend components, services, and libraries in C/C++/Python.
• Develop modular and reusable software libraries with clear APIs and documentation.
• Optimize memory usage, CPU cycles, and application performance through advanced debugging and profiling techniques.
• Develop multi-threaded and asynchronous applications using POSIX threads, Boost, or similar libraries.
2. System Design and Architecture
• Architect and build scalable, distributed backend systems to meet complex business requirements.
• Work on low-latency systems, implementing efficient networking protocols such as TCP, UDP, and custom protocols.
• Contribute to the design of RESTful or binary APIs, ensuring secure and seamless communication between components.
3. Embedded and System-Level Programming
• Write and optimize system-level code for Linux environments, focusing on performance and reliability.
• Develop hardware-interfacing applications, including booloader, drivers and kernel.
• Handle memory management, inter-process communication (IPC), and shared resources in constrained environments.
4. Performance Tuning and Debugging
• Perform low-level profiling and tuning of applications using tools like perf, VTune, gprof, or Cachegrind.
• Optimize memory management using custom allocators, object pooling, and stack memory usage.
• Use advanced debugging techniques, such as core dumps, stack traces, and hardware breakpoints.
• Identify and eliminate bottlenecks in CPU-bound, memory-bound, or I/O-bound processes.
• Tune compiler settings and write efficient algorithms to achieve optimal performance.
• Debug complex issues in production systems using gdb, strace.
5. Networking and Protocol Development
• Develop efficient network protocols and manage socket programming for server applications.
• Implement and troubleshoot networking layers, including SSL/TLS, WebSocket, and HTTP/2.
• Develop custom c...