We build legal drafting technology for moments that matter — when the stakes are high, the documents are complex, and speed can’t come at the cost of control.
Our platform helps legal teams move faster through contracts using automation, collaboration, and AI — without taking judgment away from the lawyers who own the risk. We believe technology should amplify expertise, not replace it.
Avvoka is trusted by leading law firms, banks, and global enterprises, and we’ve grown through product strength and word of mouth alone. With headcount and revenue increasing by over 70% year on year, we’re now scaling from a product-led success into a globally recognised legal-tech brand.
We’re at an inflection point: evolving how the world’s most sophisticated legal teams work — and building a company where thoughtful people can do the best work of their careers.
This is a rare opportunity to build the Avvoka brand from the ground up — not inherit it. You’ll be part of a small, ambitious team with the freedom to create, experiment and raise the bar for legal tech.
You’ll work alongside smart, supportive people who move fast and care deeply about quality. If you’re motivated by ownership, pace and visible impact, you’ll feel at home here.
You’re a technically strong TypeScript engineer who enjoys tackling hard engineering problems. You’ll to own and evolve our in-browser WYSIWYG editor and authoring tools. This is a hands-on role focused on performance, correctness and delightful UX for complex legal documents — including real-time collaborative features. You will design and implement editor features, optimise rendering and latency, and work closely with product, design and legal engineers to ship robust, user-facing experiences.
Engagement Type: Independent Contractor
Department: Editor
Primary Point of Contact: Editor Lead
Location: Prague 6, Hybrid
Estimated Commitment: Capped at 160 billable hours per month
Compensation: Competitive, based on experience
Start Date: Flexible — we’d love you to join soon
Lead feature and architecture work for the in-browser document editor and authoring surfaces.
Build high-performance, low-latency features that handle complex data models, dynamic content and large documents.
Implement, extend and maintain Quill modules and integrate with Quill’s event API.
Deliver clean, maintainable TypeScript/JavaScript with strong type safety and automated tests.
Use modern frameworks and tools to improve performance, stability, and developer ergonomics.
Ensure cross-browser compatibility and responsive behaviour across devices.
Implement collaboration features (presence, cursors, comments) with a focus on consistency and minimal latency.
Work with backend engineers on OT/CRDT integration, conflict resolution, and data reconciliation strategies.
Partner with designers, product managers and legal engineers to translate UX needs into technical solutions.
Provide constructive code reviews and take part in design and architecture discussions focusing on usability, accessibility and performance.
Improve internal tools, build reliable CI/CD for frontend releases, and ship observability for editor performance.
Document editor APIs and onboarding flows for other engineers and product teams.
To ensure your application has the best opportunity of success, your CV could cover the below measures of success with quantifiable results (e.g. percentages, growth, reductions, impact)
Reduced editor load times, rendering bottlenecks or collaboration latency by measurable margins.
Delivered user-visible features that improved authoring efficiency (e.g., reduced average task time, fewer formatting errors).
Consistently high code quality with minimal production regressions.
Demonstrable improvements to editor architecture that increase maintainability and scale.
The ideal candidate would have:
Strong proficiency in TypeScript ( 5+ years of professional experience).
Hands-on experience building/maintaining complex web apps — ideally editor/authoring tools or design surfaces.
Deep understanding of browser rendering, virtualisation techniques, memory management and performance optimisation.
Prior experience with real-time collaboration features (OT/CRDT, WebSockets, presence).
Solid testing strategies and experience with performance monitoring in production.
The desirable candidate would have:
Experience with Slate.js, ProseMirror or other rich-text frameworks.
Exposure to testing frameworks (Jest, Playwright) and CI/CD for plugin deployment.
Understanding of accessibility, UX principles and UI performance optimisation.
In addition to the technical and professional skills, there are certain core attributes we value across all roles:
Adaptability in dynamically evolving settings
A proactive, solution-focused mindset with ownership
A collaborative spirit, supporting and mentoring others
💡 If you’re excited about this role but your experience doesn’t align perfectly with every qualification, we encourage you to apply anyway — you might be just the candidate we’re looking for.
CV Review: Our People team reviews all applications carefully.
Screening Call (15m): A quick virtual chat with our People team to learn more about you and answer any initial questions.
Stage 1 – Assessment Interview (30–45m): A virtual assessment interview with the Hiring Manager focused on your experience and approach.
Stage 2 – Senior Interview (for senior roles): An additional conversation with members of the leadership team.
Meet the Team: Where possible, we’ll invite shortlisted candidates to visit our office to meet the wider team.
We aim to make an offer to the successful candidate within a month of application, but this will vary by role and seniority.
We are an equal opportunity employer that celebrates diversity and inclusion. We welcome applications from individuals of all backgrounds, identities, and experiences - including those from underrepresented groups - and are happy to provide reasonable adjustments for candidates with disabilities during the recruitment process.