Hello! I’m David. I build full-stack web applications using TypeScript, React, and many other interesting libraries in the JavaScript and Node.js ecosystem.

On this website I share my thoughts on programming - from coding experiences, to projects I’ve built and even a bit of computer science basics. I hope you find my content useful.

Thanks for visiting! You can reach me at email.


  • Published on

    The Generic Tree Data Structure

    For good measure, I periodically review fundamental programming concepts - in particular, algorithms and data structures. In this article, I'd like to walk through my design and implementation of a generic tree data structure.

  • Published on

    Practice SQL with MySQL and Docker

    All my projects thus far favor NoSQL document databases such as MongoDB or Firebase's Cloud Firestore. To brush up on my backend developer skills, I thought it time to dive into SQL and relational databases. In this article, I'll cover a simple setup to manually issue SQL commands against a MySQL database running inside a Docker container.

  • Published on

    Lessons from Building Memowise

    Yesterday, I released the latest version of Memowise - now a complete CRUD application with GitHub authentication. Over the last two weeks its size and complexity grew large enough for me to experience pain points in my development process. This article covers what I did right and what I can improve on the next project.

  • Published on

    Lint on Commit

    On a recent project, I decided to give lint-staged a try. For those who don't know, it's a tool that runs linters against staged git files, thus preventing poor code from slipping into the project code base. As I followed two example projects using lint-staged, here and here, I began to stumble down yet another rabbit hole of tooling pain.

  • Published on

    My Todo MVC

    Today, modern web applications use some flavor of the MVC pattern with the aid of a client-side framework. Having missed the pre-frontend framework era, I asked myself if I really understood this foundational pattern? To answer this question, I decided to build an app that adhered to the basic premise of MVC. This article discusses key points of my implementation.

  • Published on

    A Design Concept for a Travel Website

    A recent job posting led me to travelsalem.com. The website design is arguably dated and navigation proved to be cumbersome using the complex menu system. Then I ran into bugs.

    It didn't take long to realize the site needed a modern design. As a personal challenge, I built a one-page demo to address the issues I experienced and perhaps sparks ideas about how best to improve the website's utility. This article explains my design decisions.

  • Published on

    My Website

    For years I've had a reserved spot on the internet - my own domain. I built my first blog using Jekyll and Sass. Then I redesigned the site, again and again. And yet I never published one article. This is my new website - built using Gatsby and Tailwind CSS, and it's the first site I'll actually use. Here's why.