Nick ZuberComputer science & mathematicsSoftware engineering @ Notionhe/him/hiszuber [dot] nicholas [at] gmail
Hi 👋 I'm Nick, a software engineer currently working at Notion on the enterprise team, helping improve the Notion experience for large customers. Previously, I worked at Robin as a staff software engineer leading the maps product. Before that I worked at Box as a tooling engineer where I helped work on ClusterRunner, which is an open source tool for horizontally optimizing tests & testing infrastructure.
In my spare time, I love to research and explore certain areas of computer science and geometry. My current interests span across programming language design, type theory, and geometric algorithms. Some of my hobby projects are fun examples of the things I like learning more about.
I graduated with a BS in Computer Science and minor in Mathematics from University of Massachusetts Lowell, where I studied programming language design and gradual typing with Matteo Cimini, machine learning with Dr. Jerome J. Braun, and compiler architecture and design with Jay McCarthy.
What I've Been Up To
Over the years I've has the pleasure of working with some amazing people and I've made some accomplishments along the way. You can take a look at my resume to see what I've been up to lately.
Joined Notion as a founding member of the enterprise team 🪴
Promoted internally to a staff software engineer 🎉
Robin's layout tool officially launched! My team and I have been working hard on this product for the past year or so – it's basically Figma for building offices.
Officially released Meteorite to the general public! It was a very fun and rewarding experience working on this smart GitHub notification inbox.
Promoted internally to a senior software engineer 🎉 I also became the lead engineer on the maps platform, helping optimize and evolve the product as a whole.
Graduated from University of Massachusetts Lowell with a BS in Computer Science and minor in Mathematics, focusing on metatheory of programming languages.
Accepted an offer to work full time at my favorite startup, Robin. I joined the front end engineering team to help build out our component library, developer build & release tools, and some cool new products.
Began my next internship at Box, joining the productivity engineering team.
I've always loved building developer tools as a hobby, and doing it professionally was just as fun.
Started my internship at Robin, joining the mobile team as a software engineer.
I got to learn a lot about what goes into building a new product and how to iterate quickly on ideas first hand, which was a cool experience.
What I've Built
I love working on side projects. Creating free & accessible software is something I'm really passionate about. All of my projects can be found on GitHub, but a few of my personal favorites are highlighted here.
Notion Draw: Simple embdded doodling app
Crosswordle: A daily crossword game
Spectre: Simple SVG editor for tracing
Meteorite: Smarter GitHub notifications
ClusterRunner: Optimize test suites horizontally
chs: Play chess in your terminal
Kelp: x86-64 compiler
COMP 4060: Compiler Construction
Markup: Create & share TeX snippets
What I've Written
When I'm not reading about new things, I like writing about them. I've recently been posting all of my articles to Medium, but I've listed out a few of my favorites below:
Procedurally Generating Indoor Pathways.
Exploring a new technique for wayfinding that doesn't involve drawing anything by hand. Spoiler alert, fun with Voronoi diagrams and math!
Why GitHub notifications make it hard to get things done & how to fix it.
My quest to solving the worlds most pressing issues: managing GitHub notifications. I talk about some ways that can help with this problem and finish by introducing Meteorite – a tool designed for making notifications smarter.
Proving type soundness in a simply typed lambda calculus.
Evaluation contexts, typing rules, runtime semantic rules, and type soundness for a simply typed lambda calculus with various traditional language features.
Exploring Linear Discriminant Analysis Classification of Non-Normal Data using Poker Hands.
We explore the effectiveness of linear discriminant analysis on a multi-class non-normally distributed dataset and try to identify the points of unreliablility so that we can attempt to counter it and produce more reliable results.
What I've Read
Reading not only helps me stay sane on the commutes to work, but it also helps me take deeper dives into topics of interest. Below is a collection of books and academic papers that I've enjoyed recently.
Things marked with an asterisk (*) denote something that I'm currently in the middle of reading.
Types and Programming Languages*
All things type theory and metatheory on programming languages. Great read for brushing up on formal fundementals.
All about the inner workings of Flow and how its gradual type system was implemented, and some of the design decisions that went into it.
Hypergraphs: First Properties
Various different mathematical properties and their importance in regards to hypergraphs.
Advanced Programming Language Design*
Deep dives into programming language features and tradeoffs for when building and designing a programming language.