Jules May, Software Developer in Dundee, United Kingdom
Jules May

Software Developer in Dundee, United Kingdom

Member since January 20, 2017
A systems architect, project manager, mathematician, and programmer with a long history of implementing novel solutions to real-world problems, Jules likes handling challenging mathematical problems and has a taste for safety-critical and high-reliability development. He is a regular conference speaker.
Jules is now available for hire

Portfolio

Experience

Location

Dundee, United Kingdom

Availability

Full-time

Preferred Environment

Flexibility, C++, Reliability, Flutter, Embedded Systems, Device Drivers

The most amazing...

...project I've worked on is a compiler that made programs for a highly optimized pattern detector. I designed the language and its mathematical foundation.

Employment

  • Developer

    2022 - 2023
    Client confidential (via Toptal)
    • Acted as a developer with compiler experience and an understanding of database engine infrastructure. Participated in the design of an infinitely-elastic relational database architecture.
    • Engaged in a role that involved extensive research into competing products, often at the level of reviewing source codes.
    • Developed a formal theory of distributed data in addition to the standard relational algebra.
    Technologies: Compilers, Go, Compiler Design, SQL, PostgreSQL, Parsers, Optimization, Distributed Computing
  • Architect Developer

    2021 - 2022
    Avala AI
    • Re-architected the failing mobile app. Delivered several cycles of refactoring even while feature development continued.
    • Began the process of introducing comprehensive regression tests.
    • Participated in recruitment, helping to design the recruitment pipeline and taking responsibility for the developer take-home challenges.
    • Provided design support and mentoring to the more junior team members.
    • Specified, delivered, and maintained a complex solver for extracting 3D inferences from 2D images and correlating the inferences across multiple images.
    Technologies: Django, Flutter, Android, iOS, 3D Math, API Design, Architecture
  • Architect and Developer

    2021 - 2021
    Picknicker Consulting UG
    • Architected the overall system distributed between sites in the Philippines and Singapore, designing for reliability, maintainability, and fault tolerance.
    • Researched and managed the specification of the BLE triangulation algorithms, extracting useful data from the (admittedly) poor telemetry that the BLE 5.0 beacons offered.
    • Developed the infrastructural services and the bus protocols to deliver reliable and fault-tolerant communication with the head office (the terminal was in the middle of a jungle).
    Technologies: Docker, Docker Compose, Bluetooth LE, Python 3, Message Bus, Paho, Mosquitto
  • Engineer for a Uber-like Routing Project

    2020 - 2021
    Vellity
    • Designed and specified the technical architecture to migrate the existing, half-finished design to a complex real-time delivery service. Worked on the AWS serverless back-end, re-purposing the Laravel front-end and developing a Kotlin app.
    • Directed a small team of developers to construct the design over a period of a year.
    • Managed the re-development of the mobile app in Flutter. Worked on the complex real-time app, integrating messages from server and intelligence and contributing to the app's optimization.
    • Worked on the key part of the commercial proposition, which was the optimization of drivers' routes. Designed novel constraints and an optimization approach and coded it into the app.
    Technologies: Flutter, Kotlin, Android SDK, iOS, Mobile, APIs, Amazon Web Services (AWS), Serverless, Laravel, Geolocation, Firebase, Firebase Cloud Messaging (FCM), Routing Optimization, Security, Mapping, Google Maps, Waze, Apple Maps API, Leadership, AWS Amplify, Dart, Technical Leadership, REST, REST APIs
  • Lead Developer | Path/Ray Tracing

    2020 - 2021
    Solemma
    • Extended the exiting open-source ray tracer to replicate materials previously coded in Radiance. Even though LuxCoreRender used a very different model of light to Radiance, it was important that the results were identical.
    • Worked on every additional material that needed to work identically in multithread CPU code and GPU code (OpenCL) and was tested on a range of different hardware.
    • Extended and developed LuxCoreRender's shell application to make LuxCoreRender accessible to the client's existing (C#) development.
    • Diagnosed and fixed several bugs in LuxCoreRender and contributed them to the project.
    Technologies: 3D, 3D Math, C++11, Ray Tracing, LuxCoreRender, Radiance, Bidirectional Scattering Distribution Function (BSDF), OpenCL, C#
  • Developer

    2019 - 2020
    Support.com
    • Wrapped the existing code in a Desktop Bridge package for the client's product, which had been developed to work under MFC, but which they wanted to be able to put into the Windows Store. More specifically, they needed it to work under Windows 10 S-mode.
    • Helped modify the native part of the code to work around security limitations while maintaining backward compatibility with the single codebase. The code was for a screen-sharing and remote control application, and much of its behavior was prohibited by W10's security measures, but the result of my work outperforms Microsoft's own screen-sharing utility.
    • Designed the delivery process and informed the minimal set of back-end changes required to support it since the new code was delivered through the Windows Store instead of the client's website, which meant that the delivery and packaging process was entirely different.
    Technologies: Desktop, C#, C++, UWP, Windows
  • Senior Computing Scientist

    2018 - 2018
    Adobe
    • Designed and demonstrated a strategy to enable versioned data storage. The system had to include both historical records and putative future records and had to be retrofitted to the existing system without any forced changes to it.
    • Designed, developed, and led technical efforts on a project to replace an existing aggregation node with a fully validated version.
    • Led the academic outreach team, recruiting graduates from local universities and raising with joint projects.
    Technologies: Amazon Web Services (AWS), Requirements Analysis, Serverless, EventStore, Technical Leadership
  • Audio Developer

    2017 - 2018
    Voicescript (via Toptal)
    • Converted a (defective) implementation of a voice detection algorithm from Matlab into C++.
    • Corrected the defects and improved the performance.
    • Converted from batch processing to stream processing.
    • Scoped and designed further developments including speaker tracking and noise removal.
    Technologies: Audio, C++
  • Protocol Designer and Developer

    2017 - 2018
    Trinity (via Toptal)
    • Contributed to the design and testing to a new kind of internet protocol that the company was formed to develop and exploit.
    • Wrote the code to implement the new protocol. This required a detailed understanding of the IP protocol stack and especially the characteristics of the various forms of TCP. The code had to be entirely transportable between PCs, mobile devices, and servers.
    Technologies: TCP, C++
  • Data Scientist

    2017 - 2018
    Global Data (via Toptal)
    • Developed an evaluator that used Bayesian reasoning over correlations to mine relationships from multivariate unstructured data.
    • Developed an algebra over probability distributions, so distributions could themselves be correlated. The system was able to interpolate missing values (for graphing) and to extrapolate (for prediction), with confidence intervals built in.
    Technologies: Bayesian Inference & Modeling, Python
  • Low-level Database Service Developer

    2017 - 2017
    Exponential (via Toptal)
    • Developed code to replace an approximately 1GB database suffering from 1+ second response times with an 80MB database with around a five-milisecond response time.
    • Researched and implemented highly-efficient storage and search algorithms. Tuned them for optimal L1 and L2 cache access and transparent multi-core support.
    • Exposed the database as a web service so it could be used efficiently in the existing network.
    Technologies: Performance, Algorithms, Web Services, Database Applications, C++
  • Consultant

    2015 - 2016
    Keysight Technologies
    • Developed specialized hardware for digital triggering. The hardware had been prototyped; my role was to design and develop a toolchain to program it.
    • Designed a language, Newt, to express complex triggering patterns.
    • Designed the mathematical foundation by which a compiler could be constructed.
    • Designed and developed a compiler (in C++) to turn Newt codes into various types of hardware models.
    • Contributed to the continuing development of the hardware (in Verilog) in order to maximize performance and generality.
    Technologies: Project Management, Embedded Software, Mathematics, Algorithms, Compilers, Construction, FPGA, C++11, Verilog, Technical Leadership
  • Consultant

    2014 - 2015
    Trainline.com
    • Led the technical design and development of Journey Planner, a key component of the commercial proposition. The objective was to avoid conventional solutions in favor of one which could deliver some additional value to the business.
    • Researched, applied, and explained the core mathematical foundation.
    • Designed, developed, and communicated the function of the architectural foundation.
    • Provided initial development, road mapping, and technical lead through the development cycle.
    • Introduced F# into the company's development process.
    • Wrote, in one week, a compiler which saved the company £1.2 million per year.
    • Spearheaded a data mining project. Initial results contributed to redirecting the company's strategy.
    Technologies: Data Mining, Algorithms, Mathematics, BizTalk, Architecture, C#, C++11, F#, Leadership, Optimization, Technical Leadership
  • Software Specialist | Consultant

    2013 - 2014
    Senergy Group
    • Led numerous technical projects operating under business development/innovative products and services. They originated and researched ideas and existing IP from within and without the business, and then delivered those ideas as turnkey products.
    • Elicited requirements and ideas from stakeholders.
    • Researched and gathered technologies and personnel.
    • Designing the systems, managed the development effort, and took a leading role in core development tasks on several projects.
    • Contributed to commercial and business planning.
    • Participated in IP registration.
    Technologies: R, Android, Java, LAMP, SQL, PHP, Leadership
  • External Supervisor

    2011 - 2014
    University of Aberdeen, Institute of Mathematics
    • Initiated a project in which, for their final-year project, undergrads in mathematics tackled real, commercial problems which we had within our development team. The idea was to expose students to opportunities in which they can use their skills in industrial and engineering contexts (rather than just academic ones).
    • Sought out (and characterized in mathematical terms) suitable tasks and conveyed them to the institute and students.
    • Provided ongoing supervision and guidance.
    • Participated in the final marking.
    • Helped to transfer the solutions found by the students back into the development team.
    Technologies: Mathematics, Technology Transfer
  • Software Development Manager

    2012 - 2013
    Senergy Group
    • Managed a department of 22 developers and two project managers, developing two home-grown programs (over three million lines) and several third-party assets.
    • Oversaw budgeting, recruitment, project scoping and delivery, and the implementation of all quality standards.
    • Oversaw the transition from ad-hoc development to fully-agile processes.
    Technologies: Fortran, C++, C#, Change Leadership, Technical Leadership
  • Technical Architect

    2011 - 2012
    Senergy Group
    • Directed the core, architecture, and futures team, which was charged with re-architecting the company's entire product range and future-proofing the business' roadmap.
    • Oversaw architectural design, team leadership, prototyping, and toolmaking.
    • Communicated and evangelized the new structures to programmers outside the futures team, and "sold" the ideas to non-technical stakeholders.
    Technologies: C++, C#, Leadership
  • Senior Developer

    2009 - 2011
    Senergy Software, Ltd.
    • Developed and delivered a radical approach to rectifying and analyzing wireline image logs based upon cross-correlations.
    • Architected the project such as to work as part of a desktop app, when embedded on down-hole hardware and when deployed onto GPU arrays.
    • Handled conception and design as well as mathematical and theoretical foundations.
    • Submitted the product for a patent (GB1016556.1, Methods for providing for correcting data and associated apparatus).
    Technologies: Graphics Processing Unit (GPU), Embedded Systems, C++, C#
  • Web Developer

    2008 - 2009
    NHS Education Scotland
    • Collaborated with a teammate to develop this high-load, highly-visible, and politically-sensitive internet-delivered service.
    • Implemented a website with a complex, extended-time, multi-agency workflow. Even though deadlines were set before the project began, requirements were generally conflicting and were still changing even after the deadlines had passed.
    • Designed and developed an innovative user interface to explicate complex workflow to untrained (and highly-stressed) users.
    • Catered to system demands for multiple, complex security and confidentiality requirements, at some points of a national security level. We designed security into the heart of the system.
    Technologies: Microsoft SQL Server, Visual Studio, C#, ASP.NET

Experience

  • Conference Speaker
    http://sddconf.com/

    I am a regular speaker at conferences including SDD, DevWeek, and Software Architect. My next appearance will be at SDD in May in London.

    Repertoire includes:
    Full-day workshops:
    . Introduction to F#
    . Introduction to problem Space Analysis
    Lectures:
    . If considered harmful
    . Building great teams
    . High-frequency continuous delivery
    . Data is not code
    . Introduction to Lean software development
    . Privacy for Architects
    . Closures: the third programming revolution

  • Angus Open Studios Website

    I was approached by Angus Open Studios, an artists' co-operative in North-eastern Scotland. Their web developer had let them down, and they needed a website up-and-running in six weeks. Though an outline design was done, there had been no development at all.

    The very unique needs of AOS meant that no existing framework was suitable, and they had a budget of zero. I was able to create a web site, a basic admin console, personal login and page editors for each member, and tracking support, all in vanilla LAMP. I also handled the legal formalities.

    The website ran for a further four years, during which time I added further tracking, more admin facilities, and more member support.

  • The Inventor's and Innovator's Kick-start Guide
    https://www.amazon.co.uk/Inventors-Innovators-Kick-start-Guide-Commercialise/dp/0954999509/

    My first full-length book! Was an Amazon best-seller for several years. Kindle sales are still trickling in.

  • Archery Competition Timer

    Archery competitions are subject to complex timing rules, and through commercial devices are available, they're very expensive and few competition organisers or governance organisations can afford them. Scottish Archery Association's Northern Area had a device that had been hand-built some twenty years before, and although it was a bit "Rube Goldberg", it worked. Unfortunately, it was not compliant with modern rules.

    NA asked me to reprogram it. Although the current rules are much more complex, I was able to fit them into the ½ kb of program memory that the (utterly obsolete) chip afforded.

    The project was so successful that the timer is now used at most NA competitions, I have requests to build more, and I am currently redeveloping the design into a more modern, more sophisticated system.

Skills

  • Languages

    Python, C, Python 3, C#, C++, PHP, Scala, Kotlin, Rust, Embedded C++, Java, F#, R, Verilog, C++11, SQL, Fortran, Dart, VHDL, Verilog HDL, Go
  • Libraries/APIs

    Sockets, Visual Studio SDK, Google Maps, Apple Maps API, AWS Amplify, REST APIs
  • Tools

    Visual Studio, SharpDevelop, MATLAB, Firebase Cloud Messaging (FCM), Docker Compose
  • Paradigms

    Requirements Analysis, Asynchronous Programming, Parallel Computing, Distributed Computing, Mobile Development, Functional Programming, Compiler Design, Concurrent Programming, Agile Software Development, Continuous Delivery (CD), Data Science, Microservices, REST
  • Platforms

    CUDA, Unix, Universal Windows Platform (UWP), UWP, Linux, Windows, NetBeans, Android, Docker, Amazon Web Services (AWS), Xamarin, LAMP, Desktop, iOS, Mobile, Firebase, Jakarta EE, Bluetooth LE
  • Storage

    SQLite, LAMP Server, MySQL/MariaDB, Databases, Microsoft SQL Server, EventStore, PostgreSQL
  • Industry Expertise

    Security, Project Management
  • Other

    Serverless, APIs, Distributed Software, Ray Tracing, 3D Rendering, Network Protocols, Digital Signal Processing, Networks, Internet Protocols, TCP, Technical Architecture, Embedded Systems, Algorithms, 3D, 3D Math, Software Architecture, Reliability, Mathematics, Team Leadership, Safety-critical, Data Structures, Web Development, Server Security, Lean Development, Statistics, 3D Modeling, IT Systems Architecture, Technical Leadership, WiFi, Linux Kernel, Hardware, Project Planning, TCP/IP, Flexibility, FPGA, Construction, Compilers, Embedded Software, Architecture, BizTalk, Data Mining, Technology Transfer, Graphics Processing Unit (GPU), Database Applications, Web Services, Performance, Bayesian Inference & Modeling, Audio, LuxCoreRender, Radiance, Bidirectional Scattering Distribution Function (BSDF), Geolocation, Routing Optimization, Mapping, Waze, Leadership, Optimization, Change Leadership, Message Bus, Paho, Mosquitto, API Design, Parsers, Device Drivers
  • Frameworks

    Flutter, Android SDK, ASP.NET, OpenCL, Laravel, Django

Education

  • Bachelor of Science Degree in Computer science
    1979 - 1983
    University of Warwick - UK

Certifications

  • B.Sc. (Hons) Computer Science
    MAY 1983 - PRESENT
    University of Warwick

To view more profiles

Join Toptal
Share it with others