He has a comprehensive knowledge of the latest front-end tools, techniques and libraries. ...
On more than a few occasions, Michael has rescued me from a predicament...
TimeyTim - Your Scheduling API
Once upon a time I built a website that needed scheduling - both one-off and recurring events. I had some difficulty dealing with calendars and RRules and CRON and knew there could be a better way.
I've always been interested in time-based projects (see izuded), and liked the idea of a low-cost implementation of scheduling functionality that could be accessed through an API.
During the first few months of 2020, I built such a product.
TimeyTim lets you to schedule Tasks (e.g., "Clean up the database every Saturday at 3am"), Monitors ("Alert me if my homepage is missing its logo"), and Watchdogs ("Any time the server reboots, let me know if it's not back online in 2 minutes").
The back end is built with AWS Lambda and DynamoDB and the front end is built using TypeScript, ReactJS, and Gatsby.
Kindur (on Crunchbase) helps baby boomers manage their money so they can "retire fearlessly".
In this role, I did work on the NodeJS back end but my primary responsibility was in leading the development of our marketing site.
I researched and selected technologies to improve site performance, set up CI/CD pipelines using CircleCI, Gatsby, and Netlify, and designed a streamlined architecture that let us move fast (and not break things).
To increase UI consistency and reduce the workload for the back end engineers, I built a shared components library that automatically deployed to NPM with each merge to master. This minimized the work required to keep our front and back ends in sync, while also allowing us to experiment with new semantic versions without any cross-team dependencies.
In addition, I mentored a junior developer and together we implemented a design system that enabled us to quickly translate Sketch and Invision mockups into functional components.
Financial data from Bloomberg L.P. has traditionally been served via the Bloomberg Terminal, a fixture in the offices of investment firms worldwide.
In order to serve customers seeking to process data using their own in-house systems, Bloomberg launched the Enterprise Access Point in March 2018. Through the Enterprise Access Point, customers can browse datasets and purchase packages of bulk financial data to import through an API.
In my first year at Bloomberg, I was one of the three developers working on the user-facing components the site, using Express.js on the server and React on the front end. Never before had I worked on a web application as complex and thoroughly-tested, utilizing Jest, Mocha, Nightwatch.js, and Jenkins servers for continuous integration.
iz u ded? is a simple utility with a unique value proposition.
I adopted a puppy and morbidly realized that, if I were to be hit by a bus on a Friday, it might be a few days before anyone knew I was unavailable to care for him.
With a tongue-in-cheek presentation of a serious matter, I started building izuded.today.
This application is an exercise in minimalism. It uses no JS frameworks (jQuery only), no datastore (except for a few bits of data stored in Auth0), and no "servers" (except for AWS S3 & Lambda). With this architecture, the initial cost to run the application will be $1 / month.
Hyr (on CrunchBase) is building a marketplace to efficiently connect traditional companies - like restaurants and bars - with independent labor to fill hourly paid shift work, on demand.
I helped architect and implement a "serverless" application for the startup's prototype.
In so doing, I touched many AWS tools, including Lambda, CloudSearch, Elastic Beanstalk, DynamoDB, RDS, SNS, SQS, and SWF.
I learned how to divide an application's functionality across disparate microservices communicating over SQS, SNS, and HTTPS, and discovered rough edges (and workarounds) in the technologies used in this latest trend in software development.
Emergency phone numbers for families.
Subscribers receive a personal phone number for easily reaching emergency contacts.
Depending on the configuration of the Foghorn number, incoming calls are routed to trusted contacts in tiers, with each incident generating phone, email, and sms notifications.
Ad-hoc mailing lists serve to keep people informed while they resolve each incident.
From the backend to the front, I'm using Heroku, Postgres, AWS SQS, CoffeeScript, Fluxxor and React. My favorite aspect is the integration with Codeship to perform continuous delivery.
Foghorn will be live Q1 2017 edit: since taking on full-time employment, I've had to put this project on the back burner, but I still love it and intend to launch! (Just as soon as I have the time...).
This screencast shows a bit of the functionality:
They needed tools to manage this content. They provided the APIs and I built the interface using React, Fluxxor and CJSX. It's private, but here's a screencast describing it:
This team writes excellent code and taught me lessons like the priceless "code you don't write doesn't break."
In addition to various co-founder responsibilities, I built the administrative interface, multiple iterations of our consumer-facing product, and managed 3 outside developers. With user-specific dietary settings, our proprietary dietetic database, and GrubHub's API, we generated emails containing healthy meal options for our subscribers.
Clicking a healthy meal option would then place the order through GrubHub's API so subscribers could stick to their diets without needing to plan ahead or face the decision fatigue (and poor dietary habits) of typical online ordering.
Hotlist (defunct) was a location-based social media platform that used Facebook social graph data to help users make plans and predict the crowds at millions of venues worldwide.
I worked in a tight-knit 3 developer team building Hotlist's web product used by hundreds of thousands of users.
The main challenge was in keeping the UI performant and easy to use across multiple browsers in the days before Angular and React.
One of my favorite contributions was a library that matched the jQuery.getJSON() method and improved performance by a factor of 5+ for browsers supporting HTML5 Web Workers.
Powered with by Gatsby 2.0