James McMahon
Verified Expert in Engineering
Full-stack Developer
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
Experience
Availability
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
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.
Senior Software Engineer
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.
Full-stack JavaScript / RoR Developer
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.
Software Developer
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.
Lead Software Developer
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.
Software Developer
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.
Experience
Token Authentication for Django
https://github.com/James1345/django-rest-knoxI 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/james1345Skills
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
Education
Master's Degree in Cybersecurity
University of Lancaster - Lancaster, UK
Bachelor's Degree in Physics
University of Lancaster - Lancaster, UK
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