This page contains information about my professional background in various key areas. It isn't my complete CV and doesn't go into detail about my various projects, jobs or experience. This page does explain how I've ended up where I am and where I hope to be headed. To learn the details of my experience, you might be more interested in my CV.
I started programming when I was eight years old and haven't often looked back. Along the way I've tried to learn a broad but deep range of skills and knowledge. This has given me a rather unique understanding of software and hardware, and the businesses around them. I've done a startup in web advertising, worked as a graphics driver developer and am currently developing a new processor design (with a team).
What's driving me? I'm not sure - passion is probably the best word for it. I get a huge kick out of making things work and understanding why they work. I also like fixing that which others have just accepted as broken; though that does lead me to some rather ambitious projects. Fundamentally, I like creating and sharing great tech for others.
At heart I am also an altruistic person. That's why I set up FlingOS and have worked a lot in educational technology. At the University of Bristol, I've helped pioneer the Digimakers Roadshow programme, taking our workshops into local primary schools for children as young as 8 to learn computer programming and simple electronics.
My hope is that I can continue to work on projects I enjoy and to explore my own ideas, some of which could have a big impact on electronics and related industries. Would I transform UK education if I had the opportunity? Yes - but being a politician isn't in my plans.
Since age fifteen I've gradually been delving deeper into the guts of computer systems. I started by building a complete, general-purpose, 8-bit computer in Minecraft using only Redstone. I then worked two internships across two summers with Imagination Technologies in their Windows Graphics Driver team.
At around the same time I started getting into OS development. I spent around 6 months with COSMOS (C# Open Source Managed Operating System) before deciding to branch out to develop my own, independent system. Within around 6 months I had a C# OS running at a similar level of complexity.
In the early months of FlingOS I realised that OS development is largely undocumented online. Deciding to tackle that problem has lead to years of continued development both of the code and of online articles and videos, all available free and/or open source.
My most recent work has been researching formal proofs in a language called Agda, for my PhD. In addtion I'm exploring a new OS system for the new processor architecture we are developing in Bristol. Long term I hope to create new techniques for deploying formal proof at scale and enabling new OS design patterns.
As you can hopefully tell, I enjoy understanding the details of computer systems and challenging the fundamental principles on which they were designed. We haven't reached the best design of processor yet and software continues to evolve (with functional languages becoming ever more popular!)
When I was 15 I spent 4 weeks of summer building an entire 8-bit processor from scratch in Minecraft - 32 bytes of RAM in two blocks (dual-ported RAM), basic MMU, full ALU, 256 bytes of program memory, numerous instructions, unclocked, two registers, etc. One instruction every 30 seconds seemed like a modest achievement.
Other than that, my experience of hardware was limited to toy circuits/university society stuff and my Computer Science and Electronics degree at the University of Bristol. However, my PhD working with David May has taught me a lot about efficient and practical hardware design. As we commence our new processor design, we are increasingly learning. I prefer digital electronics to analogue and spend time working with Verilog and FPGAs (and, inevitably, VHDL and other languages/tools).
In September 2017 I started a PhD to continue research (with Professor David May and others) into trustworthy processor design. Specifically, I joined the University of Bristol's new Trustworthy Systems Lab. First and foremost, I am looking at formally proving the Integrated Hardware Garbage Collector that we have designed and that I implemented and proved feasible in my undergraduate thesis.
We are in the process of forming a new company to take our new hardware design from research to product. Please contact us if you're interested in learning more.
Surprisingly, Slide My Way launched its main product nearly 10 months ahead of Google's nearest equivalent product: HTML5 Creatives. But who as a teenager can compete with Google in the online advertising market? Particularly back in 2012 when the industry was still recovering from the financial crsis and other issues. Nevertheless, we had some successful meetings and people were interested. Ultimately, spending time on A-levels and Google's alternative technology meant we decided to shut down after approximately 3 years of work.
I'm altruistic by nature so I've become involved in a number of educational projects. I started teaching whilst running the Computer Science Society at my secondary school in lower sixth and have gone on to work for the University of Bristol's Merchant Venturers School of Engineering Outreach Programme (or MVSE Outreach for short!).
As part of MVSE Outreach I helped set up and lead the Digimakers Roadshow programme. I created a Micro:bit Space Invaders workshop which has been to 10s of schools and taught to hundreds of kids as part of Digimakers and Digimakers Roadshow. The workshops are completely free and we provide all the equipment necessary.
MVSE Outreach also runs its main Digimakers event four times per year in the "We The Curious" science center (just by Millenium Square in Bristol).
I'm not currently planning to become a teacher, but there is a high chance I will remain heavily involved in education in the future.
Note: MVSE has since been renamed SCEEM - School for Computer Science, Electrical and Electronic Engineering and Engineering Mathematics.
I have been involved annually in the recruitment of 2nd-year undergraduate students for Alelion-Caterva's year-long placements. I work on this freelance on behalf of Essaimage Associates Limited with Robert Owen and other members of the team.
As part of my recruitment work I have undertaken CV reviews and technical interviews via phone (BT Conferencing system) and Skype. I interview primarily for the Web/mobile development, Data analysis and Control systems developer roles covering web technologies down to C++ programming.