We have several open positions for remote-based senior software engineers. Our requirements for remote-positions are:
- Working hours: at least 3 hours of daily overlap with GMT+8 Singapore 9am-6pm
- Full-time. No other paid clients.
- As an engineer: you view automated testing as a natural part of your work, and are already in a habit of testing most of your code automatically. We'll expect you to test all of it automatically here.
- Experienced engineers only. That means at least 5 years of professional experience as a software engineer.
- For remote positions we consider individual contributors only. We generally require our people-managers to be at one of our offices.
- Must have prior experience in working remotely.
- Location: you need to be based in a country with reasonable legal protections. That means:
- Its World Bank score for property rights protection must be at least 50. Unfortunately that excludes most of Africa.
- It doesn't widely censor the Internet. Russia, China, Belarus, and most of the Middle East are not eligible.
I'm an engineer considering joining ExpressVPN. What's in it for me?
In addition to the reasons for joining in ExpressVPN in general, here are some key reasons for Engineers in particular:
- The people. We like to think that you'll find them open and friendly, skilled and motivated, and unified by our mission to protect the privacy and security of millions of customers world-wide. We're remote-friendly. We have a mix of office-positions and remote-positions, and all teams are used to working with remote-based colleagues.
- Impact. Deliver with both high pace and great quality. You don't need to convince people here to invest in good engineering practices.
- Skill growth. We cover a broad range of engineering specialties: many aspects of high-scale cloud applications, 7 client-side operating systems, firmware, bare-metal servers for which we compile the OS (see TrustedServer), our own open-source VPN protocol Lightway, etc. No matter what your background, you're going to find someone from whom you can learn here. That makes for interesting lunch conversations.
- Career growth. We're lucky to be a leading company in a fast-growing industry. We're expanding the business and hiring many people, which brings many opportunities for you to evolve your role. You can rotate through teams and gain exposure to a broad range of challenges, or go into people-management. We value the individual contributor and people-management tracks equally.
Responsibilities for Senior Engineers - Windows
We’re looking for world-class developers to join our team in building our Windows super app. You’ll use the latest technologies and frameworks to build a modern, responsive and highly-performant application providing multiple products in the privacy and security space.
We provide the scaffolding and release vehicles into which multiple product units contribute to creating a super-app of privacy and security services for Windows. We:
- Build the foundations of the app into which other product units then contribute functionality like VPN and DNS services, password management, and anti-malware.
- Define core architecture, including guardrails to enable multiple teams to contribute safely.
- Build core functionality in areas such as authentication, user subscriptions, in-app purchases, local and push notifications, in app messages and more.
- Configure and manage our build systems.
- Operate our test pipelines.
- Pick test frameworks and guide other teams on using them well.
- Have a veto right over contributions by other teams.
- Coordinate releases to customers, typically once every two weeks or more frequently.
- Coordinate technical documentation.
- Provide expertise relating to the Windows platform as a service for other teams.
- Are accountable for:
- Quality: especially performance, app stability, battery-life
- Velocity: ultimately measured by how quickly we can deliver value to customers
- Meeting SLAs for the build and CI systems
- Satisfaction of other engineers with their ability to contribute to our Windows app
As a member of this team you will:
- Write high quality, well architected, modular code which is easy to read and maintain.
- Ensure your code and the application as a whole have excellent automated test coverage.
- Ensure your code follows modern Windows development practices.
- Ensure the app has a clean, simple and robust architecture to enable other teams to easily contribute code.
- Ensure our application functions correctly and looks great on a wide range of Windows OS versions and hardware.
- Ensure our application behaves well in a broad range of environments, such as when installed alongside other security software, or in problematic networks.
- 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.
- Work closely with the Design Team to design and build great UI and a great user experience.
- 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.
- Proven track record working on consumer Windows applications using native frameworks.
- Experienced C# / WPF developer.
- Good knowledge of .NET Core
- Excellent at writing well architected code using design patterns such as MVC, MVVM and MVP.
- Excellent at writing automated test cases, and following TDD practices.
- Experienced writing thread safe code.
- Experienced with agile software development practices such as Scrum or Kanban.
- Experienced at helping other team members be more productive, and to grow.
- Great communication skills, spoken and written.
- Logical mindset and great problem solver.
- Experience writing technical designs and threat models.
- Experienced working with the Windows Filtering Platform (WFP)
- Experienced building extensible applications
- Deep understanding of Windows internals
- Experience with WiX toolkit, RX, CaliburnMicro, or MVVM Light
- Excellent at building testable and accessible UIs.
- Experience in C/C++ development.
- Knowledge of Python / Bash / Powershell
- Solid understanding of IP networking, including both low-level sockets programming and high-level application layer programming.
- Experience with BDD.
- Knowledge of network and software security
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.
The steps are:
- Get in touch using the form below.
- Our engineering hiring-team will look at your profile and make a decision on whether to engage with you. If you write us a cover-letter, we will respond with a personal note regardless of our decision.
- An in-house recruiter will set up a time to speak with you on video and prepare you for our interview process.
- Our interviews are then composed of:
- a screening call with an engineering manager
- usually about 4 interviews with other engineers
- either a homework problem-solving exercise or a live pair-programming exercise.
- Then offer, including meet-and-greets with more colleagues.
- As soon as feasible: reference checks with former managers and maybe other colleagues. Your hiring-manager will perform these calls, and we'll expect you to make the introductions. We realize that we might only be able to speak with your current manager after you've accepted our offer and resigned from your current position.
Thanks for your time, we look forward to hearing from you!