James McMahon, Developer in Lancaster, United Kingdom
James is available for hire
Hire James

James McMahon

Verified Expert  in Engineering

Full-stack Developer

Location
Lancaster, United Kingdom
Toptal Member Since
August 2, 2021

James is a full-stack developer with several years of wide-ranging experience in web and mobile system development, using multiple languages (JavaScript, Python, and Ruby) and frameworks (Ruby on Rails and Flask). James excels at writing highly optimized distributed code in the context of microservices for web applications and distributed robotics hardware systems. Having been a software developer in the past, James understands the importance of effective communication and being a team player.

Portfolio

Alberto Eugenio Garza Castro
Mobile Development, REST, Flutter, iOS, Android, Swift, Kotlin, APIs...
Resolve Robotics
C++, .NET, Python, MQTT, Robot Operating System (ROS), Unity...
Beyond Finance, LLC
JavaScript, Ruby on Rails (RoR), Bootstrap, Agile, GitHub...

Experience

Availability

Full-time

Preferred Environment

IntelliJ IDEA, Ruby on Rails (RoR), Django, Kotlin, Flutter

The most amazing...

...optimization I've worked on involved taking a scheduling system that used to take five minutes per run and improved it to run in five seconds.

Work Experience

Mobile Developer

2023 - 2023
Alberto Eugenio Garza Castro
  • Developed real-time location tracking features of the mobile application in iOS and Android.
  • Used Flutter native bridge to implement persistent WebSocket connection in iOS and Android.
  • Implemented user experience to match the designs drawn up by designers. Used custom Flutter theming to allow the screens to be adapted as the designs evolved.
Technologies: Mobile Development, REST, Flutter, iOS, Android, Swift, Kotlin, APIs, Real-time Data, Maps, Location Services and Maps, Google Maps API, Stripe, CI/CD Pipelines, Architecture, Web Development, Full-stack Development, Cross-platform, Geolocation, Full-stack

Senior Software Engineer

2020 - 2023
Resolve Robotics
  • Chose the software stack for controlling a new robot, including the microcontroller code for driving the motors, the app code to orchestrate the microcontrollers, and the network code so the robot can communicate with the 3D user interface.
  • Managed a small team for the preparation and presentation of the inspection robot demonstration.
  • Developed a highly optimized 360° object detection system that utilized four pairs of monocular cameras for use in underwater environments.
Technologies: C++, .NET, Python, MQTT, Robot Operating System (ROS), Unity, Simultaneous Localization & Mapping (SLAM), C#.NET, Flask, C#, Linux, Databases, REST APIs, JSON, Embedded C, Data Compression, User Permissions, Microservices, HTML5, Solution Architecture, Agile, GitHub, Database Design, Technical Leadership, Software Troubleshooting, Mentorship, Back-end, Leadership, Robotics, C, Embedded Systems, ASCII, UTF-8, Embedded C++, Real-time Operating System (RTOS), Web Development, Full-stack Development, Python API, Cross-platform, Full-stack, Scrum Master

Full-stack JavaScript / RoR Developer

2022 - 2022
Beyond Finance, LLC
  • Debugged complex Sass rules and functions which had become difficult to manage.
  • Worked with the team to fix bugs in the front-end and back-end services.
  • Contributed to the code review process and the merging of conflicted code.
Technologies: JavaScript, Ruby on Rails (RoR), Bootstrap, Agile, GitHub, Software Troubleshooting, Back-end, ASCII, UTF-8, Web Development, RabbitMQ, Full-stack Development, Test-driven Development (TDD), Full-stack

Software Developer

2018 - 2020
Insiris Ltd
  • Improved the efficiency of the PLA scheduling service from five minutes to five seconds of runtime (Kotlin, Ktor).
  • Developed the new WebSockets user interface to show real-time updates from the scheduling service.
  • Implemented work order management system using Ruby on Rails services and gRPC for service to service communications.
  • Built the in-house user-defined type-and-form system using Rails with dynamic migrations and per-customer database connections; also implemented the advanced search functionality using joins between tables on different connections.
  • Constructed the cross-platform JavaScript evaluation in both the iOS and Android Flutter apps with asynchronous callbacks to read/write values to the user-defined forms which were rendered with the Flutter engine.
Technologies: Kotlin, Ruby on Rails (RoR), Angular, Flutter, Google Kubernetes Engine (GKE), Kubernetes, Android, iOS, Ktor, WebSockets, Linux, Swift, JavaScript, Docker, Node.js, SQL, HTML, CSS, Firebase, Google Cloud Platform (GCP), Databases, REST APIs, JSON, MySQL, Mobile, Encryption, User Permissions, Microservices, HTML5, APIs, Solution Architecture, Agile, GitHub, Database Design, Software Troubleshooting, Back-end, ASCII, UTF-8, Web Development, Java, Full-stack Development, Test-driven Development (TDD), Cross-platform, Full-stack

Lead Software Developer

2015 - 2018
Escendency Ltd
  • Developed the company's flagship offering which involved a migration from Ext JS 3 directly to 6 and rewriting a VB.NET back end in C#.NET.
  • Added MongoDB alongside an SQL Server database by using the two databases appropriately according to different data categories.
  • Implemented 2-factor authentication with the Google Authenticator app.
  • Directed a small team and mentored graduate developers which included assigning tasks based on experience in order to ensure all team members were familiar with the full codebase where possible.
  • Extended the system to allow parents to view their child's records which included implementing a powerful access control system to preserve pupil data confidentiality but maintain convenient access.
  • Designed and implemented a database backup strategy to reduce maximum data loss from one day to 15 minutes.
  • Redesigned the deployment system from a single physical server to redundant deployments on multiple virtual machines, distributed across a multi-machine cluster.
Technologies: Sencha UI, .NET, NancyFx, MongoDB, C#.NET, Ext JS, VB.NET, Python, C#, JavaScript, SQL, HTML, CSS, Firebase, Amazon Web Services (AWS), Databases, REST APIs, JSON, ASP.NET, Encryption, User Permissions, HTML5, Electron, APIs, Solution Architecture, Agile, GitHub, Database Design, Technical Leadership, Software Troubleshooting, Mentorship, Back-end, Leadership, ASCII, UTF-8, Web Development, Full-stack Development, Python API, Test-driven Development (TDD), Full-stack

Software Developer

2013 - 2015
InTouch Ltd
  • Built the in-house forms system using Django and dynamic database migrations.
  • Developed address lookups which also accounted for user misspellings and missing lines of data.
  • Refactored the iOS app to reduce compiler warnings from over 200 warnings to fewer than ten all without impacting app functionality.
Technologies: C#.NET, Django, Python, jQuery, iOS, .NET, C#, XML, Linux, JavaScript, SQL, Android, Dart, HTML, CSS, Bootstrap, PostgreSQL, Databases, REST APIs, JSON, Mobile, ASP.NET, User Permissions, HTML5, APIs, GitHub, Database Design, Software Troubleshooting, Back-end, ASCII, UTF-8, Web Development, Full-stack Development, Python API, Cross-platform, Geolocation, Full-stack

Token Authentication for Django

https://github.com/James1345/django-rest-knox
A Django application for secure token authentication.

I wrote the first version and still contribute patches occasionally. A dependant project's team has supported the few changes that have been needed over its lifetime.

FlightVM

https://bitbucket.org/james1345
A pure Dart stack-based virtual machine and Forth-like language for adding dynamic scripting to Flutter projects. Allows dart objects and methods binding to the VM, using a syntax inspired by Lua's C-API. The Dart API also allows the interpreter to be reconfigured on the fly, leaving space for different compilation modes and extensibility.

Languages

Python, Kotlin, Java, C#.NET, C#, JavaScript, SQL, Dart, C++, XML, HTML, CSS, Embedded C, HTML5, TypeScript, C, Embedded C++, VB.NET, Swift

Frameworks

Ruby on Rails (RoR), Django, Flutter, Ktor, NancyFx, Bootstrap, ASP.NET, .NET, Unity, Angular, Ext JS, Flask, Electron

Libraries/APIs

REST APIs, Node.js, Python API, jQuery, React, Google Maps API, Stripe

Paradigms

Agile, Cross-platform, Microservices, Database Design, Compiler Design, Mobile Development, REST, Test-driven Development (TDD)

Platforms

Linux, Android, Docker, Firebase, Google Cloud Platform (GCP), Amazon Web Services (AWS), Mobile, Kubernetes, iOS

Storage

Databases, JSON, MongoDB, Redis, PostgreSQL, MySQL

Other

Software Development, User Permissions, Software Troubleshooting, Back-end, Web Development, Full-stack Development, Full-stack, WebSockets, Encryption, Data Compression, APIs, Solution Architecture, Technical Leadership, Mentorship, Leadership, Robotics, Embedded Systems, ASCII, UTF-8, Robot Operating System (ROS), Simultaneous Localization & Mapping (SLAM), Risk Management, Digital Forensics, Ethical Hacking, Physics Simulations, Real-time Operating System (RTOS), Real-time Data, Maps, Location Services and Maps, CI/CD Pipelines, Architecture, Geolocation, Scrum Master

Tools

MQTT, IntelliJ IDEA, GitHub, Google Kubernetes Engine (GKE), Sencha UI, RabbitMQ

2013 - 2018

Master's Degree in Cybersecurity

University of Lancaster - Lancaster, UK

2010 - 2013

Bachelor's Degree in Physics

University of Lancaster - Lancaster, UK

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