Jonathan Weekes
Full-Stack Developer and Software Engineer
Introduction

(FYI this resumé is a far better experience online, check it out here: e.rroneo.us/portfolio)

Having worked in developer roles since the age of 18 (for 6 years) I have an intuitive and grounded understanding of scalable frontend and backend web development, Mac OS and Linux software development and architecture and iOS and Android app development both in a professional and personal context.

Throughout my career I've put my skillset towards building a social media web app for a London council, building mission critical web UI for a Redbull campaign (supporters.redbull.com), having a little part in Pearl Jam's website (!), building an iOS app for the airline Jet2's Party Plane and much much more.

I also create art under the pseudonym erroneous using purpose built software – the development of which becoming part of the artistic process.

My main skills include but are not limited to:

  • iOS Development
  • Android Development
  • OpenGL / OpenGL ES
  • REST API Development
  • C++
  • Swift
  • Java
  • Golang
  • Ruby / Ruby on Rails
  • Python
  • Lua
  • PHP
  • JavaScript
  • Gulp / SCSS

I'm available in a freelance capacity for frontend and backend web development, Mac OS and Linux software development and architecture and iOS and Android app development.

You can also now find me on TopTal: toptal.com/resume/jonathan-alfred-weekes

My email is: jon@e.rroneo.us.
Feel free to drop me a message!

Recent Work
Jet2 Installation iOS App
Freelance - March 2019

This project was a fun one. It involved building an app to work as an interface for an installation that toured around many major cities in the UK, picking up hundreds of videos and registrations to the Party Plane competition as it went (all over cellular internet too!).

Needless to say there was no room for error and this app needed to be extremely robust to take on the sheer amount of users it'd be encountering in every city on top of the necessary use of mobile data to send / receive all data. With this in mind I made sure to buffer API requests (which either get sent and removed from the buffer or left in the buffer if the request fails) and to keep everything securely backed up.

The app also featured a way to change the camera settings using a settings pane. This allowed the exposure bias, manual exposure, and RGB tint to be tweaked on site to ensure a perfect image output and avoid unusable content.

Additionally I was called in to do some web work to facilitate the process of registering the (uploaded on the fly) YouTube videos with Jet2's servers, saving the team a lot of hassle at a mission critical time.

See work
Sauce
Freelance - August 2018

My involvement in this project consisted of building a frontend full page presentation utilising bespoke smooth scroll-based JavaScript animation engine, Gulp / SCSS / UglifyJS for production level compression and compatibility and Golang based HTTPS webserver and AJAX endpoints for contact form and mailing list registration using the SendGrid API. I also worked as project manager, art director, copyrighter and took full creative control over every animation.

The best part of this project has to have been thinking up and building the animations, specifically the HTML5 canvas based waving flag and the tip jar that uses a physics engine to realistically animate coins.

This combined with Matt's brilliantly tailored design makes this a fantastic addition to my portfolio that I'm very proud of. You can check out Matt's other work here.

See work
Tz-Brute
Personal - September 2018

Tz-Brute is a multicore password bruteforcing tool I built in Python to help contributors to the Tezos ICO that lost their passwords. The best part of this project has to have been making it threaded.

See work
Artisan
Personal - Ongoing

Artisan is a GPU powered 2D game engine built in C++ with embedded Lua for scripting. The entire C++ binary does all the hard work and provides an API for the Lua which is automatically loaded with assets and queued using the file system in a unique way that's intended to be intuitive for game developers.

Current Artisan features:

  • Scriptable scenes
  • Powerful state based scriptable entity system
  • Animated sprites (using spritesheets)
  • Pixel perfect collision between lines, circles, squares and fully custom polygons
  • Abstractions for colours, points and rects and simple methods for their interpolation
  • Robust sound and music playback
  • Simple to use perlin noise and randomness generation
  • Mouse and keyboard user input
  • GPU based primitive shape engine capable of drawing pixels, lines, circles, ellipses, arcs, rings, rectangles (with rounded corners if needed), triangles and any polygon imagineable by providing an array of vertices
  • Everything is rendered with an APPEARANCE object that can define it's transformation (anchor, scale, rotation), transparency, tint, blend mode and antialiasing type
  • GLSL effects system with Lua controllable uniforms to render fragment shaders on anything with a texture
  • Raw bitmap objects available within Lua for isolated rendering

Artisan features currently in development:

  • Map data and tileset loading and reading/writing/rendering
  • Sessions system to store current scene and other data between scenes and to be saved to disk (acting as a saved game)
  • Box2D physics engine integration with simple abstraction layer
  • Database system for static game data (e.g. inventory data, item lists, etc)

Weave
Personal - Ongoing

Weave is a real-time OpenGL interface harnessing the power of a bespoke form of GLSL with a more linguistic approach. this is partnered with extensive interfacing for live manipulation of runtime variables through software or hardware (MIDI / DMX) controllers.

I'm currently rebuilding Weave in C++ to run on Mac OS, Windows and Linux and to provide systems to layer fragment shaders over each other like a contemporary form of Photoshop or After Effects.

During this process I've also separated the rendering engine from the controller by embedding a socket server in the renderer. This socket can be used to change any aspect of the render even over the internet from anywhere in the world. Additionally a console and basic control system is provided via an embedded HTTP server which when navigated to on a browser automatically connects to the renderer.

See work
Waveform
Personal - Ongoing

Waveform is a digital video synthesiser built for mobile devices, rendering to an OpenGL ES view. It provides UI to choose from a set of different types of waveform against the red, green and blue channels of the output image as well as a music reaction toggle that randomises selected options when it hears a beat using FFT processing on the raw mic audio samples.

Additionally an interface for blending videos / photos from your image gallery allows for some beautiful results especially when used in conjunction with glitchy "vertex mangling".

Although Waveform was originally an iOS app I'm currently developing a way to smooth out the workflow of building and releasing OpenGL ES Art apps in both Android and iOS using a custom Android library and a custom CocoaPod.

These will standardise the process in which I develop bespoke UI and provide an OpenGL ES context that automatically loads a fragment shader and systems to record and save output from that shader into the device's photo library.

See work
Employment History
Full-Stack Developer and Software Engineer / Architect
Self-employed
July 2018 - Present
Software Engineer - Remote
Analog Republic
June 2016 - June 2018
Software Engineer
Flowlens
October 2015 - May 2016
Software Engineer and Full Stack Developer
Playne Design
April 2013 - July 2015