About the job
Typescript / React / Node / PostgreSQL / WebSockets
Location: On-site in Copenhagen, Denmark (no full-remote option)
Level: Senior
Company: Francis
Were building Francis: a collaborative spreadsheet for financial modeling that does the heavy lifting Excel users wish they didnt have to. Its fast, multiplayer, deeply expressive and powered by a custom-built formula language under the hood.
This is not just another CRUD app. Were building a product where performance, ergonomics, and product design all converge in the browser, in real time, with no room for bloat.
Were a small team of four, including two engineers. Were looking to bring on a third engineer to help push the limits of what a browser-based spreadsheet can be.
We work in-person at our office in Copenhagen. We pair frequently, think out loud, and make technical and product decisions collaboratively. Youll have a strong influence on everything we build.
Were a very small team trying to be fast, deliver quality and have no bureaucracy. Despite our team size, were already serving hundreds of companies.
About the job
Were looking for a full stack engineer whos excited to:
- Dive deep into real user workflows to understand their mental models and pain points.
- Turn ambiguous product ideas into elegant, maintainable full-stack implementations.
- Push the limits of what can be done in the browser squeezing every bit of performance from React and the DOM.
- Design APIs and backend systems that support fast, real-time collaboration.
- Shape the engineering culture, architecture, and product direction as an early team member.
- Solve difficult puzzles.
What youll do
- Help bring the most promising concepts into the hands of our users.
- Design and implement full-stack features across our entire codebase.
- Shape core infrastructure for our collaborative engine (WebSockets, conflict resolution, real-time sync).
- Contribute to the design of our formula language the embedded language that powers the spreadsheet (tokenizer, parser, interpreter).
- Work closely with the team to deeply understand user workflows, and find elegant, product-driven technical solutions.
- Tackle performance challenges in the browser, like virtualized rendering, optimizing React re-renders, multi-layer caching and algorithmic time-complexity.
- Build AI-based features that actually improve the product.
- Build test infrastructure and property-based tests to ensure correctness in edge cases.
To give you an idea about the type of work youll encounter, here are some examples of work we have done recently.
- Prototyped a visual tree-based editor based on react-flow for end-user managed configuration of spreadsheets with templating/inheritance.
- Real-time collaboration over websockets, with automatic conflict resolution for edits in the spreadsheet.
- Commenting feature for collaboration with e-mail notifications sent to mentioned parties.
- Aggressive performance optimization of the cache invalidation in our calculation engine aided by browser performance profiling.
Were co-located in our Copenhagen office. We believe working in the same space and on the same schedule boosts productivity, learning and fun.
Why this role is exciting
- Youll be shaping a technically ambitious product used by real customers every day.
- Youll work on performance-critical systems, real-time collaboration, and language design all in the browser.
- Youll be part of a tiny, high-trust team where your work has massive impact.
- Youll be challenged and (almost surely) learn a lot.
Our stack
- TypeScript (across frontend and backend)
- React + Redux + Tailwind CSS
- Node.js + Express
- PostgreSQL + Redis
- WebSockets for real-time collaboration
- Custom formula language designed and implemented in-house
About you
- Have solid experience building performant applications + UIs using React and Tailwind.
- Love thinking in systems performance, abstractions, tradeoffs.
- Enjoy pair programming, deep technical discussions, and co-owning product decisions.
- Are intrigued by the idea of building something that looks simple, but is technically ambitious under the hood.
- Have a solid grasp of computer science fundamentals data structures, algorithms, and performance tradeoffs.
- Likely 5+ years of industry experience (or exceptionally motivated)
About us
The journey
We prioritize healthy growth
- We have 300+ companies using our platform
- We havent scaled prematurely, but taken time to get it right
- We're profitable
What we offer
- Interesting and challenging work
- Competitive salary + equity
- Office with great colleagues
- Flexible working hours
- 5 weeks of paid vacation
- Paid lunch
- Private health insurance
- Pension plan
- Parental leave
If youre curious, capable, and up for a challenge, wed love to hear from you.
The interview process
- Intro meeting: A short conversation to discuss vision, role expectations, and cultural fit.
- Meeting with two co-founders: A longer discussion with leadership on strategy, design philosophy, and collaboration.
- Meeting with the team: Conversation with the entire team to assess working dynamics and alignment.
- Final decision: A decision is made and communicated.
For more information or questions please contact our CTO at [email protected]