Hybrid Staff Software Engineer

Posted last month

Apply now

About the role

  • Staff Software Engineer at NETGEAR designing and implementing high-performance backend systems. Leading the development of scalable, distributed systems in a hybrid work environment.

Responsibilities

  • 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.
  • 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.
  • 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.
  • Perform low-level profiling and tuning of applications using tools like perf, VTune, gprof, or Cachegrind.
  • Write robust unit tests using frameworks like Google Test (gtest) or Catch2.
  • Implement secure coding practices to prevent vulnerabilities such as buffer overflows, race conditions, and memory leaks.

Requirements

  • 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: Expert in C/C++/Python.
  • Build Tools: Familiarity with OpenWrt, Yocto, Makefile, CMake, Autotools.
  • 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.
  • 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.
  • 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.
  • Expertise in debugging tools like gdb, Valgrind, and Perf.
  • Ability to optimize data structures and algorithms for high-performance applications.
  • Proficiency in build systems like CMake, Makefile, Autotools, OpenWrt or Yocto.
  • Experience with Git, including advanced workflows like rebasing and submodules.
  • Implement CI/CD pipelines using Jenkins, GitHub Actions, or GitLab CI.
  • Experience with containerization (Docker) and orchestration platforms like Kubernetes.
  • 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.

Benefits

  • Health insurance
  • Flexible working arrangements
  • Professional development opportunities
  • Paid time off

Job title

Staff Software Engineer

Job type

Experience level

Lead

Salary

Not specified

Degree requirement

Bachelor's Degree

Location requirements

Report this job

See something inaccurate? Let us know and we'll update the listing.

Report job