Martin Joiner Bristol, UK github.com/martinjoiner
I am a creative multilingual developer with a passion for good UX. I enjoy roles with an element of mentoring. I work across all components of software to remove unnecessary complexity from inherently complex systems. I thrive in a culture of innovation and modern standards and love a good team discussion to decide our best approach. Open source contributor.
Tap a tech to highlight
PHP, JavaScript, Python, Ruby, MySQL
Symfony, Laravel, Express, CodeIgniter
Behat, PHPUnit, PyTest, Jest, Psalm, CodeSniffer
React Native, Ionic, AngularJS, WebGL (Three.js).
REST APIs, CI Pipelines, WebSocket, AWS, Firebase, Capistrano, Jenkins, Heroku.
11ty, Gulp, Webpack, Grunt, Broccoli, Jekyll, Elixir.
Vagrant, Docker
Raspberry Pi, Arduino.
Adobe CC (Photoshop + Illustrator), logo and style design, drawing + illustration, wireframing, 2D and 3D animation, 3D modelling, digital photography + retouching, video production.
Responsive web design, accessibility, UX, DX.
Public speaking, leadership, mentoring, project management, statistical visualisation, prototyping, sketching.
Post-acquisition continuation of role as Lead Engineer for Integrations Team, now leading 4 engineers. Now responsible for integrations from both companies plus a public API, documentation and internal microservices. Team now writing PHP Symfony, Python, TypeScript and Ruby on Rails, each with it's own validation library, linter, test framework and logging platform. Deployed on AWS API Gateway using Serverless.
Led complex processes: Aligning data schemas of 2 integrated products. Improving logging. Removed tech debt of an unfinished renaming process. Debugging race conditions over distributed systems.
Completed a 5-part management training course. Facilitated PDPs and training. Ran sprint ceremonies. Attended quarterly offsite kick-offs. Led additional engineers from adjacent teams during crunch times. Managed cross-team collaboration in a department of 65 engineers in a company of 250.
Joined API Team, built a complex composite calendar endpoint. Promoted to lead new Integrations Team took over 5 integrations written in PHP Symfony with AWS SNS/SQS event driven architecture.
Devised a new internal platform for managing partner integrations, including unprocessable entity reporting and JavaScript WebSocket powered live progress bars that visualise long sync jobs.
During acquisition by Nourish Care I led the new build of the CarePlanner-Nourish integration.
All projects use CircleCI running Behat PHPUnit Psalm CodeSniffer and Docker for local dev.
University administration software. Helped maintain their mature legacy procedural PHP codebase.
Led the build of a new backend. An API built in Laravel on PHP 8 that published live chat to a JavaScript WebSocket server and used Firebase Cloud Messaging for notifications. Automated tests in Behat run by ChipperCI. Wrote command-line scripts to produce a simulation of live chat for load-testing whole system. Contributed to React Native app. Administered deployments to AWS. Dabbled in Docker.
Via my role as Principal Developer at Nomensa
A bespoke application for Royal College of Anaesthetists to track learners progress toward qualifying. Many complex multi-user workflows with strict role-based permissions. I led a team of 3 devs (me + 2), full time for over 2 years to deliver and then iteratively improve this complex application. Recruited to rescue the project, I inherited the codebase in a bad state and applied proper Laravel-style techniques to leverage the full power of the framework. Built in Laravel and JavaScript, test-coverage with Behat and pipeline/deployment managed through GitLab CI. Notable features included partial functionality offline via Service Worker API.
I built Open Mic Finder in 2010 motivated by a lack of reliable online information. 16 years later the site now gets ~30,000 unique users each month. The database holds ~4000 sets of user-submitted venue details. It generates no revenue, but I keep it alive as a demonstration of my broad skills to design, build, promote and moderate a site on a long term basis with no budget.
Over the years I've taken it from PHP version 5.4 to 8.3, survived the browser wars, replaced the interactive Flash map with Google Maps API, made the interface responsive, played with Open Graph Protocol and Rich snippets, Leveraged several free APIs (Twitter, MeetUp, MailChimp, Transport), tried and failed to attract sponsorship, moved from Vagrant to Docker for local dev, added tests in PHPUnit.
Via contract at Zubr VR
3D interface (WebGL) for visualising Bloodhound SSC's live vehicle data during its practice attempt in Cornwall in 2017. Using a WebSocket connection to a backend that was receiving data via an API from their vehicle metrics partner Oracle. Large JavaScript code base, deployed with Capistrano.
Via contract at Create Health
An employee benefits provider tasked me with building a news and social platform capable of being customised for multiple companies and integrating with their current legacy HR systems. New-build in PHP 7, Laravel 5.4. Bootstrap 3 for rapid templating. Deployed with Capistrano.
After my previous rescue effort for Real World Visuals they asked me to pick up an unfinished, partly broken CodeIgniter project, pull the back-end code up to standard and get it stable and live-ready. Deployed with Capistrano.
Real World Visuals needed some help making a fledgling product fit for demonstration. Picking up where another dev left off I merged 2 tightly-coupled repos that should never have been separate and worked across the full stack to polish and standardise the codebase so that I could then implement critical features ready for client demo. PHP (CodeIgniter framework), SQLite database, REST API and WebGL, JavaScript, CSS interface. Deployed with Capistrano.
A failed charitable startup. Built an OAuth protected REST API (Laravel 5 running on PHP 7) that allowed any cheap Raspberry Pi with a USB barcode scanner attached and running a Python script to rapidly log a shop's stock. The backend would then identify the books using the ISBNdb API, scrape online retail prices and identify which books are worth listing for sale online.
Mobile web app (JavaScript) that uses device GPS sensor to enable users to submit poetry along defined walking routes. Profanity checker filters obviously offensive content. Tests written in PHPUnit. CMS and REST API in PHP. WordPress blog with custom theme for project news.
An outdated and messy legacy PHP (Concrete 5) codebase had begun to run frustratingly slow. I performed code surgery and properly normalised the 58+ million row MySQL database, managing to successfully reduce report generation time from minutes to seconds. I also improved the frontend interface, adding tips and strict validation to ensure the users were inputting data in a standardised format.
Via my role as Senior frontend developer at Somo Global (2015)
I was responsible for JavaScript, CSS and some PHP (Symfony) on a CSR charity project. Visualisation of geographic data on charts and interactive maps. Was live at www.horizondata.net but no longer online.
Decision-making tools and finance quote calculators for company car drivers. JavaScript interfaces backed by a REST API made in ColdFusion 9. A MySQL database of millions of models, vehicle options, emissions data and prices.
Performs complex financial projections and displays the figures in an interactive interface. Backwards compatibility for executives still running IE7 on XP in 2015.
Led the rebuild and rebrand after Carmen Data acquired Compare Contract Hire. Including UX design, UI design, Logo design.
Projects for brands including Mercedes-Benz, Ford, Kia.
Award-winning literacy app for KS2+3 in schools. GPS triggered interactive story. Front-end written in vanilla JavaScript, optimised for mobile and using device GPS. Data fed by a PHP and MySQL REST API. Unique challenge of UX and UI design for children.
Rock Climbing. Snowboarding. Painting and drawing.
Commissioning artist / Artist in residence at University of Plymouth / Open mic host / Juggling teacher / Nightclub VJ / Gardener / Pancake chef
Working alongside graphic design for print. Introduced new web department delivering new builds and maintenance of sites for company's existing print clients.
Produced online video tours of luxury vehicles. Overhauled the design of the company website. Adobe Flash animation and SEO. Learned PHP for the role.