Hi, I'm Eric Kwoka. I am a Full-Stack Engineer and User Experience Professional

Scroll Down

Most DevelopedSkills

A sampling of the core technologies I have become talented in. There are always more things to learn, but I have found a lot of the underlying skills here to be transferrable as I explore new technologies.

  • PreactPreact/React
  • TypeScriptTypeScript
  • Tailwind CSSTailwind CSS
  • ShopifyShopify Liquid
  • AlpineJSAlpine

ProjectCustom Spotify Webapp

Custom Spotify Webapp

This is my attempt at recreating Spotify but with some (imho improved) UI/UX as well as extend it with additional features.

This project is built on top of a custom scaffold I put together I call a PETT App.

At the core is Preact (a lightweight React alternative) coupled with some custom utilities and the Spotify API and Web Playback SDKs to enable a powerful native-like experience.

This is complemented by esbuild for 🔥 BLAZINGLY FAST 🔥 build times. So fast there isn't a need for a special dev server.

Note: This project is still a work in progress and is not accessible by users that have not been manually approved. This is a restriction imposed by Spotify. For access, just message me!

  • PreactPreact/React
  • FaunaDB
  • Spotify Web SDK
  • esbuildesbuild
  • Netlify Functions
  • TypeScriptTypeScript
  • Tailwind CSSTailwind CSS

ProjectDok-Dabang eCommerce

Dok-Dabang eCommerce

A demonstration eCommerce site for a Cafe.

This uses a custom Static Site Generator to build the site from Liquid templates and JSON Data. The whole build pipeline was architected from scratch.

This project was the 🏆 Winner 🏆 for Webjam 11!

  • AlpineJSAlpine
  • ShopifyShopify Liquid
  • Tailwind CSSTailwind CSS

PackageWeak LRU Cache

A simple implementation of an LRU cache that expires items with Weak References to allow the cache items to continue to be reused until garbage collected.

Implements the entire Map api, allowing easy drop in usage in existing apps using Maps to cache responses.

NPM VersionNPM DownloadsMINZIPPED SizeNPM Type Definitions

PackageSpotify API

Born from my own difficulties using other wrapper libraries for Spotify, this library seeks to be the best possible API wrapper.

  • 🏷 Types out of the box!
  • 🌴 Treeshakeable and composable!
  • ⚡️ Improved performance from the intelligent use of caches and batching!
  • 🏗 Consistent Behavior through normalized return types!
  • 🦕 Supports Deno and Bun out of the box!
NPM VersionNPM DownloadsMINZIPPED SizeNPM Type Definitions

PackagePreact Global State

A simple, lightweight global state manager, now with 100% more Signals!

Perfect for enabling simply access to globally available state from anywhere in your app, only as needed.

NPM VersionNPM DownloadsMINZIPPED SizeNPM Type Definitions
View all packages

Open SourceContributions

AlpineJSAlpine

Swap mainfields in build script

This reduces the build size of the AlpineJS module by ~20%

ShopifyShopify Dawn Theme

Change CSS for browser compatibility

Lists inside of :not() selectors are not supported in Samsung Browser, but chaining :not():not() is support in all major browsers

AlpineJSAlpine

Prevents Coercion of Space to Minus

Fixes a bug in which Space and Underscore key presses were being coerced into a 'minus' keypress in key handlers

Flamethrower Router

Performance Optimizations

Improves the performance of the DOM diff'ing algorithm, optimized for the most common scenarios.