Product Developer (企業應用軟體開發)
Description
Synology's product developers design cutting-edge products used by millions of users worldwide. Our extensive portfolio, including data storage, networking, and surveillance products, is powered by our own software solutions, giving us a distinct edge in the competitive market. We're actively seeking engineers capable of making a significant impact, bringing fresh and diverse ideas to further strengthen our team.
Our division builds and owns the storage software at the heart of Synology DSM — the operating system trusted by millions of users worldwide. The scope runs from the file protocols users touch every day, through the storage and virtualization layer, to high availability, backup, and observability. We work primarily in C/C++ on Linux, and everything is developed in-house: when a protocol data path is slow, a kernel module misbehaves, or a failover takes too long, we don't file a ticket with a vendor — we open the code and fix it ourselves. New team members are paired with a senior engineer and go through structured training during their first months.
The division's work spans several domains:
- File services and identity — SMB and other file-protocol stacks that power access to user data, along with DSM components for shared folders, permission management, and identity (e.g., Active Directory, Entra ID).
- Hybrid cloud storage — tiering and gateway technology that makes on-premises NAS and the cloud work as one.
- Storage virtualization — iSCSI SAN and virtual machine management.
- High availability — from failover clustering to active-active architectures.
- Data protection and observability — Hyper Backup, snapshot-based replication built on Btrfs, and the tooling that keeps deployed systems measurable and debuggable.
You'll go deep in one of these areas — and whichever it is, the work is systems software all the way down.
You will:
- Design and build high-performance systems software for DSM in C/C++ on Linux.
- Profile and optimize hot paths, from userspace services down to kernel internals.
- Own features end to end: design, build, test, ship, and support them in the field.
- Investigate and resolve real-world performance and reliability issues from systems running in production.
We're targeting candidates with
Minimum qualifications:
- Bachelor's degree or equivalent practical experience.
- Solid programming fundamentals in one or more programming languages.
- Understanding of Linux operating system fundamentals such as processes, memory, file systems, and networking.
- Strong analytical, problem-solving, and communication skills.
-New graduates are welcome to apply.
Preferred qualifications:
- Master's degree or PhD in Computer Science, or a related technical field.
- Proficiency in C/C++, particularly in systems programming.
- Proficiency in AI-assisted development, using AI coding tools effectively as part of your workflow.
- Developing software systems throughout the entire lifecycle through concept, design, build, release, and software updates.