Frontend Engineer (Payments)
Role details
Job location
Tech stack
Job description
The goal of the Payments team is to enable revenue generation for the entire Proton ecosystem. This comes in the form of introducing new payment methods for users to architecting our client libraries. This team has impact across all of Proton's products and is critical to the success of the business as a whole.
-
The Payments Team works to continuously expand the possibilities for users to pay with various payment methods, beyond just plain credit cards or Paypal - we aspire to create the best end to end payments experience for users globally
-
The team works in tight collaboration with the Account Team (responsible for the Proton user lifecycle), the Proton Finance team, and every single Business Unit to ensure that plans, promotions and pricing meet user expectations -- we are the most cross-functional team in the business with direct impact on the ecosystem strategy Tech Stack and Tools:
-
Differently than many other stacks at Proton, the Payments stack depends largely on external services such as payment providers, tax-information providers, currency-conversion providers... As such it is critical, for the success of the service, to build with resilience.
-
Internally our backend code is in general based on PHP/Symfony, our frontend is based on React, our mobile code is based on Kotlin (on Android) and on Swift (on iOS), with a growing shared codebase in Rust.
-
All our client-code is open-source and GPL3.
-
We are migrating our infrastructure to Kubernetes.
-
Everything runs on premise in Proton's data-centers.
-
To organize our work we use classic tools such as Jira and Confluence. Future Plans:
-
With payments being the backbone of any subscription business, we have ambitious plans to expand the team to cover a wide breadth of topics ranging from demystifying payment performance data across regions/products, to thinking about the holistic strategy of product catalogs, and everything in between. This particular team requires someone who is a strong generalist, who thrives with ambiguity. There's huge potential for growth no matter the domain, and the outcome for any candidate is an in-depth view into how money moves globally. What you will do:
-
Build features in all of Proton's products.
-
Close interactions with products and engineers across the company.
-
Build scalable software architecture through software engineering best practices.
-
Optimise user experience and design. As a Front-end Engineer at Proton, you will play a crucial role in developing Proton's most vital services and serving over 100 million users worldwide. We expect you to be customer-centric, continuously learning, passionate about technology and usability. You are adept at turning technical complexities into seamless user experiences. Effective teamwork, collaboration with Product, Design, APIs, and your team, and data-driven decision-making are essential aspects of this role. What you will do:
-
Develop new features: Developing, deploying and supporting high-quality user experiences, including feature development and implementation.
-
Collaboration: Work closely with backend, product owners, designers, QA, and other engineers to take initiatives from ideation to completion.
-
Code review and optimization: Conduct code reviews and provide constructive feedback to ensure code quality, maintainability, and performance optimization.
-
Testing: Develop and implement comprehensive testing strategies, including unit tests and integration tests, to ensure the reliability of core libraries.
-
Management: Break down large initiatives into smaller milestones to gather stakeholder feedback quickly, allowing us to course-correct immediately.
Requirements
-
Deep understanding of JavaScript methodologies and design patterns
-
Proficiency with TypeScript or any typed language
-
Experience with React or 2+ similar frameworks, developing performant and reusable components
-
Strong understanding of software engineering best practices, such as SOLID, Design Patterns, CI/CD
-
A product mindset with a focus on offering the best user experiences
-
Experience working in a distributed team Bonus points for:
-
Awareness of common security issues in client-side development, such as those in the OWASP top ten, and how to mitigate them
-
Familiarity with UX, accessibility, internationalization, and localization concerns and solutions
-
Experience with Grafana or other monitoring platforms
-
Experience with breaking down product requirements into architecture design and implementation
-
Experience with NodeJS
-
High-level understanding of cryptography concepts such as key exchange and the difference between symmetric and asymmetric encryption