I have a thing: I'm diving very deep into stuff sometimes. One day long ago I needed a CV, so I opened OpenOffice Write, and I wrote it. It sucked. Formatting was inconsistent, it had no style, but it was readable, which was OK. A few years ago I decided to try out LaTeX...

LaTeX

It's pronounced "Latek" from what I've heard. It's a technology from decades ago that academia has relied on to create pretty formatted scientific papers, with quotations, references, formulae, charts, etc. And every time someone needed to add something new - it became a new package and a new feature.

This was before npm and the era of declarative packaging and easily reproducible builds. Which means that if I'm starting out - I'm downloading 7GB worth of programs and packages just to build a "Hello World" black on white text document.

But the web came with an elegant solution for people - Overleaf - it's an amazing online editor, that comes integrated with a large community-led library of templates for any type of documents you'd want to build. Just check out the CV section! Now that, is what I call design. No more LibreOffice. Nice, designer CV at your fingertips.

But I wanted it to be my own. I didn't want to depend on Overleaf, I wanted my own reproducible build. So I added a distribution that shipped xelatex, and I proceeded to write my gorgeous CV using a template that included both a CV and a Cover Letter template.

I got a beautiful, stylish, tasteful CV, at only 50KB.

But after years of having this, and updating it from time to time, and changing the style just a little bit more, I can say that I have not really gotten any comfortable with LaTeX at this level. It's unreadable, complex, heavy. Compiling my CV on my MacBook Air (M1) takes about 2 seconds, it's several gigabytes of applications, errors are hard to figure out, styling is hard to change, and it doesn't even always work. I tried to use xelatex from a Docker container, and because of a different version or something else, it didn't work properly, errorred out, produced a badly formatted PDF.

It's time to look for an alternative.

If not LaTeX then what

This website is in Markdown, but Markdown doesn't allow such stylish finetuning.

I have done my fair share of front-end development, but I don't want to build HTML pages, I want to build PDFs.

I have my share of experience in programmatically creating PDF files, but I don't even want to go there for this. Plus, the code for this would not be very readable.

So I'm in a bit of an impasse

Enter Typst

I've heard of it a while back, but thought it was just an experiment. But no - right now it's a mature document creation solution.

  • The Docker image is only 81MB in size (not 7 gigabytes)
  • The syntax is very much sane. If you've done Markdown or reStructuredText, Typst is going to be an incremental evolution
  • It's fast. Much less than 1 second to compile the same CV
  • I actually was able to fully adapt my favorite LaTeX theme, starting with an existing Typst theme that was close enough, with the tweaks that I wanted, and even improve on the template code a lot - all wihin half a day
  • Documentation in one place, with no thousands of modules and their gigabytes of heterogeneous PDF documentation.
  • It's concise and focuses on the content.

Judge for yourself. Here's a snippet of a CV that produces a visually similar result to what I linked above for LaTeX:

#import "template.typ": *

#let name = "Nova Starlight"
#let location = "Neo-Tokyo, Mars Colony"
#let email = "nova@starlight.galaxy"
#let phone = "+1-555-0199-WARP"
#let linkedin = "novastarlight"
#let github = "nova-stellar"

#show: resume.with(
  author: name,
  author-position: center,
  location: location,
  email: email,
  phone: phone,
  linkedin: linkedin,
  github: github,
  personal-info-position: center,
  color-enabled: true,
  text-color: "#000080",
  font: "Source Sans Pro",
  paper: "a4",
  author-font-size: 24pt,
  font-size: 10pt,
  lang: "en",
)

== Skills

#set rect(stroke: none)

#grid(
    columns: (auto, 1fr),
    align: (right, left),
    category("Core Tech"),
    category_items("Warp Drive Optimization, Quantum Cryptography, Neural Link Interfaces"),
    category("Systems"),
    category_items("Galactic Grid OS, Terraform (Planet-scale), Hyper-loop Routing"),
    category("Soft Skills"),
    category_items("Inter-species Diplomacy, Zero-G Team Management, Time-Travel Ethics"),
    category("Languages"),
    category_items("Earth Standard, Martian Click, Binary-X"),
)

== Experience

#work(
  company: "Interstellar Logistics Corp",
  role: "Chief Galactic Architect",
  dates: dates-util(start-date: "2385", end-date: "present"),
  location: "Saturn Rings Station",
)[
- Designed the first stable wormhole routing protocol, reducing trans-galactic latency by 40%
- Orchestrated the migration of the Mars Colony mainframe to a decentralized quantum ledger
- Managed a cross-planetary team of 500+ engineers during the Great Asteroid Re-routing project
- Implemented AI-driven life support predictive maintenance, saving 2 million oxygen-hours annually
]

#work(
  company: "Orbit-X Robotics",
  role: "Lead Automation Engineer",
  dates: dates-util(start-date: "2378", end-date: "2385"),
  location: "Lunar Base Alpha",
)[
- Developed the firmware for the Series-9 Mining Droids used in the Kuiper Belt
- Optimized power consumption of lunar habitat shielding by leveraging solar flare harvesting
- Spearheaded the "Peaceful Droids" initiative, repurposing decommissioned defense bots for agriculture
]

#work(
  company: "Astro-Data Systems",
  role: "Junior Nebular Analyst",
  dates: dates-util(start-date: "2375", end-date: "2378"),
  location: "Earth Orbital Platform",
)[
- Built real-time telemetry pipelines for deep-space probes using Pulsar-based clocking
- Automated the classification of exoplanets based on atmospheric spectroscopy
]

== Education

#edu(
  institution: "Galactic Institute of Technology",
  location: "Alpha Centauri",
  degree: "PhD in Spatio-Temporal Engineering",
  dates: dates-util(start-date: "2370", end-date: "2375"),
)

== Hobbies

#hobby_group(
    title: "Astro-Photography"
)[
- Capturing long-exposure shots of the Andromeda collision from the dark side of the Moon.
]

#hobby_group(
    title: "Bio-Luminescent Gardening"
)[
- Breeding rare Martian flora that glows in sync with local magnetic field fluctuations.
]

Result

I don't even need to share the theme file - it's really easy once you read a bit through the docs. Plus, there are a lot of templates already. Just pick one up and make your favorite document.

This was a journey about making a modern CV. But I'm gonna make cheatsheets with it now, checklists, and other pretty documents.

I feel inspired!