Back to Jobs

Senior Linux Software Engineer

Netgear Taipei, Taiwan
Posted 4 months, 2 weeks ago
Deadline: Not specified
Full Time Senior Software Engineering

This is a hybrid role, expected to be onsite 3 days a week in our Taiwan office.

Requirements

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.

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

Company Size
201-500 employees
Employment Type
Full Time
Work Mode
On-site (Taipei, Taiwan)
Apply Externally
Notice: You are about to leave RemoteWok and apply on an external site.
The application process will continue on the employer's website.
View Company Profile

Location

Taipei, Taiwan