
Jonathan Alfred Weekes
Verified Expert in Engineering
Software Developer
Saint Leonards, United Kingdom
Toptal member since March 11, 2019
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
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
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
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.
Arduino Developer
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.
Remote Software Engineer
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.
Software Engineer
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.
Software Engineer and Full-stack Developer
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.
Experience
Bismuth—Programming Language and Bytecode VM
Jet2 Installation iOS App
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/Conv.li
https://conv.li/Artisan
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-bruteSauce
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
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring