Hi, I'm Callum

I'm a front-end developer focusing on my development from a holistic perspective, how it can assist and grow a business or product.

My Work

Journey Advenia

Tech Stack:

React | Gatsby | Emotion | Stripe API & Checkout

Brief:

Aiden wanted a fast, minimalist website to sell his fiction novel, Journey Advenia. It needed to be able to process payments and notify Aiden of shipping details and customer purchases.

Overview & Rationale:

I settled on React and Gatsby as the front end frameworks. Gatsby meant the website would be exceptionally fast, as it statically generates the site at build time. Alongside this, using React allowed me to build out components quickly, using Emotion to create styled-components. Unfortunately, due to the release time frame getting moved forward, there wasn't time to build a custom checkout (which I planned initially). As a result, I integrated the website with Stripe Checkout. This means Aiden can modify product details through his Stripe dashboard, with the changes reflected through the website via API requests. Load times for aidenkinder.com hover around 200ms to 400ms (as measured by pingdom.com). These speeds allow for a great customer experience and make ordering Journey Advenia fast and simple.

Python ICO (Initial Coin Offering) Scalper

Tech Stack:

Python | Nuitka | Gate.io & Kucoin API

Brief:

When new cryptocurrencies list on an exchange, the price generally increases in the initial 30-60 seconds after listing and then drops. I wanted to create a bot that would allow me to buy in as soon as possible after the token went live and sell once I had hit a certain profit. Hopefully, this would allow me to enter trades quicker than someone manually trading through the browser. Alongside this, the running profit percentage allowed me to best gauge when to take profits.

Overview & Rationale:

I chose Python to create the bot, as its easy syntax allowed me to get an MVP up and running quickly. It also had great SDKs for both Gate.io and Kucoin, which served as a wrapper for the API calls.

I planned out the bot in fours stages:

  1. Keep pinging the API to see if the order book is available for the new coin (when the order book goes live, it means you can trade the token).
  2. Continuously check my account balance to see if I was holding any of the token, and if not keep placing buy orders.
  3. Calculate a running profit/loss percentage from the current USD value compared to the initial USD value.
  4. Sell at either a pre-determined profit target or manually upon hitting the enter key.

This Website

Tech Stack:

Good ol' HTML, CSS & Javascript | Vite | Three.js

Brief:

I needed to get something up fast as a portfolio piece for a job application. However, I still wanted the website to do something cool and demonstrate some front-end skillsets. I took inspiration from The Virtual Economy's website and created this, a space-themed interactive webpage. (I love space).

Overview & Rationale:

I considered spinning up a React, Next or Gatsby template for the project. However, I'd played around with Vite and noticed they had a "vanilla js" option. It'd be a while since I built anything out of pure HTML, CSS (well, SCSS, but still), and Javascript, so I thought I'd go back to my roots and use that as the "tech stack". In the end, three.js was going to be the primary focus, not a fancy framework. As far as websites go, this one isn't crazy. But it'll serve as a testing ground for cool three.js projects going forward. It doesn't take much to add to the website, and I'll likely keep it as a single page so I won't have to worry too much about components, i.e. navbar etc.

ISS Equipment

Tech Stack:

WordPress | ACF | PHP

Brief:

The client wanted a custom website built to display their racking and forklift range. In addition, they wanted the ability to edit and update products as needed.

Overview & Rationale:

We went with WordPress for the project, as the client's previous website also used WordPress. Using ACF meant that the client could still use the WYSIWYG editor as needed, but we had the flexibility to develop a custom them around the content. I tackled the website in a React sort of way by trying to think of everything as components. Doing so allowed me to fully utilise ACF, creating custom "groups" (essentially, components) and re-using them across the website as needed. In addition, having this design system in place enabled a faster build time. *The website is still in staging; the client is approving final designs and content.