Skip to main content
netgear careers
netgear logo

Staff SW Engineer

netgearTaiwanFull Time7mo ago
PythonDockerKubernetesJenkinsCI/CDGitHub ActionsPostgreSQLMySQLMongoDBCassandragRPCWebSocket

Continue with your CV

PDF, Word, or image. Under 10MB.

Job description

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 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.

6. 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.

8. 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).

9. 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.

10. 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 datab
    Staff SW Engineer at netgear (Full Time)