Key Responsibilities
- 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.
- 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.
- 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.
- 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.
- 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 communication protocols for specialized use cases, such as real-time streaming or IoT.
- Optimize networking stacks using socket programming, zero-copy mechanisms, and protocol offloading.
- Collaborate on the design of custom communication protocols for real-time or distributed systems.
- Familiar with Layer2 802.1Q, VLAN, bridging, spanning tree, LLDP, LACP protocols.
- Familiar with Layer3 Router, Firewall, ACL protocols.
- Familiar with 802.11 wireless protocols.
- Testing and Quality Assurance
- Write robust unit tests using frameworks like Google Test (gtest) or Catch2.
- Perform system-level testing to ensure reliability in production environments.
- Establish continuous integration pipelines for automated testing and deployment of C/C++/Python codebases.
- Security and Compliance
- Implement secure coding practices to prevent vulnerabilities such as buffer overflows, race conditions, and memory leaks.
- Implement secure transport protocols (SSL/TLS) and encrypt sensitive data at rest and in transit.
- Design fault-tolerant systems with redundancy, checkpointing, and automatic failover mechanisms.
- Perform threat modeling and integrate security measures into the development lifecycle.
- Ensure backend systems are secure from common vulnerabilities (e.g., OWASP Top 10).
- Integration with Hardware and External Systems
- Develop backend services that interface with hardware or IoT devices, handling real-time data streams.
- Manage communication with hardware peripherals via protocols like SPI, I2C, or CAN.
- Continuous Improvement and Innovation
- Stay updated with advancements in C/C++/Python standards and emerging technologies.
- Contribute to open-source projects or internal frameworks.
- Propose innovative solutions to improve development workflows, system performance, or user experience.
Required Qualifications
- Education: Bachelor’s or Master’s degree in Computer Science, Software Engineering, or related field.
- Experience: 10+ years of professional experience in Linux Embedded System development.
Languages And Frameworks
- Languages: Expert in C/C++/Python
- Build Tools: Familiarity with OpenWrt, Yocto, Makefile, CMake, Autotools.
System Programming
- Strong knowledge of operating systems concepts, including threading, memory management, and file I/O.
- Expertise in Linux system programming (e.g., epoll, inotify).
- Advanced knowledge of file systems, process scheduling, and memory management.
- Understanding of real-time constraints and system interrupts.
Networking And Protocols
- Experience in socket programming and protocols like TCP/IP, UDP, HTTP/2, gRPC, MQTT, or WebSocket.
- Familiarity with DNS, load balancers, and network security protocols (SSL/TLS).
- Familiarity with network monitoring tools like Wireshark and Tcpdump.
Database Management
- Proficiency in relational databases (e.g., MySQL, PostgreSQL) and experience with NoSQL databases like MongoDB or Cassandra.
- Strong skills in designing efficient database schemas and writing optimized queries.
Performance Optimization
- Expertise in debugging tools like gdb, Valgrind, and Perf.
- Ability to optimize data structures and algorithms for high-performance applications.
Build Systems And Version Control
- Proficiency in build systems like CMake, Makefile, Autotools, OpenWrt or Yocto.
- Experience with Git, including advanced workflows like rebasing and submodules.
DevOps And CI/CD
- Implement CI/CD pipelines using Jenkins, GitHub Actions, or GitLab CI.
- Experience with containerization (Docker) and orchestration platforms like Kubernetes.
Soft Skills And Mindset
- Strong communication skills to articulate technical concepts clearly.
- Excellent problem-solving and debugging abilities.
- Ability to work independently and as part of a distributed team.
- Proactive in identifying issues and proposing solutions.
Company Statement/Values
At NETGEAR, we are on a mission to unleash the full potential of connectivity with intelligent solutions that delight and protect. We turn ideas into innovative networking products that connect people, power businesses, and advance the way we live.
We're a performance-driven, talented and connected team that's committed to delivering world-class products for our customers. As a company, we value our employees as the most essential building blocks of our success. And as teammates, we commit to taking our work to the
Next Gear by living our values: we
Dare to Transform the future,
Connect and Delight our customers,
Communicate Courageously with each other and collaborate to
Win It Together. You’ll find our values woven through our processes, present in our decisions, and celebrated throughout our culture.
We strive to attract top talent and create a great workplace where people feel engaged, inspired, challenged, proud and respected. If you are creative, forward-thinking, passionate about technology and are looking for a rewarding career to make an impact, then you've got what it takes to succeed at NETGEAR. Join our network and help us shape the future of connectivity.
NETGEAR hires based on merit. All qualified applicants will receive equal consideration for employment. All your information will be kept confidential according to EEO guidelines.