Kayden Jeffery trying on the robotic arm that Clifford Agius built for him
Clifford Agius is a freelance .NET developer who flies around the world in a Boeing 787 for his day-job. When he is not thousands of feet above sea-level, he loves to code. When a family friend asked Cliff for help improving her son’s prosthetic arm, the 787 pilot by day/freelance developer by night used open-source software to build a new arm for the teen.
He has big plans on making the robotic arm easily available to families and communities who do not have access to resources and around continuing to improve the technical capability of his creation using .NET 6 and Visual Studio 2022.
We don’t usually come across someone who is a commercial pilot and a developer. Tell us a little about your journey and what inspires you to build the kind of apps that you do?
I spent the first 11 years of my career writing software and automating production line equipment. I always wanted to learn to fly, and after many years in tech, I could afford to go to pilot school and get a private license. So I signed up and that led to me taking two years off to go to flight school and became a commercial pilot.
Shortly after, I was invited by a friend to contract for him; he needed someone to build a few modules in C# and .NET. I knew the paradigms of code and was quickly able to familiarize myself with .NET. I worked on those modules during the layover downtime at hotels for six months. And that led to how I get to work on fun dev projects during my layovers. My engineering background has translated to me working on a lot of IoT related projects built using .NET, and I like to work on projects that make a difference in the world.
Tell us about HandyApp and how it came about.
December of 2016, a family friend started chatting about a news article in the media here in the UK, about a dad that 3D printed a hand for his daughter. ”You've got 3D printer, right, Cliff?” – she asked. I realized then that she was asking whether I could create one for her son Kayden, who was born with half an arm. Kayden is a good kid and he had received an arm extension from the local health services agency that had a hook, which was not optimal for holding things and hence was not super functional. I wanted to see if I could help – I managed to find the code for the 3D printed hand referenced in the news in open source projects and I printed out the hand. That 3D hand did not have a great grip either and Kayden hated it.
I was bitten by the bug and wanted to find a solution. I went back to the drawing board and started revisualizing and researching. That’s when I stumbled across OpenBionics and was able to build HandyApp.
HandyApp is an OpenSource mobile application built using .NET; it allows users of the OpenSource Bionic Hand project to control the hand and it's settings via bluetooth. This is still very much a work in progress but the current build will allow a Bluetooth Connection to the Adafruit board inside the hand and remote control and set-up.
Kayden enjoying the summer by the lake
Kayden with the prosthetic arm provided to him by the local health services agency
It sounds like this became an important project for you at a personal level. What are your future plans around it?
Yes, this project became important because it is so meaningful to change people’s lives through technology… There are plans to continue the building of this app to a point that any user can configure their own Bionic hand as well as record sensor reading and upload them to an Azure Cloud function for analysis and suggestion of settings, but this is still on the todo list. I also want to take advantage of all the cool stuff in .NET 6 and Visual Studio 2022.
Importantly, I would like to make this solution more easily available to families. I have considered how much money this would cost a family living where there is no health services agency. I calculated the cost down to 500 pounds. After the pandemic is over, I intend to stick a 3D printer in a box, some spools of filament, some screws, nuts, bolts and some electronics boards and take them overseas on a flight. I've spoken to hospitals in Pakistan and in India and there is some early interest.
I have also started looking at building LeggyApp, which is an app connected to a prosthetic leg.
The robotic arm kit
Tell us about the cool stuff in .NET 6 and Visual Studio 2022 you plan to take advantage of.
I am excited about .NET MAUI ((Multi-platform App UI) and plan to update the app so it can target Windows and MacOS in addition to the current platforms, Android and iOS - all with the same code base. I am also planning to switch to Wilderness Labs Meadow F7 boards inside the robotic arm so that we can have .NET not just in the mobile and desktop client but also on the actual device. Once Wilderness Labs Meadow runs .NET on the IoT Hardware taking advantage of the new .NET 6 tooling and changes to the BCL, we can then carry out over-the-air updates on the hardware. So, if we wish to update the code we can build and have an Azure Dev Ops process push the updates directly to the hardware removing the need for the user to visit a technician for updates.
This change to .NET on the hardware as well as across the mobile and desktop means that we can share code between the two code bases with shared Models and Service layers reducing the need to have bespoke versions of these. The possibilities with .NET MAUI are endless and I recently wrote a blog about it.
Visual Studio 2022 allows me to use hot restart, and hot reloads, so I can edit my C# code to bring the dev cycle down from a minute and a half to just a few seconds. The fact that I can plug my developer iPhone into my Windows Surface Book laptop when I'm traveling around the world and keep coding is awesome. I've been using Visual Studio 2022 for last couple of months as my daily.
Also Microsoft has gone out of the way to make sure that accessibility is engrained into the design. So the biggest advantage of Visual Studio 2022 will be the accessibility gains, the speed improvements, app startup times, and being able to develop and compile really, really fast.
Do you have any advice to aspiring or striving developers?
Keep learning. Learning and challenging our ourselves to explore the unexplored is where real growth as an individual takes place. I use the content on docs.microsoft.com to keep myself updated and recommend it to all developers.
Watch Clifford Agius and young Kayden demo the robotic arm and HandyApp
.NET 6 announcement
It is ready for your #app — over a year in the making, we are very happy to release .NET 6 and a higher performance web stack to simplify and speed up development! Learn more: https://aka.ms/dotnet6-GA
CODE Magazine Focus Issue: .NET 6
Read all about the .NET 6 release and what’s new in Visual Studio 2022 for .NET #developers in this special issue of CODE Magazine: https://aka.ms/dotnet6-code-mag
Cliff's blog: https://www.cliffordagius.co.uk/
CodeStories Blogs is a series of interviews with innovative and inspiring developers.