Jonathan Alfred Weekes, Developer in Saint Leonards, United Kingdom
Jonathan is available for hire
Hire Jonathan

Jonathan Alfred Weekes

Verified Expert  in Engineering

Software Developer

Saint Leonards, United Kingdom

Toptal member since March 11, 2019

Bio

Jonathan has twelve years of experience performing development roles. He has an intuitive and grounded understanding of scalable front-end and back-end web development, macOS and Linux software development and architecture, and iOS and Android app development—both in a professional and personal context.

Portfolio

Owens Corning
Ruby on Rails (RoR), Ruby, React, Next.js, Full-stack
Midea
Arduino, Hardware, Smart Appliances, Full-stack
Analog Republic
OpenGL, Docker, Gulp, SCSS, JavaScript, Go, C, PHP, Java, Objective-C, Swift...

Experience

  • JavaScript - 11 years
  • React - 7 years
  • Ruby on Rails (RoR) - 6 years
  • C++ - 6 years
  • Swift - 4 years
  • PostgreSQL - 4 years
  • Go - 3 years
  • WebGL - 3 years

Availability

Full-time

Preferred Environment

Git, Xcode, Sublime Text, MacOS, Linux

The most amazing...

...project I've built has to be Bismuth, an experimental dynamically typed embeddable and extensible language and bytecode VM built from scratch in C++.

Work Experience

Software Engineer

2019 - 2025
Owens Corning
  • Developed a fully bespoke data-focused framework and front-end "everything CMS" in React and later also Next.js that allowed the company to absorb a majority of their web presence into manageable content over time, saving a lot of money and time.
  • Created a documented themeable user interface framework and fully featured component library from scratch with the goal of fully utilizing Next.js' optimizations. This completely removed layout shift and sped up page load by 6-8x.
  • Engineered a solution in Rails, bridging product management systems to provide an interface and syncing process for brand-related resources.
  • Built a blazer report modification user interface editor that allowed a user to create a set of fields with different interfaces to be used within the SQL of a blazer report.
Technologies: Ruby on Rails (RoR), Ruby, React, Next.js, Full-stack

Arduino Developer

2019 - 2019
Midea
  • Developed a fully featured scheduling and control library in C++ for an Arduino in a prototype dishwasher.
  • Fully documented in a user-friendly way and created a shorthand system utilizing overloaded operators to easily control each part of the cycle.
  • Fully ensured the product's usability by the team by building a testing workbench with my own Arduino on a breadboard and extending my scope to parts of the code that weren't initially in scope.
  • Maintained solid communication with engineers and developers at Midea to ensure everything worked well by their strict deadline and in time for a trade show to demonstrate the prototype.
Technologies: Arduino, Hardware, Smart Appliances, Full-stack

Remote Software Engineer

2016 - 2018
Analog Republic
  • Worked on a web app using a bespoke PHP MVC and Docker to secure a back-end API and a front end with a user system using 2FA login, internal messaging system, and many forms.
  • Worked on OpenGL macOS 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 made apps for both platforms in one day.
  • Developed a "scarf builder" UI module for RedBull that allowed to add, remove, drag and drop, resize and rotate "stickers" onto a scarf as well as pick a backdrop. This would then be rendered into a canvas and be saveable as a PNG.
  • Composed 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, SCSS, JavaScript, Go, C, PHP, Java, Objective-C, Swift, Android, iOS, PostgreSQL, User Experience (UX), User Interface (UI), Xcode, CSS3, MySQL, HTML5, PHP 7, PHP MVC, Git, Cross-platform, Node.js, WebGL, Android Studio, Amazon S3 (AWS S3), Windows, Ajax, Content Management Systems (CMS), AVFoundation, MVC Frameworks, Object-oriented Programming (OOP), Concurrent Programming, MacOS, MySQLi, Sublime Text, CSS, HTML, Multithreading, Software Architecture, Animation, APIs, iOS Camera, GLSL, Full-stack

Software Engineer

2015 - 2016
Flowlens
  • 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 created a system to do this automatically.
  • Worked from beginning to end, ensuring the app's new instances worked to each client's unique specifications through interpreting and developing those specifications into Rails back- and front-end architecture.
  • Picked up a proficiency for Ruby, and while I do prefer Go, I currently have a soft spot for it.
Technologies: YAML, Ruby on Rails (RoR), User Experience (UX), User Interface (UI), JavaScript, CSS3, jQuery, MySQL, HTML5, Ruby, Git, Ajax, Object-oriented Programming (OOP), Concurrent Programming, SCSS, Sublime Text, CSS, HTML, Software Architecture, Animation, APIs, React, Full-stack

Software Engineer and Full-stack Developer

2013 - 2015
Playne Design
  • Worked in-house at Playne Design, 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 many 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 Git hooks to automate deployment on a local staging server to smooth out their web development workflow.
  • 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), PHP, User Experience (UX), User Interface (UI), JavaScript, Linux, CSS3, jQuery, WordPress, MySQL, HTML5, PHP 7, Ruby, Git, Ajax, Content Management Systems (CMS), Object-oriented Programming (OOP), Concurrent Programming, MySQLi, SCSS, Sublime Text, CSS, HTML, Multithreading, Software Architecture, Animation, APIs, Full-stack

Experience

Bismuth—Programming Language and Bytecode VM

A completely custom dynamically typed programming language and virtual machine stack built from scratch in C++. It's bindable to any C++ project and extendable through dynamic libraries. This project is a lot of fun to work on, building experimental features I'd like to see in a language and optimizing the VM to be faster than Python!

Jet2 Installation iOS App

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!).

There was no room for error, and this app needed to be highly robust to take on the sheer number 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 (either get sent and removed from the buffer or left in the buffer if the request fails) and 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 registering the (uploaded on the fly) YouTube videos with Jet2's servers, saving the team a lot of hassle at a mission-critical time.

Automata

https://anom.li/automata/
Automata is an app that houses a domain-specific language, editable with custom React UI, for creating cellular automata effects (like John Conway's Game of Life). The DSL compiles down directly into GLSL, which is then used to render the effect on a canvas preview. You can play around with the presets on the left to see what's possible.

Conv.li

https://conv.li/
Creating a website that attempts to convert anything into anything else was a very fun project. The development culminated in me creating a domain-specific language that is written in the URL, fully supporting variables, functions, and expressions; it successfully calculates Fibonacci!

Artisan

Artisan is a GPU-powered 2D game engine built in C++ with embedded and extended Lua for minimalist scripting.

The focus of Artisan is to provide a powerful and efficient but intuitive and simple development environment for prototyping, building, and deploying native interactive experiences.

Artisan currently features:
• Lua extension headers to provide a more modern, minimal, and linguistic language with array and hash types, classes, and more
• Full pretty print logging of every object type in Lua
• Vector drawing API
• Powerful texture manipulation for transformation and a GLSL rendering pipeline to apply GPU shaders (with a feedback mode that can be used to make GPU cellular automata)
• Box2D physics
• Audio and music

Tz-Brute

https://github.com/NODESPLIT/tz-brute
Tz-Brute is a multicore password brute-forcing 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.

Sauce

My involvement in this project consisted of building a full-page front-end presentation utilizing a bespoke smooth scroll-based JavaScript animation engine, Gulp/SCSS/UglifyJS for production-level compression and compatibility, and Go-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, copywriter and took complete creative control over every animation.

The best part of this project has been thinking up and building the animations, specifically the HTML5 canvas-based waving a 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.

Skills

Libraries/APIs

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

Tools

Xcode, Sublime Text, Gulp, Makefile, Git, Android Studio

Languages

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

Frameworks

Ruby on Rails (RoR), PHP MVC, Next.js, Box2D

Paradigms

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

Platforms

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

Storage

MySQL, MySQLi, PostgreSQL, Amazon S3 (AWS S3), MongoDB

Other

AVFoundation, User Experience (UX), Ajax, User Interface (UI), MVC Frameworks, Content Management Systems (CMS), Full-stack, Multithreading, Software Architecture, Animation, Web Project Management, Art Direction, Copywriting, Game Physics, APIs, iOS Camera, Hardware, Smart Appliances

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring