Hey, i’m Eric.

I’m passionate about hyper optimized websites and I’m a really, really persistent person.

Self portrait of me holding an old king charles spaniel blurred background layer of me holding a king charles spaniel

My first experience programming was at 12 years old piecing together a bash script to brute force the wifi password so I could play games at night.

Today I’ve been coding almost every day for over a decade. With more than 6 years of mostly web related general contracting experience for startups, small businesses and some of the largest social media creators in the world.

I run the Tipsy Bartender website for Skyy (@tipsybartender), and i'm currently building my own static website framework that I use for all of my projects.

Professional Work

gold tipsybartender logo gold tipsybartender logo - blurred background layer
Principal Full Stack Developer 2021 - Present

Tipsy Bartender

Late 2021 I was asked to take over the Tipsy Bartender website. It’s been an interesting journey learning how to best operate a high traffic website along with a massive tech migration.

oscar akermo portrait oscar akermo portrait - blurred background layer
Lead Developer 2021

Tattoo Mastery Course

Sales pages built for a tattoo course. An analytics heavy project aiming to create an optimal sales funnel for a facebook ads traffic source.

fbe superfam logo fbe superfam logo - blurred background layer
Lead Developer 2020

Superfam Membership Website

A patreon like tiered subscription service created for the React social media group.

tipsybartender exclusive icon tipsybartender exclusive icon - blurred background layer
Lead Developer 2020

Tipsy Exclusive Bartending Course

A bartending course product spanning from checkout pages to video hosting.

neon tipsybartender logo neon tipsybartender logo - blurred background layer
Full Stack Developer 2019

Tipsy Bartender

Upgrading & managing the website, dev tools and infrastructure. I was brought on to help speed up general development.

What Interests Me

Over the years i've watched every programmer I know burn out occasionally or indefinitely. Creating a belief that long term productivity with coding & product creation requires simplicity over anything.

I've become fixated on this workflow problem primarily from two angles - The solutions and the process.

Solution wise i've started focusing on what I call 80% solutions. The goal is to achieve only 80% of the desired features while eliminating at least 80% of the time & complexity. This leads to a lot of differences in project architecture like often working with JSON files directly instead of databases. Or almost always avoiding the need for servers by thinking about how else something could be done.

Process wise it's all about standardization. Currently i've figured out how to unify my code structure for all of my NodeJS server projects, and all of my website projects. I've created a library of tools managed by one terminal command that automatically handles all of the typical process for these projects. From setup, development features, deployments and more.

Now I finish ~1-2 projects per month, but more importantly I feel no burn out. It's allowed me to start helping people for very little mental effort. And currently I'm expanding my setup into cross platform 2D WebGL games.

Personal Work

Most of my personal projects revolve around my ecosystem of reusable code.

For NodeJS I run a private package system stored on BunnyCDN and imported into projects from a command line module. All of my websites use a library free static compiler, markup language and automatic website optimizer that are self made.

Project code is backed up to two storage regions in BunnyCDN & AWS S3 daily. I love Git but no longer use it for personal work as it started causing problems with no benefits.
2024
July
Repairathon Website (repairathon.ca)
AnimeJS
HTML
SCSS
JS
I created a website for the volunteer group running Ottawa's first repairathon. I integrated AnimeJS for subtle animations while still maintaining perfect benchmark scores.
June
Portfolio Website
WebGL
HTML
SCSS
JS
Created an HSV colour picker only populated with RGB values that pass WCAG contrast checks for white, black and both. Used a Voronoi algorithm to populate the empty space in the hue images between valid colours.
April
WCAG Color Picker
NodeJS
Fastify
HTML
SCSS
JS
Created an HSV colour picker only populated with RGB values that pass WCAG contrast checks for white, black and both. Used a Voronoi algorithm to populate the empty space in the hue images between valid colours.
February
Cold Calling Automation
C++
Arduino
NodeJS
Web Sockets
Created a fake bluetooth mouse using an esp32 device. It maintains a serial connection to my computer to receive instructions, and a bluetooth mouse connection to my iPhone. Enables me to start & end phone calls from my computer keyboard without ever touching my phone. C++ was required for latency reasons.
January
Cold Call Manager
NodeJS
Web Sockets
HTML
SCSS
JS
Created a socket based NodeJS app that syncs a phone to a “master” computer. The app reads a spreadsheet determining what companies are available to call. Records when I called a business along with call statuses & call notes.
Small Business Finder
NodeJS
Google Places API
Puppeteer
A lead finder & qualifier. Accepting a search term and country, makes a Google Places search in all somewhat populated cities for that country. Gets the details for every unique place found, analyzing their website for faults if one exists.
2023
December
Computer Backup Tool
NodeJS
Bash
Daemon
BunnyCDN
AWS S3
A terminal command that uses NodeJS to backup my files to two storage zones in both BunnyCDN & AWS S3. A daemon executes the script twice per day.
August
WebGL Rendering Engine
WebGL
Graphic Shaders
HTML
CSS
JS
Graphics programming had started to fascinate me so I spent 2 months learning barebones WebGL and ES SL shaders. Ended up with a renderer that supports proper bloom, sun shafts and reflections among other basic graphic features.

Runtime is great for a browser, at half resolution it runs at ~1-3ms/frame (300 - 1000 fps) on an integrated macbook GPU. It leaves enough performance overhead for a simple game to run on.
April
Smart Image Saver
NodeJS
NPM
An NPM package I made for conveniently saving images locally. Supports image converting with sharp, automatic output folder creation & simplified handling of destination paths.
Prompt GPT
NodeJS
NPM
ChatGPT
An NPM package I made for ChatGPT & GPT 4 that handles rate limiting, concurrency, timeouts and response validation.
March
Tired CLI
NodeJS
Bash
Puppeteer
BunnyCDN
The first version of my global npm package that manages my private code
February
Better Debounce
JS
A debounce function that's more reliable, performs better & indicates why it's executing the debounced function.
2022
October
Halloween Show Editor
HTML
CSS
JS
NodeJS
Youtube API
The most complex UI i’ve built. Scrapes youtube for the mp3 of a target song. Renders a timeline for 5 laser displays and 7 lights. Allows users to create & configure events on the timeline for each individual device.
Halloween Laser Path Generator
HTML
CSS
JS
Created a UI that allows users to create RGB path points that get exported to JSON instructions for the laser projectors. I stored the design instructions in querystring so it could be easily shared, edited and stored without the need for a server.
2020
November
Telnetflix
WebGL
Graphic Shaders
Adobe After Effects
HTML
CSS
JS
My friend built a program that renders movies to text over SSH so I built him a simple website that displayed the available movies so he could share his work more easily.

I used WebGL & Shader code to make two transition animations between movies. Both of the animations making up the intro sequence were made in Adobe After Effects. It was a lot of fun putting together the visual components for this project.

contact@tired.dev

I love working on interesting things. If you need help with anything or just want to chat send me an email.