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, API Integration...
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

Part-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, API Integration, REST APIs, Front-end Development, Full-stack Development, Back-end, Prisma, Front-end, Ruby on Rails 2, Amazon Web Services (AWS), Data Encryption

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, Stripe, API Integration, REST APIs, Angular, Front-end Development, Full-stack Development, Back-end, Front-end, Amazon Web Services (AWS), Data Encryption

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, API Integration, REST APIs, Front-end Development, Full-stack Development, Back-end, Front-end, Ruby on Rails 2, Data Encryption

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, Stripe, API Integration, REST APIs, Front-end Development, Full-stack Development, Back-end, Front-end, Data Encryption

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.

Skills

Libraries/APIs

React, jQuery, SDL, REST APIs, OpenGL, OpenGL ES, WebGL, Node.js, Stripe

Tools

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

Languages

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

Frameworks

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

Paradigms

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

Platforms

iOS, WordPress, MacOS, Linux, Arduino, Raspberry Pi, Android, Amazon Web Services (AWS), 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), Software Architecture, Full-stack, API Integration, Front-end Development, Full-stack Development, Back-end, Front-end, Multithreading, Animation, Web Project Management, Art Direction, Copywriting, Game Physics, APIs, iOS Camera, Hardware, Smart Appliances, Data Encryption

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