Résumé

If you don't know anything about computers, just remember that they are machines that do exactly what you tell them but often surprise you in the result.

Richard Dawkins The Blind Watchmaker

Personal Details

Location Livorno, Italy
GitHub https://github.com/lvillani
Phone Available upon request
Mail lorenzo@villani.me
Web https://lorenzo.villani.me

Skills

  • Platforms: Android, iOS, Linux (Debian, Ubuntu, Fedora, RHEL/CentOS), Embedded Linux (BuildRoot, Yocto), macOS, Windows.
  • Programming languages: C, Go, Java, JavaScript, Python, Swift, TypeScript.
    • Interested in: C++, Common Lisp, Kotlin, PHP, Ruby, Rust, Scheme.
  • Libraries and frameworks: Android, Angular.js, Django, Flask, POSIX, PyQt, Qt, React, Redux, UIKit.
  • Tools, services, and platforms: Ansible, AppVeyor, AWS, CircleCI, Docker, Git, Jenkins, Node.js, PostgreSQL, Subversion, Terraform, Travis CI, Vagrant, Webpack, Coffee (lots of).
  • Best practices: Clean Code, Continuous Delivery, Continuous Integration, Infrastructure as code, Test-driven Development.

Work Experience

Senior Software Developer at Develer

March 2013 - Present

Senior software developer at Develer, a software consultancy firm based in Italy. Handled projects ranging from low-level C, desktop GUIs with C++/Python/Qt, mobile apps, full-stack Web development, Single-page applications built with React and Redux. Working remotely since March 2018.

Key roles and personal achievements:

  • Full-stack developer and SRE. Handled rollouts of critical features to hundreds of users. Rebuilt the continuous delivery pipeline to improve build times, reliability, and reduce costs. Built internal tools to support the effort. Spearheaded efforts to migrate to AWS ECS.
  • Reverse engineered the network protocol of a legacy railway diagnostic system. Implemented an adapter in Go to allow the old system to talk with a new one designed to replace it incrementally.
  • Designed and implemented desktop GUI applications built on the Qt framework, including 2D CAD/SCADA systems. Handled migrations from Qt 4 to Qt 5. Built complex QML components to be integrated in a QWidget-based application.
  • Drove adoption of Continuous Integration practices at the company by implementing solutions based on Jenkins, BuildBot, Travis CI, CircleCI and AppVeyor.

Co-Founder and Android Director at Kiwi S.r.L.

2010 - 2013

Directed the development of the Android application, implemented features and created supporting tools and frameworks. Helped the company pivot from an iOS-only approach to a client-server cross-platform architecture, in order to expand the user base. Made technical choices about the server platform, set coding standards and adopted Agile development processes. For a while handled the simultaneous development of both the server and Android app before switching to focus exclusively on Android.

Summer of Code Student at Google

April 2008 - September 2008

Worked on the Kexi project (a FLOSS alternative to Microsoft Access, part of the Calligra office suite) to make data entry forms available over a Web interface. The server side component was developed in C/C++ using the Qt and Pion frameworks.

Other Experiences

  • Speaker at conferences: Presented talks at Qt Day, BetterEmbedded, and internal company events.
  • Teacher: Taught a multi-day introductory course on Android AOSP on both OS and application development.
  • Open Source Project Lead (2013 - Present): Leading the just-install open source project, which is a simple package manager for Windows.
  • Fedora Project Ambassador and Contributor (2008 - 2010): Packaged half a dozen applications as RPM. Participated in the KDE SIG. Presented Fedora at various events in Italy.

Education

University of Florence

2010 - (Dropout)

ISCED 5, Computer Science.

Liceo Scientifico Guido Castelnuovo

2004 - 2009

ISCED 3, Sciences.

Languages

Language Understanding Reading Writing
Italian Native Native Native
English C2 C1 C1
French A2 A2 A2
German A1 A1 A1