Andrea Ciceri

Enthusiast

Languages

I've a deep Nix knowledge since I had to work on its codebase several time. About blockchain develoment I feel confident with Solidity (also low-level EVM internals through embedded yul) and I've a basic knowledge of Pluto/Plutarch for what concerns Cardano. I did web development in the past using different languages like TypeScript and JavaScript for frontend (mainly React) and Python and Dotnet for the backend. I'm a big Lisp-like languages fan (I use Emacs Lisp frequently), I can work on codebases written in C, C++ and Java (I could be a little rusty and not efficient). I'm a big fan of functional programming, currently trying to improve my Haskell. Some languages I would like to study in the future are Agda, Idris, Rust and Unison (in no particular order).

Techonologies

I've a long experience with POSIX systems and I'm a Nix(Os) enthusiast of which I love its declarativeness and reproducible builds. My appreciation of decentralized systems led me to study of blockchain protocols like Ethereum and Cardano and also other decentralized solutions like IPFS, allowing me to work in the context of Dapps and Decentralized Finance.

Softwares

I've been using GNU/Linux for years, I'm comfortable with the shell and I'm used to customize my environment for greater efficiency. Moreover I extensively use Emacs, not just as a text editor. Other softwares I've dealt with in the past, in no particular order, includes Terraform, Nomad, Hercules CI, Hydra, Grafana, Prometheus, Hydra, Hardhat, Gimp, Blender, Matlab, LaTeX, MySQL, SQLite, Postgres, ANTLR and Arduino.

Experience

MLabs

Managing infrastructure (mainly for DevOps) both for internal needs and for customers. Mainly using Nix to manage infrastructures as code and writing internal tooling to work with Haskell, Cardano, PureScript and Nix. Also worked on the Nix interpreter and on Hydra (Nix CI) as part of Cardano Catalyst proposals. mlabs.city

NixOS Ocean sprint

Hacked 1 week on Nix with fantastic people on the fantastic island Lanzarote: oceansprint.org

BeatData

I've designed and developed several Solidity smart contracts, often integrated with wider protocols (DeFI, NFTs, DAOs, etc..) beatdata.com. Also extensevily worked with React (both Typescript and Javascript) and Django (Python).

Lunik Cineforum

I hold the role of vicepresident in the Lunik Cineforum association, a local cineforum. I'm also the technical manager and the creator of the website: lunik.it

Cooperativa Edificatrice Cernuschese

I'm a member of the Board of Directors of a local building cooperative, in addition to carrying out the most disparate tasks I'm also the tecnical manager and the creator of the website: edifcernusco.it

Playground

I took part in an internship lasting one month at Playground (playground.it) where I started to approach the web developement.

Connect.ie

I took part in this internship at connect.ie, the "Ireland's oldest independent service provider", where I developed a web scraping bot. Duration of the experience: two weeks.

Education

I've studied Math at the "La Statale" University of Milan, futhermore I've an high school diploma in information technology and telecommunications. But I'm also quite self-taught.

Projects

MLabs infrastructure

Working on MLabs infrastructure which includes bare metal servers, cloud servers, CI machines, Nix caches, private Cardano nodes, monitoring and alerting servers and so on. Also working on improving Nix/Haskell/Cardano related development tools. The open source part of what I did is available in the MLabs GitHub.

Materia DeX

An open source and innovative Decentralized Exchange living on Ethereum, I mainly wrote the Solidity contracts and helped with the frontend integration.

Cooper algorithm

Implemented in C as future part of MCMT, a model checker for infinite state systems based on the integration of Satisfiability Modulo Theories (SMT) solving and backward reachability. Paper.

LOGO interpreter

Simple proof of concept for an University course, written in Python.

BrainFuck compiler

Realized as divertissement, this small and naive compiler is written in Python. It parses the BrainFuck estoric language generating valid Python bytecode. Here the Gist.

My blog

A simple container for my thoughts and experiments, having no requirements I have the maximum freedom in the technologic choises. The contents are versioned using Git and the generation is done using Haskell and Nix. Here the GitHub repository.

My keyboard

I've built a split keyboard, 3d-printing the case and programming a custom firmware (using QMK), here the repo.

Interests

As person who studied math and computer science I enjoy analyzing and formalizing problems and puzzles looking for optimal solutions, this applies to every aspect of my life, even my personal life. When I was younger I studied music, and even if now only as a listener, I continue to marvel at its expressive possibilities in all its genres. I made this interest collide with my attitude tried programming simple sequencers and synthesizers. I'm fond of (hard) science fiction books but sometimes I also enjoy the great classics, I also like Cinema. It's been a few years that I run and I've even partecipated in some races, I think that devote few hours a week to my pshysical well-being allows for a greater mental efficiency.