Opportunity brief
Netgear is hiring for the role of Engineer I, Smart Switch Software Development!
Responsibilities of the Candidate:
- Embedded C Development
- Write, debug, and maintain embedded C code for user-space daemons, shared libraries, and Linux kernel modules running on resource-constrained ARM64 and MIPS switch platforms.
- Follow team coding standards and learn to write code that is efficient, defensive, and production-ready.
- Drivers & Platform Bring-Up
- Assist senior engineers in developing and maintaining device drivers, board support package (BSP) code, and the hardware abstraction layer (HAL) that connects the switch ASIC SDK to higher-level firmware components.
- L2/L3 Protocol Work
- Implement well-scoped pieces of L2/L3 networking features under guidance — VLANs, STP/RSTP, LLDP, IGMP snooping, LACP, ACLs.
- Read the relevant IEEE/IETF standards, study existing code, and ship correct, conformant implementations.
- Bug Fixes & Debugging
- Take ownership of bug tickets from the field and internal QA — reproduce on hardware, isolate root cause across kernel, driver, and application layers, and deliver fixes with regression coverage.
- Use GDB, strace, kernel logs, tcpdump, and Wireshark as everyday tools.
- Hardware Lab Work
- Work hands-on with switch hardware in the lab — serial console, traffic generators, packet capture, JTAG when needed.
- Learn to validate firmware behavior on real hardware before merge.
- Code Reviews & Learning
- Participate in code reviews as both author and reviewer.
- Ask good questions, document what you learn, and grow your understanding of the full firmware stack over time.
- AI-Augmented Development
- Use AI coding agents daily to accelerate ramp-up, generate boilerplate, explore unfamiliar code, draft tests, and assist with debugging.
- Develop the judgment to know when to trust AI output and when to verify against datasheets, standards, and hardware behavior
Requirements:
- B.Tech/B.E. or M.Tech/M.E. in Computer Science, Electronics, Electrical, or a related field.
- 0-2 years of professional experience.
- Strong programming fundamentals in C — pointers, memory management, structs, bit manipulation, and the standard library.
- Working knowledge of Linux as a development environment — shell, GCC toolchain, GDB, Make, Git.
- Foundational understanding of computer networks — OSI model, Ethernet, IP, TCP/UDP, ARP, VLANs, subnetting.
- Familiarity with operating system concepts — processes, threads, scheduling, interrupts, memory layout.
- Curiosity about embedded systems and a willingness to read datasheets, standards documents, and existing codebases.
- Comfort using AI coding assistants (e.g., Claude Code, Cursor, GitHub Copilot) in academic projects, internships, or personal work.
- Strong written and verbal communication in English; ability to collaborate effectively with team members across time zones.