James McMahon, Full-stack Developer in Lancaster, United Kingdom
James McMahon

Full-stack Developer in Lancaster, United Kingdom

Member since July 9, 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, Ruby) and frameworks (Ruby on Rails, Flask). James excels at writing highly optimized distributed code both in the context of microservices for web applications and distributed robotics hardware systems. Having worked as a software developer in the past, James understands the importance of effective communication and being a team player.
James is now available for hire

Portfolio

  • Resolve Robotics
    C++, .NET, Python, MQTT, Robot Operating System (ROS), Unity...
  • Insiris Ltd
    Kotlin, Ruby on Rails (RoR), Angular, Flutter, Google Kubernetes Engine (GKE)...
  • Escendency Ltd
    Sencha UI, .NET, NancyFx, MongoDB, C#.NET, Ext JS, VB.NET, Python, C#...

Experience

Location

Lancaster, United Kingdom

Availability

Part-time

Preferred Environment

IntelliJ, 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.

Employment

  • Senior Software Engineer

    2020 - PRESENT
    Resolve Robotics
    • Chose the software stack for controlling a novel inspection 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
  • 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
  • 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
  • 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

Experience

  • 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.

Skills

  • Languages

    Python, Kotlin, C#.NET, C#, JavaScript, Java, XML, C++, VB.NET, Swift
  • Frameworks

    Ruby on Rails (RoR), Django, Flutter, Ktor, NancyFx, Unity, Angular, Ext JS, Flask
  • Platforms

    Linux, Kubernetes, Android, iOS
  • Other

    Software Development, WebSockets, Robot Operating System (ROS), Simultaneous Localization & Mapping (SLAM), Risk Management, Digital Forensics, Ethical Hacking, Physics Simulations, AWS
  • Tools

    IntelliJ, MQTT, Google Kubernetes Engine (GKE), Sencha UI
  • Storage

    MongoDB
  • Libraries/APIs

    jQuery

Education

  • Master's Degree in Cybersecurity
    2013 - 2018
    University of Lancaster - Lancaster, UK
  • Bachelor's Degree in Physics
    2010 - 2013
    University of Lancaster - Lancaster, UK

To view more profiles

Join Toptal
Share it with others