A background building large-scale web applications and proficiency in React, TypeScript, and other modern web technologies.
Experience designing and maintaining APIs that scale.
Proficiency with cross-browser compatibility issues and ways to work around them.
An understanding of modern browser security policies and content security.
Self-starting, self-driven: You should be comfortable starting your own projects, maintaining them, and doing it all autonomously. You maintain a high level of ownership, attention to detail, and have a knack for organizing processes using all three.
Ability to offer feedback to other developers on the team and experience in reviewing and improving code.
A passion for crafting experiences that customers love.
Excitement to learn WASM, Rust, Web Workers, WebCrypto, and other modern technologies.
What you can expect in month 1:
Review the tools and platforms that 1Password uses and get to know the team you’ll be working with.
Become familiar with the web app's architecture, its major functions and limitations, and high-level goals and design.
Develop an understanding of the app's build process and how to work in our codebase: TypeScript, React, ReactRouter, writing unit and integration tests, 1Password in-app messaging style, localization, etc.
Take some small tasks from existing issues to production.
Once a week, help our customers directly and help fix small customer-facing issues.
What you can expect in month 2:
Take on larger issues: These will likely be issues where the effort is higher but the solution is already laid out.
Begin filing new issues based on observed bugs or opportunities for improvement.
Review others’ Merge Requests (MRs) in GitLab with a critical eye. Part of this will happen naturally by pairing with other members of the team before code gets to an MR.
Become the go-to front-end developer for the major projects you’ve taken on.
What you can expect by month 3:
Take the lead on a large dev cycle task. You will be responsible for determining the direction of the task and ensuring that the expected timeline is either met or adjusted as you learn more about its complexity.
Advocate for improvements to product quality, security, and performance that have particular impact across your team.
Provide mentorship for junior and intermediate developers on the front-end team.
Identify areas where we can improve not just our code but our development process and/or tools.