Lead software architecture design and contribute to strategic technical decision-making
Analyze complex technical problems and propose innovative solutions
Collaborate and communicate with cross-functional teams to design, develop, test, and integrate software components, ensuring smooth end-to-end system functionality
Collaborate with team members and mentors the software engineers for developing infrastructure applications for management and control plane solutions for ASUS network ecosystem devices
Develop high-quality, secure and maintainable code using C/C++ and/or go
Participate in code reviews and continuously improve development skills
Assist with software testing, documentation, and troubleshooting
Improve software performance through maintenance, updates, and upgrades
Design, maintain, and optimize Makefiles for complex, multi-module projects to ensure efficient builds, proper dependency management, and cross-platform compatibility
Work closely with the DevOps team to integrate and optimize CI/CD pipelines, ensuring reliable builds, smooth deployments, and efficient automation
Essential Requirements
Bachelor's degree in Computer Science, Software Engineering, or a related field (or equivalent practical experience)
8+ years of experience in Linux networking system development and integration.
3+ years of experience in software architecture design
Good knowledge of Linux at the system level
Familiar with version control system (Git)
Demonstrable scripting/programming skills for C/C++ and shell. Experience in go a plus
Strong problem-solving and analytical skills
Excellent communication and collaboration skills
Ability to work effectively both independently and as part of a team
Preferred Qualifications
Experience with security practices in software development
A strong foundational understanding of networking concepts, including L2/L3 packets, TCP/UDP/IP, DHCP, and DNS
Familiar with cloud platforms (e.g., AWS, Azure, GCP) and/or experience with the cloud native software development
Experience with message queue services, e.g. MQTT, NATS or Apache Kafka
Experienced in designing and maintaining automated build/test pipelines for reliable software delivery