Select projects I've worked on in the last few years.


Dicty Stock Center

Full-featured shopping web application. Catalog pages were built using custom hooks for list virtualization and infinite scrolling. I also designed and implemented dynamic product pages, built a form with a streamlined ordering process and set up page editing capabilities for authorized users. The entire app is backed up by unit tests and Cypress end-to-end testing.

Uses: Apollo Client, Material-UI, Slatejs, Formik, Cypress, TypeScript, React Styleguidist

View Code

dictyBase Homepage

Web app to display main dictyBase content. This includes the homepage, information pages, widgets and downloads. The main feature is HTML5 page editing, as it uses a page editor I built using Slatejs. Authorized users are able to add and edit pages for any desired routes.

Uses: Apollo Client, Material-UI, Slatejs, TypeScript, React Styleguidist

View Code

Gene Page

Web app to display genomic information. This has a tab-based display where each tab contains panels that display unique information about genes and their annotations.

Uses: Apollo Client, Material-UI, TypeScript

View Code


Collection of React hooks used throughout dictyBase web applications. I wrote custom hooks for infinite scrolling, list virtualization, fetching data and for fetching refresh tokens.

View Code

Page Editor

Reusable page editor built with Slatejs. It has full functionality, including basic markup, links, images, video embeds, lists, font color/size/family selections and tables. It can also convert pasted HTML directly into Slatejs content.

View Code

GraphQL Server

GraphQL server built using gqlgen. This is connected to several microservices with Redis caching and authorization middleware.

Uses: gqlgen, Redis

View Code
Go icon
Go icon

Authorization Server

gRPC service that acts as an authorization server for generating and validating JWTs.

Uses: gRPC, Protocol Buffer, Redis

View Code

Side Projects

Personal Website

The very website you are reading right now. I wanted to create a simple but fun website to host my content. Next.js and Tailwind CSS had both caught my interest so this gave me a good reason to experiment with both.

View Code

World Cup 2018 CLI

Node.js command line app for World Cup 2018 results and standings. I did this over a weekend to gain more experience building CLIs.

View Code