Alfredo Di Napoli

Software Engineer

alfredo.dinapoli@gmail.com

+39 340 94 74 126

+44 07583 150443

Silicy, Italy / Brighton, UK

www.alfredodinapoli.com

At glance

Passionate Developer in love with FP

I'm an enthusiastic computer scientist who tries to find the most elegant solution for the problem at stake. I like to define myself a beauty-driven developer. Robert C. Martin's Clean Code is my bible, functional programming languages my inspiration. Quoting David Gelernter: Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity.

Skills

Architecture
Design

Experience in designing and implementing software architectures, especially distributed and fault tolerant systems. Experience as a team leader on small projects.

OOP
Programming

Five years of experience in Python development, using Django. Two years of experience in C++ development, with a focus on the C++11 standard.

Functional
Programming

Four years of professional experience as functional programmer, mainly Haskell (3 years), PureScript (2 years) and Scala (1 year). Eager experimenter of every functional language, ranging from Common Lisp to Erlang.

Technical

  • Python
  • C/C++
  • Java
  • Haskell
  • Scala
  • PureScript/Elm
  • Lisp(s)
  • OCaml
  • HTML/CSS/JS

Experience

Iris Connect

Lead Cloud Services Engineer

January 2017 - now

Lead developer on Haskell & PureScript projects, spanning from video transcoding to real time communication (WebRTC). Notably:

  • I have successfully and seamlessly integrated a Haskell microservice into a larger Ruby web application, delivering a customer-facing feature on time and budget.
  • I designed tooling to deploy our whole infrastructure to Elastic Beanstalk, successfully migrating from Heroku to AWS, saving money and gaining system stability.
  • I've designed the architecture for a real-time communication service based on WebRTC, where components written in Swift communicates with a PureScript application via a signalling server.
  • I've designed standalone Haskell applications to be run on AWS Lambda.

Iris Connect

Senior Developer

October 2013 - December 2016

Design and development of medium-sized Haskell & PureScript applications. I'm currently tech lead on a fault tolerant, highly concurrent and distributed video transcoding system, where components written in Haskell communicates via message passing interface using RabbitMQ. Notably:

  • The shared-nothing architecture I've implemented cut 30% of the infrastructure costs, switching from a continuous to an auto-scaling-based cluster, capable to shrink based on load and resource demand.
  • I designed a new scaling algorithm which improved transcoding throughput whilst cutting EC2 billing costs of almost 50%.

Cake Solutions

Software Developer

November 2012 - October 2013

Design and development of medium-sized Scala applications. I joined several projects spanning from game development to biometric security applications.

MBDA Missile Systems

Intern

June 2012 - November 2012

Researching Java capabilities in safety and performance critical software , as well as developing next-generation touch-based UI in C++ for missiles planning and control.

Laetus Framework

Lead Developer

October 2011 - May 2012

Laetus is a C++ Framework that aims to alleviate the burden of programming in plain OpenCL C. It has been developed at the College of Engineering of the Roma Tre University as my senior thesis. It supports efficient computations on a big volume of data.

Expiweb

Lead developer

October 2011 - Now

A platform to easily arrange and track shipment of envelopes, parcels or pallet across the world. This is a freelance job I developed completely in Python with the Django framework. Lately I've been working on a REST version of this application, written entirely in Haskell using the Snap framework.

OSS Contributor

Github

For a long time

I'm a prolific OSS contributor, and listed as such in at least three Haskell projects. I wrote a bunch of independent projects and a couple of Vim plugins.

Education

University of "Roma Tre" - Italy

Master Degree in Computer Science, Summa cum Laude,
grade average 29.4 over 30 (4/4 GPA).

October 2006 - May 2012

Thesis on high-performance, high-productivity oriented GPU computing.

Publications

Articles

A. Di Napoli, F. Gasparetti, A. Micarelli, G. Sansonetti, 'A Step toward Personalized Social Geotagging', IUI 2010 Workshop on Social Recommender Systems, abstract.

Alfredo Di Napoli — alfredo.dinapoli@gmail.com — +39 340 94 74 126