Francesco Natali

Hi! I'm Francesco,
a Software Developer from Somerset.

Dynamic and innovative Software Developer with over 20 years of experience in the tech industry, blending expertise in front-end and back-end development with a keen eye for design. British-Italian national with a robust portfolio, proficient in a diverse range of programming languages and technologies.

Since 2022, I have been fascinated by AI and Machine Learning. I received a Machine Learning certification from Google, and, recently, I followed the online Cloudflare’s AI Developer Workshop series and the Microsoft Machine Learning Challenge. Fluent in both English and Italian, I bring a unique blend of technical proficiency, passion and creative vision, ideal for innovative technology environments.

I live in Glastonbury, UK.

Personal Projects

Whether it is as a training exercise with a new language or framework, or just for the fun of it, I love creating personal projects. Here is a selection of some of them:

gen draw

Developed in one day in Vanilla JS, Gen Draw enables the creation of img2img (inpainting) images using the StableHorde API.

StableHorde is a crowdsourced distributed server, allowing people to create images with Stable Diffusion, a powerful deep learning model.

For a one-day project, I'm very happy with the results and it has been great fun to develop. I hope you'll enjoy drawing, entering a prompt and seeing what the AI creates!

View website here - View Git repository

teachable machine

Train a convolutional neural network to recognise images, live in the browser. Teachable Machine uses a technique called transfer learning. This means leveraging the power of a pre-trained model to solve a new problem, without needing a lot of data and much quicker.

The model used in this project is MobileNet, a convolutional neural network that is 17 layers deep. A pre-trained version of the network is loaded directly from TFHub. The pre-trained network is then used to extract high-level features from new images (here taken directly from a webcam) so you can create your very own classifier!

View website here - View Git repository

toxic text detection

My very first Machine Learning project! Toxic Text Detection detects irrelevant and inappropriate text, entirely in the browser, using TensorFlowJS. The entire model is just 199KB, which makes it very lightweight.

Once a sentence is submitted, the text is tokenized and passed to the model. The model then returns a toxicity level, ranging from 0 to 100. If it's greater than a given threshold, the text is considered toxic.

View website here - View Git repository

democracy

A Progressive Web Application built with ReactJS and NewsAPI to display the latest news for different countries and categories. It has offline capabilities using the Workbox Service Worker module, and automatically update its content when new articles are found.

You can use it in your browser or install it on your computer and mobile phone/tablet (Add to Home Screen). When installed, it acts as a completely standalone app.

View website here

chat!

A chat app built with Node.js, Express, Socket.IO, Bootstrap, SCSS, jQuery, DOMPurify, inLine.js, Vanta.js and deployed on Render. A lot of stuff for a little and fun app! :)

Although there are many chat apps, I wanted to challenge myself by developing my own. I had good fun with this project, and something like this lends itself to many potential additional features. To test it, you can simply open this app on several tabs/windows and chat with yourself. Or let me know and if I can I'll join you :) Technically speaking, it should support up to 300k concurrent connections!

Please note, the app may take longer to load initially, as its instance on Render auto-shuts down during inactivity.

View website here - View Git repository

♥ planet earth

A WebGL interactive journey to discover the beauty of our planet through the most famous national parks.

I had great fun with this project, and when spare time will allow I'll keep adding more parks to the list. Full-screen highly recommended for maximum cinematic effect!

View website here - View Git repository

notification system

A complete notification system with its API server and a sample client, entirely implemented in TypeScript without using any framework or extra library. The API can send a new notification, list all unread notifications, and mark a notification as read. Data are retrieved and stored using a JSON file.

This is the very first work I've ever done in TypeScript, and it has been quite a project for me to start learning this language with! Not using any frameworks or libraries to create an API server has been a challenge I really enjoyed! Please feel free to dive deep into the code and see how it works.

View Git repository

the peanuts game

A little drag&drop game built in React to test your knowledge of the Peanuts gang. At each page load, 8 characters appear on the screen (randomly selected from the whole gang). You'll be rewarded with confetti if you get them all in the correct place!

Although the game itself is very straightforward, it has been an interesting little project and the entire code is available on GitHub. Feel free to fork it and create your own version! It is very easy to adapt it for an entirely different set of characters :)

View website here - View Git repository

speak to me

I little experiment with Artyom.js (a wrapper for the speechSynthesis and webkitSpeechRecognition APIs, currently only for Google Chrome). Upon user's vocal commands, this app inquiries the Wikipedia API and when something is found it reads the answer.

This is just a starting point, as there is vast potential for improvements. Please note: the Wikipedia API is very fussy so not always a result is found!

View website here - View Git repository

C#

Many years ago I was very intrigued by C#. As a result, I wrote several articles and little projects. Here some of them available on the Code Project website.

View articles here

Contact

Don't hesitate to get in touch; Drop me an email or have a look over my résumé.