Hi! I am Davide, I build stuff for the internet.
My favorite things are Clojure, Dungeons & Dragons, open-source software/hardware, the outdoors and photography.
I've spent the last 5 years doing web development exclusively with Clojure / Clojurescript doing a variety of things, such as:
I've also done my fair share of devops work, performing some tasks such as:
Apart from these technical things, I enjoy very much teaching Clojure to people, especially to Junior Developers: there's nothing as rewarding as seeing their brains finally "click" and resonate with the beauty and simplicity of functional programming.
My education is in (Applied) Mathematics, and I received a BSc from University of Ferrara in Italy and my MSc. (with specialization in Scientific Computing) from Utrecht University, The Netherlands.
My main interests in this field are in discrete optimization, graph theory and parallel computing.
This project, which started as an excuse to teach Clojure to my partner (and ended up with her having a job as a Clojure developer!) is a recipe search engine which you can use to get inspiration on what to cook, based on which ingredients you have available at home.
The application (currently available in English and Italian) incorporates data from various recipes websites and is essentially a "better recipe search engine". Often, in fact, the search engine on such websites lacks more advanced functionalities, such as a fine-grained tuning of dietary preferences or requirements and availability of ingredients.
After shipping a stable version, the project is currently used privately until we figure out whether there is a viable business case.
If you want to participate to the testing, contact me!
At WorksHub, previously known as Functional Works, I have been a full-stack Clojure(script) developer, working with re-frame to improve the reach of the platform.
During this project, I mostly focused on cross-platform rendering, writing the same code in cljc for frontend and backend, using re-frame in both cases! It was a great chance to see the beauty of writing cljc code and using re-frame for server-side rendered pages and the normal SPA. This has had a tremendous impact in page speed and, ultimately, in SEO performance.
I have also spent quite some time working with the integration with GitHub and using Open source Issues for hiring, and I have created an Open Source Clojure bot that keeps repos synchronized..
For this ed-tech startup in Amsterdam, we wrote rill-event-sourcing, a CQRS/event-sourcing toolkit that lies at the heart of the system used by more than 100k students, and handling a history of more than 600M+ events.
This company was the one in which I had the chance to fully explore all aspects of development, ranging from the bare-metal setup of our PostgreSQL instance, to research and implementation of a gamification system, to frontend work with reagent and re-frame.
For this logistic startup, I started the Data department and managed a team of Data scientist and designed / engineered the data pipeline.
I wrote the event-handler which connected to the Kafka event-store and populated the analytics database, which the team used to perform research and prototyping of functions to be included in the main application.
This was an entry to the Clojure cup 2015 and is a synthwave-themed music performance application.
You can choose between drums, bass and synth and use your computer keyboard (or use your own MIDI keyboard!) to play retro-futuristic sounds.
This was also used as a stress test for franz a clojurescript persistent event-log library (inspired by Kafka) that we had built at Studyflow.
This project combines my interests for open-source software and open hardware into a weather station with an external unit for outdoor data.
The source includes the hardware schematics for the prototype, the Arduino software and the 3d-printed enclosure I designed.
This game written with re-frame is a reimplementation of a classic Flash game, Loops of Zen.
Other than the version you can try in your browser, I have also made a React-Native application using re-natal.