We’re looking for a Staff / Principal-level Embedded Linux Engineer to help build and improve our ExpressVPN Router
We’re looking for people experienced in Embedded Linux Engineering to help us make our ExpressVPN Router even more useful and easy to deploy/manage. ExpressVPN produces a consumer router VPN that our customers can use to protect the whole house, without device limits! We’ve got big plans for the future, including making it even faster and more efficient, adding more security and privacy services, and more. If you’ve got experience developing for and around embedded technologies, whether on a router/switch or other embedded technologies, we’d like to talk to you about joining our team!
What You’ll Do
As a software engineer on our ExpressVPN Router team, you’ll be designing, building, and delivering high-quality privacy and security capabilities to millions of customers worldwide. You’ll work with a qualified and experienced team of engineers, designers, and product managers, collaborating on new features, fixes, and usability enhancements that our customers want, reviewing your peer’s code, and shipping to production often. You’ll also take part in retrospectives, postmortems, and have a chance to collaborate and work with many people across the company.
Please review our general information about engineering at ExpressVPN for more information on what it’s like to be an engineer at ExpressVPN.
You’ll also help the team:
- Build customized firmware that is optimized for hardware.
- Tune networking parameters and build tools to dynamically configure the network stack of the router to support customer features such as VPN, split tunneling and our MediaStreamer.
- Build middleware applications which provide services for user authentication, VPN, WiFi management, routing and firewalling, our web frontend and more.
- Configure and manage our build systems to securely build and package all components of the router.
- Operate our test pipelines.
- Build test-cases that test both functional and nonfunctional requirements, such as
- network speeds for both Ethernet and WiFi both on and off the VPN;
- ability safely upgrade the firmware without bricking routers;
- detecting network traffic leaks outside of the VPN .
- Coordinate releases to customers, typically once every two weeks.
- Ensure we never ship sev1/sev2 regressions, in particular regressions which lead to users bricking their routers.
- Meet a high security bar – never ship P1/P2 security bugs.
To succeed in this role, we’d love for you to have experience in some or all of the following:
- Very experienced building and debugging C/C++ applications in an Embedded Linux ARM environment.
- Solid knowledge of Linux IP network stack including routing, firewalls and bottlenecks.
- Good experience with cross-compiling code, compiler toolchains and common tools in the GNU toolchain.
- Good experience profiling and optimising code and systems for armv8 AArch64 architecture.
- Experience modifying/writing kernel drivers e.g. Wi-Fi.
- Bootloaders, Linux booting and systems administration experience.
- Excellent writing test plans and writing automated tests.
- Passion for writing secure, efficient, well-architected, readable and maintainable code
- Great verbal and written communication skills
- Strong sense of ownership, great problem solver, hunger for learning and positive disposition.
- Experience packaging for embedded Linux systems.
- DD-WRT or OpenWRT knowledge.
- Good understanding of the threat modelling process and how to develop code without security vulnerabilities.
- Experience with Test Driven Development (TDD)
Sounds interesting. What’s next?
Let’s talk. Tell us what you’re looking for in your dream job, then let’s see what role would be a great fit for you.
Thanks for your time, we look forward to hearing from you!
Please upload your resume as a PDF and do not include compensation information.