Flexport internship

Time period: May 2018 – Aug 2018

Role: Software Engineering Intern

Keywords: React, Node.js, design system

I interned on the Frontend Infrastructure / Design System team in SF, where I worked on Flexport’s design system, Latitude, and improved the documentation site.

SettingsToggle component

I brought the SettingsToggle component into Latitude.

gif of SettingsToggle

Problem: The search field didn’t actually search the whole site; it only filtered through the list of component names. Most engineers used cmd+f to find what they wanted.

gif of old search interaction

My improvements: I added Algolia DocSearch to the site, which you can also try out live. The site is properly indexed with docsearch-scraper, and users can now search across the docs to find design guidelines as well as components.

gif of new search interaction

Unsolicited user testimonials: Flexport engineers liked my work!

nice slack message

Prop Table

Problem: Let’s say you’re implementing a design and need to add text to the UI. You look at the documentation page for the Text component, and the React props are listed out like so:

screenshot of old table

However, notice the Type column—what are the actual color and size options? As a result, developers need to look into component source files to find this basic information.

Context: The documentation site is generated with the help of react-docgen, which parses React component files. However, at the time of this writing, docgen doesn’t support parsing imported proptypes (which is why the table above just says Color). Additionally, Flexport uses Flow types, but docgen did not parse Flow types in particular detail (which explains $Keys<typeof tagMap>).

My improvements: By parsing the docgen output more carefully, prop tables are now much more helpful for developers (see it live)!

screenshot of new table

screenshot of new table

Unsolicited user testimonials: Flexport engineers liked my work!

three nice slack messages