In this role you will...

  • Own design at Fig. You will have full ownership over Fig's brand - everything from our splash screen to our docs to the tiny icons we use in autocomplete. 
  • Ideate on new terminal apps and experiences. Fig will soon open up its API, allowing users to build apps like these. This platform will open up a whole new way of building experiences in the terminal. We want you to help lead the community of app developers with world-class design.
  • Build a UI library for Fig apps. Users expect the terminal to be fast and keyboard driven. We want Fig apps to be the same. We want you to build a fast, simple, keyboard driven UI library so anyone can build beautiful and fast terminal experiences with Fig.
  • Wear many hats. We are a fast growing startup. We all have to be generalists. One day you'll be coding, the next doing support, then next launching new Fig apparel. There is always something to do.

 

You will be a great fit if...

  • You are product minded. You put our users first. You are focused on users and solving their problems. You have a sense for creating magical user experiences.
  • You move quickly. We prototype things very quickly. You will hack what you need together to get something working. No coding challenge is impossible.
  • You can code what you want to create. Having an idea is one thing. Building it is another. We are looking for someone who can go from a sketch to a final product autonomously.
  • You can create jaw-dropping designs. Yes, this is cliche. But we are looking for someone who create designs that make people go "wow". We want to be the brand that new startups copy. We want you to help us get there.

 

Our Stack

  • Swift/Objective-C/C for our macOS app. Our pseudoterminal, window management, CLI, and our menu are written in combinations of these languages. We also make heavy use of macOS accessibility APIs.
  • Typescript/Javascript for all of our apps (including autocomplete) We use VueJS to build autocomplete. Our bash parser and arg parser are written in Javascript. Fig's Autocomplete specs are in Typescript. Our website is Next.js and we have a simple Express backend. We are in the process of shifting to Typescript.
  • A lot of shell, CLIs, and systems We wrote integrations with bash, zsh, and fish in their respective languages. Our autocomplete app has to integrate with just about every CLI tool... We also go deep into signals, processes, and file descriptors.
  • Modern work tools. Linear for issue tracking, GitHub for source control and open source, Sentry for error reporting, Segment and Amplitude for analytics, Discord for community management and internal communication, Notion as knowledge base. A few others.

 

Some of the engineering challenges we've faced

  • Defined a declarative standard for building autocomplete for CLIs 
  • Wrote a left-to-right bash parser from scratch
  • Used zsh's ZLE module to accurately get your current buffer and cursor position when typing in zsh
  • Used the macOS accessibility API to get your cursor position in an application we don't own
  • Used UNIX sockets and Docker’s dockerd API to get a container’s current process and working directory
  • Injected a custom API into a WKWebview that gives web apps the ability to run local shell commands

Apply for this Job

* Required