I'm an engineer - 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.
- 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 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.
This specific position - Windows Engineer
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 maintains a clean, simple and robust architecture which enables 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 and participate in code and design reviews for your team and other contributors to the code base.
- Grasp opportunities to gain new experiences and develop as an engineer and an individual.
- 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.
- Contribute to planning, estimating and achieving the team and the business’s objectives.
- Experience of developing on Windows platforms.
- Experience with C# or a similar managed object oriented language.
- Good understanding of data structures and algorithms.
- Familiarity with Test Driven Development.
- Knowledge of the problems caused by concurrency (multi-threaded and asynchronous code) and the solutions to those problems.
- Awareness of agile software development practices such as Scrum or Kanban.
- Great communication skills, spoken and written.
- Logical mindset and great problem solver.
- Knowledge of .NET / .NET Core
- Experience of developing software in a commercial environment
- Experience with WiX toolkit, RX, CaliburnMicro, or MVVM Light
- Excellent at building UIs.
- Experience in C/C++ development.
- Knowledge of Python / Bash / Powershell
- Interest in developing for Mac/Linux/Ios/Android in addition to Windows
- Good Understanding of IP networking, including low-level sockets programming or high-level application layer programming.
- Experience with BDD.
What we can offer you
- Full-time employment with flexible working hours.
- Challenging work in a fun and collaborative environment.
- Attractive compensation and time-off benefits.
- Financially successful and profitable company.
- Multicultural teams represented by 30+ nationalities.
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!
Please upload your resume as a PDF and do not include compensation information.