Introduction
Hi!
My name is Giovanni, a very funny and tall Italian guy, currently enjoying the German life in Munich.
I started my programming adventure when I was really young (around the age of 8) thanks to my father who taught me the Basic programming on an old DOS pc.
Growing up I started finding out about web hacking while I was also learning Perl, PHP and Python.
The real formative experience though, the one that led me to who I am today is the online OpenSource community and the University course I’ve done in Ferrara (Italy), where I had the opportunity to learn C, Java, Javascript and an hint of MPI and CUDA programming.
Experiences
Full stack developer @ fleetster
1 July 2017 - current position
AWS - Node.js - Typescript - React.js - React Native - MongoDB - Bash - Gitlab
I joined the company as a very junior developer but, thanks to the stimulating environment, I was able to reach the "core" group in the company.
Responsibilities:
- maintain and develop of the React Native applications
- Devops guy: maintain of the microservices using Docker, ECS, ECR, Cloudformation, ALBs, Fargate, Cloudwatch and Lambda
- maintain and develop the internal CI we have in place, using the Gitlab APIs and Bash scripting
Full stack developer @ Archon
2016 - 2017
Node.js - Typescript - Python - Postgresql - RabbitMQ
Archon is a set of software with the purpose of controlling UAVs fleet for
videosurveillance using a custom AI that manages drone’s missions and services.
At Archon I wrote the API infrastucture that gather data from a Postgresql Database for an Angular.Js frontend and the module that reads the AI commands from RabbitMQ’s queues and that is reponsible of drone’s movement.
Personal Projects
Glasnost ~ Link to the blog post
I am the (very proud) creator of the second main Gitlab client in the Playstore (by number of downloads).
The application is completely written in React Native and it currently supports:
- theming system
- multi host support
- fingerprint unlock of the database
- light experience (reduces the amount of used data)
Little side note: this project gave me the opportunity to became a Gitlab Hero!
CryptoBot (yeah yeah, I ran out of names, I know)
During the great pandemic of the 2019/2020, I found myself (like many others I suppose) with a lot of free time, and I decided I wanted to get new knowledge about finances; that's when I started learning about stock markets, EFTs and crypto.
Being a coder myself, I quickly got bored of constantly checking dozens of charts, to understand how my coins were doing and when to buy the dip. That's when I learned about Grid bots; after reading A LOT of strategies and studying pre-made bots, I decided I wanted to give this topic a shot, building my own CLI-based grid bot in JS, of course.
It is currlty WIP and still need to find a good exchange to interface to bot to (that offers REASONABLE fees over transactions), but it is currently working fine
TypeJS
One of the things I wanted to improve to be more efficient in my job, is my typing speed; that's when I started my research on the best techniques, keyboard laylouts, and hand positions that should give the best results when it comes to typing speed.
After MANY coding tests on MonketType and 10fastfingers, I decided I wanted to code something new (shocking, isn't it?), and that's where TypeJS was born.
TypeJS is a MonketType clone(ish) that allows you to specify a custom theme, a default timer for your tests and other preferences, like if the cursor should move when you have a typo in the current word or not.
Once the test is done, the user is redirected to a result page, where he can have a nice overview of the last test, with charts indicating how the test went:
Automaland
When my love for Screeps started 5 years ago, I decided I wanted to build a similar project myself, to challenge my skills and learn something new along the process.
Automaland is a game that is built on the same logic around the Screeps game: you have to manage entities to make them move, harvest energy, build walls, defeat enemies and so on. How do you manage those entities? Defining your own AI, coding it in Javascript in your browser.
The tech stack of the project is composed of:
- the backend is in Typescript
- the client is in React + Redux
- the database is a replicaset cluster of Mongo instances
- the realtime operations are queued in a Redis database
Flusso
Flusso is a complete, CI - CD system with an, according to me, gorgeous charts view, able to support job executions Gitlab - like, on docker images or on barebone instances, with a WIP plugin system
Obsidian
A discontinued dns server / proxy, written in Typescript, aiming to be a clone of the terrific pi-hole project
Pigna
Golang
Pigna is a software written in Go capable of managing and routing messages from
Producers to Consumers.
Contributions to the Opensource
DuckduckGo
This was my first OpenSource contribution. The DuckDuckGo search engine offers to developers the opportunity to write Perl “plugins” for a better and faster answer when making a search in the system.
I implemented many "goodies" and "spices", ideas mainly proposed by the DDG community.
Education
2013 - 2016
C - Java - MPI - CUDA - Mysql - PHP
This course gave me the opportunity to learn a lot about Algorithms Optimizations and
Networking, two of my favorite IT topics.
Contact me
If you are interested in contacting me, to say hi or to offering me a job position, you can write an email to [email protected] ; I will more than happy to answer you :)