Join the Typst Team!
Do you want to work with us? Browse the open positions below and apply now!
There is one open position at the moment.
Limited Project: PDF Forms Freelance project position, fully remote, all genders
Typst is an automated writing platform for every kind of technical document, from reports and documentation to research. We are already serving a base of tens of thousands of diverse users, ranging from IT, engineering, and finance to academia.
Role
Interactive forms in PDF files are one of the most sought-after features amongst users of the Typst compiler. With 183 reactions, the matching issue is ranked second by upvotes on the issue tracker. Our aim for this project is to entrench Typst’s position as the one-stop solutions for professional documents by shipping interactive PDF forms. For this, we are looking for a freelance Rust engineer.
Within this project, you will lead the design and implementation of this feature in close collaboration with our team. We will support you with a strong engineering culture and in-depth knowledge about PDF. You are especially suited for this role if your strengths are API design, working with specifications, and ensuring compatibility: We are looking for engineers who can cut through the complexity of PDF to deliver a user experience that is both easy and powerful and feels at home in Typst. Furthermore, we expect you to thrive in work environments where can choose how, when, and where you work. Throughout this project, you will hone your design and implementation skills and obtain credentials through your contributions to Typst, one of the fastest-growing Rust open source projects.
Requirements
-
Advanced user of the Rust programming language
-
Skilled in API design, emphatic with Typst users
-
Experience with or interest in writing clear user-facing documentation
-
Ability & eagerness to work closely with standards and specifications, best when in the PDF or web spaces
-
Capability to complete this project in three months or less
-
Full working proficiency in the English language (C1 level)
-
Prior contributions to the Typst compiler are a plus
Within the three month duration of this project, you can freely choose how you deploy your time. The project is open for any skilled applicant. For example, it could be a good summer project for a student still enrolled in university. We expect that this project will have a full-time equivalent workload, but ultimately this is up to you.
Benefits
-
Compensation of EUR 10K total for completing the project
-
Flexible working models: This role can be fulfilled fully remotely. We offer optional placement in our Berlin office which can be a rewarding experience, especially for early-career engineers.
-
Flexible working schedule
-
Get paid to work on an open source project which ships to countless users worldwide
How to apply
To apply, please send your application to laurenz.maedje <at> typst.app.
Your application should include the following:
-
A cover letter
-
A CV
-
A link to your open source portfolio, accessible from your CV or cover letter
-
A completed take-home assignment (see below)
We especially encourage women, non-binary, and non-white candidates to apply. Our selection process consists of 1-2 interviews and an upfront take-home assignment.
Take-home assignment
You will explore forms in both HTML and PDF for the purpose of providing a single, high-level Typst API that will result in usable forms for both PDF and HTML export. Your task is to identify where divergences between the two implementations of interactive forms create challenges that a high-level API abstracting over the two formats must overcome.
For each challenge, provide some background in how the formats differ and what implementation or API design problems this divergence raises in the context of Typst. You should also choose a single challenge to focus on and propose a possible API design that addresses it.
The single forms API should allow the user to control both interactivity and appearance of the fields and should feel native to Typst. When required, it may allow the user to drop down to a format-specific API surface. The API does not need to expose all capabilities of either underlying implementation.
You can ignore concerns of submitting the form, including the action
attribute on the HTML form element, as well as FDF and XFDF in PDF. In PDF, do not use the XML Forms Architecture (XFA). For controls, limit yourself to consideration of controls present in both standards. In particular, in PDF, you should consider no controls other than text fields (/FT Tx with multiline or comb flags set or unset), dropdown fields (/FT Ch with a set comb flag), list fields (/FT Ch with an unset comb flag), checkboxes (/FT Btn with an unset radio bit), and radio buttons (/FT Btn with a set radio bit).
You can use an AI agent or AI-based semantic search in the research process for your deliverable. However, neither the design choices you make in your deliverable nor any prose within may be AI-generated or AI-augmented. The final deliverable must have between 750 and 1,500 words. It can include code samples but should focus on outlining the challenges for the API and your solution to the highlight challenge. Code samples do not count towards the word count. It can include notable implementation considerations but they should not be the focus of the deliverable. Completing the take-home should not take more than four hours.
Suggested Reading:
- Sections 12.7.1 to 12.7.5 (Interactive Forms), Document management --- Portable document format --- Part 1: PDF 1.7 (PDF 1.7 Specification)
- Section 12.5.1 to 12.5.3 (Annotations), PDF 1.7 Specification
- Section 12.5.6.19 (Widget Annotations), PDF 1.7 Specification
- Section 4.10 (Forms) and its subsections, HTML Living Standard (May 26, 2026), URL https://html.spec.whatwg.org/multipage/forms.html and following
- Section 15.5 (Widgets), HTML Living Standard, URL https://html.spec.whatwg.org/multipage/rendering.html#widgets
You can obtain a copy of the PDF 1.7 specification at https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf