Software Engineer, Networking
Build and improve Tailscale’s client-side networking and connectivity software across clients, routers, exit nodes, and customer integrations. The role requires substantial networking experience, low-level programming proficiency, and expertise in routing, VPNs, NAT traversal, and performance optimization.
About the job
Responsibilities
- Design, build, test, and document core client-side networking software.
- Develop connectivity features for clients, subnet routers, exit nodes, and customer network integrations.
- Apply and extend network protocols with product-specific designs and frameworks.
- Use security-focused architecture and coding practices for resilient networking modules.
- Evaluate and optimize software performance, reliability, and scalability across platforms and hardware.
- Diagnose complex customer network issues and support critical network escalations.
- Collaborate with product management and engineering teams on scalable, maintainable network solutions.
- Engage with the open-source community and contribute to relevant projects.
Requirements
- Significant experience with networking software and diagnosing networking issues.
- Strong knowledge of routing, VPNs, IP address management, and NAT traversal.
- Proficiency in Go or another low-level language such as C, C++, or Rust.
- Understanding of concurrent programming and performance optimization.
- Ability to work independently and collaborate asynchronously.
- Strong written and verbal communication skills.
Nice to have
- Experience with large-scale distributed systems.
- Knowledge of low-level operating-system network stacks.
Compensation
- Base salary range: CAD 218,420–302,840.
- Equity incentive plan, variable commission for quota-based roles, comprehensive benefits, retirement contributions, professional development support, paid time off, home-office support, and parental leave.
Skills
Networking, Routing, Vpns, Ip Address Management, Nat Traversal, Go, C, C++, Rust, Concurrent Programming, Distributed Systems, Network Stacks, Performance Optimization, Open Source
Similar jobs
Backend Engineering jobsDesign and lead secure, scalable wallet infrastructure spanning custody, key management, signing, authorization, and recovery. The role requires deep expertise in wallet or cryptographic security infrastructure, distributed systems architecture, and modern blockchain account models.
Build and scale distributed backend systems powering Perplexity’s realtime voice and multimodal AI experiences. The role requires 4+ years of backend or distributed-systems experience and strong Rust, Python, or Go skills, with opportunities to work across SDKs, infrastructure, models, and agent orchestration.
Develop and improve Ray Core’s C++ distributed-systems backend, focusing on performance, reliability, fault tolerance, and scalability. The role requires at least five years of experience with distributed systems, C/C++, low-level operating systems, algorithms, and system design.
Build foundational infrastructure platforms and operational tooling for global data center operations, including CMDB, DCIM, asset management, automation, and observability systems. Requires 3+ years of production software development experience and strong Python or Go skills.
Build and operate backend and financial infrastructure supporting pricing, payments, billing, subscriptions, entitlements, and invoicing. The role requires 5+ years of software engineering experience with distributed systems, transactional workflows, and highly reliable, auditable platforms.