In this role you will...

  • Be the main point of contact for all of Fig's developers. Your job is to make sure every Fig developer has a fantastic experience building on Fig. You are there to support them with a moment's notice. 
  • Be the face of Fig in social media, news, and forums. Yep, you're gonna be the "Fig guy/girl". You live and breathe it. 
  • Create and share unique and creative dev content. We want Fig demos, autocomplete building tutorials, engineering blog posts and more pervasive across Twitter, HN, Reddit, and more. 
  • Own our docs. You will make sure Fig's docs are accessible to beginners but detailed enough for new users. As Fig expands beyond autocomplete, you will own help make sure Fig's docs expands with it without becoming convoluted.
  • Create partnerships with leading developer companies. Fig's autocomplete isn't just useful for traditional unix CLIs. We can make experiences with companies like Heroku, AWS, and more so much better. 
  • Contribute to Fig's autocomplete repo. As the chief developer advocate, you will also be in charge of reviewing and merging PRs to our withfig/autocomplete.
  • Prioritise Fig's Roadmap. The best companies talk to their users. You will be in constant contact with Fig developers and so should have a keen sense of what we should prioritise working on next.

You'll be great if...

  • You put users and developers first. No matter what the issue, big or small, you are willing to go above and beyond to help. Our users should not just rave about our product, but should rave about you.
  • You have a good working knowledge of the terminal, shell and a wide array of CLI tools. You're at home in the shell. You know exactly where to look when something goes wrong. You're familiar with the standard unix tools used for networking, system monitoring and more. You know some of the differences between bash/fish/zsh.
  • You are enthusiastic. You love talking with people. Not just to teach them about Fig, but to learn more about them so you can help them solve the challenges they're facing. You love building things and you are always excited to share it with the world.
  • You are mission driven. You are working at Fig because you want to re-imagine the terminal. You are building Fig to make your own life easier as well as the millions of other developers who use the terminal every day. 


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