TypeScript Engineer (Text Editors)

You're excited to work on problems related to diff visualizations, collaborative editing, and conflict resolution in text editors. You sweat the details when it comes to interaction design and the authoring feel.

You're excited to work on problems related to diff visualizations, collaborative editing, and conflict resolution in text editors. You sweat the details when it comes to interaction design and the authoring feel.

You're excited to work on problems related to diff visualizations, collaborative editing, and conflict resolution in text editors. You sweat the details when it comes to interaction design and the authoring feel.

Requirements

Experience with Web-based Text Editing
  • You have a strong understanding of ProseMirror and how to hook into its transaction model or you've built your own rich-text editor for web

  • You have strong familiarity with event propagation and focus input management challenges in web-based applications

  • You have set-up regression testing for web-based rich-text editors

Experience with complex UI state management

You can lead and teach engineers how to write signal-based UI state management with unit testable "view-models". You have solved problems and designed interfaces with reactivity libraries similar to Jotai, RxJS, SolidJS's createSignal, TanStack Store, or equivalent.

For the most complex interactions, your logic is unit-testable without a React render loop.

We avoid state management relying on React's hook context in most cases, but when it comes to common, visual-only things like resize handles and animations it's probably fine to put that in the React side.

Bonus points

AI Optimism

You have optimism towards async AI fixing bugs and making tweaks to the codebase and you plan for that by checking your interfaces and design with an LLM to see where your approach is weak.

We have high optimism for async AI handling the majority of the coding in the long-tail of our software process. But, we don't find AI effective at every stage of development.

Generally, we think about AI usage following a trend like the following;


AI Optimism

You have optimism towards async AI fixing bugs and making tweaks to the codebase and you plan for that by checking your interfaces and design with an LLM to see where your approach is weak.

We have high optimism for async AI handling the majority of the coding in the long-tail of our software process. But, we don't find AI effective at every stage of development.

Generally, we think about AI usage following a trend like the following;


AI Optimism

You have optimism towards async AI fixing bugs and making tweaks to the codebase and you plan for that by checking your interfaces and design with an LLM to see where your approach is weak.

We have high optimism for async AI handling the majority of the coding in the long-tail of our software process. But, we don't find AI effective at every stage of development.

Generally, we think about AI usage following a trend like the following;


© 2025 Phosphor Co. All Rights Reserved

© 2025 Phosphor Co. All Rights Reserved

© 2025 Phosphor Co. All Rights Reserved