Location: Hong Kong, Singapore or Remote (+/- 8 hours from Hong Kong)
We’re looking for experienced developers with both depth and breadth of technical knowledge to build our custom firmware for routers.
You’ll work on a complex stack involving many Linux based technologies. You’ll help build our firmware package consisting of a custom OS plus a collection of linux applications which target many types of router.
About the Team
The team’s goal is to be the easiest to use, fastest, most reliable, and most secure consumer router application.
We’re specifically looking for developers to build user space Linux applications for our custom OS. There will be opportunities to work on the OS kernel itself, but you do not need experience in that area for this role.
The team collectively:
- Builds a custom OS and ensures that it can be installed onto a wide range of OEM hardware.
- Tunes networking parameters and builds tools to dynamically configure the network stack of the router to support our product’s features.
- Builds Linux applications which provide services for user authentication and other core features, a web frontend and more.
- Builds the frontend UI using web technologies such as Vue.js.
- Configures and manage our build systems to securely build and package all components of the router.
- Operates our test pipelines.
- Creates test-cases that test both functional and nonfunctional requirements, such as network speeds, ability to safely upgrade the firmware, detecting network traffic leaks..
- Coordinates releases to customers, typically once every two weeks.
- Is accountable for quality, velocity, and security.
As a developer on the team described above, you will:
- Write high quality, well architected, modular code which is easy to read and maintain.
- Ensure your code and applications have excellent automated test coverage.
- Ensure your applications perform well on lower end CPUs and in low memory environments.
- Ensure the firmware has a clean, simple and robust architecture.
- Ensure your software meets a high security bar – never ship P1/P2 security bugs.
- Ensure your build and test pipelines are fast and stable.
- Provide high quality code reviews for your team and other contributors to the code base.
- Lead by example and provide guidance and mentorship to other developers.
- Provide technical insights for the Product Management team.
- Undertake spikes, prototyping and R&D work to investigate feasibility and de-risk complex projects.
- Maintain an excellent velocity.
- Write clear and comprehensive tech designs and test plans, and ensure work is broken down into bite sized chunks and accurately sized.
- Expert in C or C++ development.
- Experienced with testing frameworks such as CMocka, GTest/Gmock.
- Expert in building user space applications for Linux platforms.
- Experienced writing heavily asynchronous code with low level threading primitives/APIs.
- Versatile developer – you have the ability and desire to ramp up quickly on new code bases, languages and problem spaces.
- Experience working on embedded systems
- Solid understanding of IP networking, including both low-level sockets programming and high-level application layer programming.
- DD-WRT or OpenWRT knowledge
- Experience modifying/writing drivers
- Lua/Moonscript development skills
- Experience in TDD or BDD
- Experienced using GNU tools and cross-compiling
- Experience reverse engineering firmware and installing custom firmware onto 3rd party hardware
- Strong understanding of Linux kernel and network stack
What we offer
- Challenging work in a fun and collaborative environment
- Attractive compensation and time-off benefits
- Spacious open-concept and centrally located offices
- Full-time employment with flexible working hours
- Fully stocked pantry with breakfast foods, fresh fruit and snacks
- Team lunches and company events every quarter
- Multicultural teams represented by 30+ nationalities
Note: Please do not include any salary or compensation information on your resume