Jonathan Alfred Weekes, Software Developer in Saint Leonards, United Kingdom
Jonathan Alfred Weekes

Software Developer in Saint Leonards, United Kingdom

Member since January 12, 2019
Having worked in developer roles for eight years, Jonathan has an intuitive and grounded understanding of scalable front-end and back-end web development, Mac OS and Linux software development and architecture, and iOS and Android app development both in a professional and personal context.
Jonathan is now available for hire




Saint Leonards, United Kingdom



Preferred Environment

Git, Xcode, Sublime Text, MacOS, Linux

The most amazing...

...thing I've built has to be Weave. It's a multi-platform server/client model GLSL editor and real-time controller software I've written in C++.


  • Software Engineer - Remote

    2016 - 2018
    Analog Republic
    • Worked on a web app using a bespoke PHP MVC and Docker to provide secure back-end API and front-end with a user system with 2FA login, internal messaging system and a whole lot of forms!
    • Worked on OpenGL OSX desktop app implementation of their IP remote team management and communications software implementing an undocumented beta version C AV streaming SDK into AVFoundation I/O.
    • Built native iOS and Android scanning apps to scan a ticket and check its code against an API (which I also built) that was used to scan thousands of tickets at a festival. I built apps for both platforms in one day!
    • Developed a "scarf builder" UI module for RedBull that allowed you to add, remove, drag and drop, resize and rotate "stickers" onto a scarf as well as pick a backdrop. This would all then be rendered into a canvas and be saveable as a PNG.
    • Put together a radio popup for Pearl Jam that tapped into their already running Icecast and streamed it through an HTML5 audio tag.
    Technologies: OpenGL, Docker, Gulp.js, SCSS, JavaScript, GoLand, Go, C, PHP, Java, Objective-C, Swift, Android, iOS
  • Software Engineer

    2015 - 2016
    • Maintained and deployed new instances of their web app for management in the manufacturing industry. A lot of work on new instances was done to build reports output, I took the initiative and built a system to do this automatically.
    • Picked up a proficiency for Ruby and, while I do prefer Golang, currently I have a soft spot for Ruby because of how poetic it can be.
    Technologies: YAML, Ruby on Rails (RoR)
  • Software Engineer and Full Stack Developer

    2013 - 2015
    Playne Design
    • Worked in-house at Playne Design took me from simple dynamic business websites with a CMS to a fully fledged social media platform for a London Council.
    • Picked up a lot of my PHP experience here as a lot of projects were making WordPress become far more than just a blogging tool.
    • Used Python and Ruby on Rails to build an in-house server infrastructure to speed up internal processes like testing HTML emails. I also used a set of Git hooks to provide an easy way to push to a local staging server smoothing out web development workflow in our team nicely.
    • Worked side by side with a designer to ensure every element of the finished product was up to standard. I still employ this methodology in my larger freelance contracts to this day.
    Technologies: Python, Ruby on Rails (RoR), WordPress, PHP


  • Jet2 Installation iOS App (Development)

    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.

  • Sauce (Development)

    My involvement in this project consisted of building a front-end full-page presentation utilizing bespoke smooth scroll-based JavaScript animation engine, Gulp / SCSS / UglifyJS for production-level compression and compatibility and Golang based HTTPS web server and AJAX endpoints for a contact form and mailing list registration using the SendGrid API. I also worked as a 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.

  • Tz-Brute (Development)

    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.

  • Artisan (Development)

    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 colors, 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 imaginable by providing an array of vertices
    Everything is rendered with an APPEARANCE object that can define its 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

  • Weave (Development)

    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.

  • Waveform (Development)

    Waveform is a digital video synthesizer 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 randomizes 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 standardize 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 the output from that shader into the device's photo library.


  • Languages

    CSS, HTML, JavaScript, Python, Lua, PHP 7, Go, Ruby, C++, Swift, SCSS, HTML5, CSS3, Java, PHP, YAML, Objective-C, C
  • Frameworks

    Ruby on Rails (RoR), PHP MVC
  • Libraries/APIs

    jQuery, SDL, React, OpenGL, OpenGL ES, WebGL, Node.js
  • Tools

    Xcode, Sublime Text, Gulp.js, Makefile, Git, Android Studio
  • Paradigms

    Object-oriented Programming (OOP), Concurrent Programming, Cross-platform
  • Platforms

    iOS, WordPress, MacOS, Linux, Arduino, Raspberry Pi, Android, Docker, Windows
  • Storage

    MySQL, MySQLi, PostgreSQL, MongoDB, AWS S3
  • Other

    AVFoundation, User Experience (UX), Ajax, User Interface (UI), MVC Frameworks, Content Management Systems (CMS)

To view more profiles

Join Toptal
Share it with others