Senior Javascript Fullstack Engineer

Filevine

Location
United States
Job Type
full-time
Salary
$140,000 - 180,000
Posted
January 10, 2026

Job Description

Filevine is forging the future of legal work with cloud-based workflow tools. We have a reputation for intuitive, streamlined technology that helps professionals manage their organization and serve their clients better. We’re also known for our team of extraordinary and passionate professionals who love working together to help organizations thrive. Our success has catapulted Filevine to the forefront of our field—we are ranked as one of the most innovative and fastest-growing technology companies in the country by both Deloitte and Inc.
 
Our Mission
Filevine is building the seamless intersection between legal and business by creating a world- class platform to help professionals scale.
 
Role Summary:
We are seeking a talented and experienced Senior Javascript Full Stack Engineer to join our dynamic team. The ideal candidate will have a passion for creating high-quality, user-friendly web applications, and a deep understanding of the latest web technologies.

Responsibilities

  • Design, develop, and maintain high-quality web applications using JavaScript, Node.js, and React.
  • Collaborate with cross-functional teams to define, design, and ship new features.
  • Analyze and resolve technical and application problems.
  • Adhere to high-quality development principles while delivering solutions on-time and on-budget.
  • Debug production issues across services and multiple levels of the stack with an eye towards improving maintainability over the long term.
  • Improve engineering standards, tooling, and processes.

Qualifications

  •  
Required Skills:
  • 7+ years React experience (class & functional components)
  • Strong JavaScript/TypeScript skills
  • Node.js & Express.js backend experience
  • Experience with cloud platforms (GCP preferred)
  • Experience with complex rich text editors (DraftJS, TipTap, or similar)
  • Webpack & modern build tooling
 
Strongly Preferred:
  • AI/ML API integration experience
  • Elasticsearch experience
  • Legacy codebase experience
  • Performance optimization
 
Nice to Have:
  • Firebase experience
  • PDF/DOCX document processing
  • Docker & CI/CD experience
  • Legal tech domain experience
  • MobX state management

Education

  • B.S. in computer science, information systems, a related field; comparable certifications; or equivalent direct work experience

🎯 Who is this job for?

This position is well suited for a senior full-stack JavaScript engineer who enjoys owning complex web applications end to end, working deeply with React and Node.js, and improving large, long-lived codebases. It will appeal to engineers who are comfortable making architectural decisions, debugging across multiple layers of the stack, and raising engineering standards through better tooling, performance optimization, and maintainability. The role is a strong fit for someone who likes collaborating across disciplines, building rich, interactive user experiences such as advanced text editors, integrating modern cloud services and APIs, and who is motivated by solving real business problems at scale while continuing to grow technically and influence how products are built.

πŸ’¬ Potential Interview Questions

  1. What is your experience building full-stack applications with React and Node.js?
    I’ve spent the last several years building full-stack applications with React on the frontend and Node.js/Express on the backend. On the frontend I work heavily with modern React (hooks, functional components, Context, custom hooks) and TypeScript; on the backend I build REST APIs, authentication flows, background jobs, and integrations with external services. I’m comfortable owning features end-to-end, from database schema and API design through to UI and performance tuning.

  2. How do you approach structuring a large React codebase that uses both class and functional components?
    I typically organize by feature/domain and incrementally migrate older class components to functional ones with hooks as we touch them. Shared logic moves into custom hooks and utility modules to reduce duplication. I enforce clear boundaries between presentational and container components, use TypeScript types/interfaces to keep props contracts explicit, and rely on linting, Storybook (if available), and tests to keep things maintainable as the codebase grows.

  3. Describe your experience working with rich text editors like DraftJS or TipTap.
    I’ve implemented rich text editing with DraftJS and similar libraries, including custom block types, entity handling, toolbars, and keyboard shortcuts. I’ve dealt with converting between editor state and HTML/Markdown/plain text, handling paste sanitization, and storing editor content safely in the backend. I’m familiar with performance pitfalls in large documents and how to manage controlled/uncontrolled state, undo/redo behavior, and collaborative editing constraints.

  4. How do you ensure performance and scalability in a Node.js/Express backend?
    I focus on keeping handlers stateless, using proper connection pooling, and offloading heavy work to background jobs when possible. I profile endpoints, add caching where appropriate (in-memory or Redis), paginate large queries, and avoid blocking the event loop with CPU-heavy tasks. I also pay attention to logging, metrics, and timeouts so we can detect slowdowns early and scale horizontally behind a load balancer or with managed services in the cloud.

  5. What is your experience with modern build tooling like Webpack, and how do you optimize build and bundle performance?
    I’ve configured and tuned Webpack for large React applications, including code splitting with dynamic imports, tree-shaking, caching strategies, and optimizing loaders and plugins. I monitor bundle sizes, use source maps selectively, and leverage environment-specific configs for dev vs. production. Where beneficial, I’ve also worked with newer bundlers (like Vite/esbuild) and know how to migrate or integrate them into existing pipelines.

  6. How have you integrated AI/ML APIs or external services into a JavaScript stack?
    I’ve integrated external AI/ML APIs by designing clear service layers on the backend that handle authentication, rate limiting, error handling, and response normalization. On the frontend, I surface these capabilities through well-defined APIs, optimistic UIs where appropriate, and clear loading/error states. I’m careful about latency and cost, so I cache results when possible, batch requests, and add logging and metrics to understand usage patterns.

  7. Describe a time you improved performance in a complex React or Node.js system. What did you do and what was the result?
    In a previous project, a complex React page with multiple nested components and heavy data tables became sluggish. I profiled the app, identified unnecessary re-renders, and introduced memoization (React.memo, useMemo, useCallback) along with virtualization for large lists. On the Node.js side, I optimized a few N+1 queries and added caching for expensive lookups. The result was a dramatic reduction in render time and a much smoother user experience, especially for power users.

  8. What is your experience with cloud platforms like GCP, and how do you leverage them in your applications?
    I’ve used GCP services such as Cloud Run/App Engine for deploying Node.js services, Cloud SQL/Firestore for data, Cloud Storage for file handling, and Pub/Sub for asynchronous messaging. I’m comfortable setting up environments, managing secrets, configuring CI/CD to deploy automatically, and using monitoring tools (like Cloud Logging and Cloud Monitoring) to keep track of performance and errors in production.

  9. How do you approach working with and refactoring legacy codebases while still delivering new features?
    I start by understanding the existing behavior and adding or improving tests around critical paths. When implementing new features, I refactor opportunistically: isolate responsibilities, remove duplication, and improve naming/structure in the areas I touch. I avoid big-bang rewrites and instead plan incremental improvements that are safe to ship, communicating clearly with the team about risks, trade-offs, and the long-term vision for the code.

  10. How do you collaborate with cross-functional teams and contribute to engineering standards and processes?
    I work closely with product, design, and other engineers from the early discovery stages, clarifying requirements, proposing technical options, and highlighting constraints. I contribute to and help maintain coding standards, documentation, and shared tooling (linting, formatting, testing). I give thoughtful code reviews, mentor more junior developers, and suggest process improvements where needed—always with the goal of improving quality, speed of delivery, and developer experience.

πŸ“‹ Job Summary

This position is a strong match for a senior JavaScript full-stack engineer who wants to own complex React + Node.js/Express features end-to-end on a large SaaS legal workflow platform—working with TypeScript, Webpack, rich text editors (DraftJS/TipTap), GCP, and Elasticsearch, improving performance and legacy code, influencing engineering standards and tooling, and earning $140K–$180K plus comprehensive benefits in a fast-growing, product-focused environment.

Required Skills

JavaScript React Node.js