Software Engineer, Frontend
Job description
About the role
The role centers on the AI-powered editor, which relies on CRDTs and WebSockets to support real-time collaboration for presentations, documents, and websites. You will join a team that works in person in San Francisco most days while allowing focused remote work when needed.
Software engineers turn product ideas into working code. Engineers work in small teams, review each other's work, and ship in small batches. Most teams follow agile practices such as sprints and daily standups. Engineers also write tests, fix bugs, and improve performance. The field values clear communication as much as technical skill. Engineers spend part of every week on planning, code review, and debugging, not just writing new code. The ability to explain a technical decision in plain words separates strong engineers from the rest.
Key facts
What you'll do
Core real-time collaborative editing is built and extended using CRDTs and WebSockets to serve millions of users. Full-stack features that embed AI capabilities are delivered to make user experiences intuitive and polished. UI interactions and visual details are implemented with designers to ensure high quality. Contributions and suggestions are made for open-source projects that form the foundation of the web application.
Requirements
You bring 3+ years of experience building production web applications with solid knowledge of JavaScript, React, and modern web development. You demonstrate a strong grasp of fundamentals required for reliable user interfaces. Real-time collaborative systems, WebSockets, or similar technologies are part of your experience, along with familiarity with CRDTs or operational transformation for collaborative editing. A curious, low-ego mindset aligns with your technical skill. Prior work on rich text editors or content editors is expected.
Practical notes
The team maintains an in-office culture with 4-5 days per week in San Francisco, while allowing flexibility for focused remote work. If your background does not match every requirement, you are still encouraged to apply. Typical interview steps
Hiring for engineering roles usually starts with a recruiter screen, followed by one or two technical rounds. Candidates often solve a coding problem, discuss past projects, and answer system design questions. Some loops include a take-home task. Final rounds typically cover team fit and give candidates a chance to ask questions. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer. Practicing a few problems aloud and reviewing your own past projects are the best preparation.
Good to know
Real-time collaborative editing relies on CRDTs and WebSockets to keep interfaces responsive. Modern JavaScript and React form the core of frontend work in this role. Designers work closely with engineers to refine UI interactions and polish. Open-source projects often feed into the main product stack. Performance at scale affects how the editor feels for users worldwide.
Questions to ask
Good questions to ask the employer in the interview: what does success look like in the first six months, how is the team structured, what is the current biggest challenge, and how are decisions made. Asking about growth paths and the review process is also well received. Employers expect questions, and good ones show preparation.
Career growth
Engineering careers usually progress from individual contributor to senior, staff, and principal levels. Some engineers move into management and lead teams of five to twenty people. Others stay on the technical track. Growth follows demonstrated impact, not tenure alone. A typical engineering ladder has clear levels with defined expectations for scope, quality, and mentorship. Moving up usually requires owning outcomes end to end rather than completing assigned tickets.