Ivano Pagano

Conceptual simplicity and underlying structural complexity. Elegant solutions powered by a rich and clear design.

This is what I strive to achieve and software development is my tool and my passion.

I enjoy the opportunity given to us by technology to support our creativity and bring ideas to life.

about me

I usually have my own opinions on different aspects of software development, architecture, code, culture; yet I'm fairly open to exchange and discussion regarding differing positions.

On the lookout for technologies that streamline the development process, the reasoning process, the delivery; it's not about the technology in itself but about the affordances it can provide.

Programming languages, software frameworks, C.S. theories are all valid means to simplify the daily chores of development and possibly reveal new unforseen opportunities.

I do care for the user, at the interface and interaction level.

I believe that the agile approach has its merits, as long as it stays grounded in day to day experience and feedback.

I claim to have good–enough skills as a software architect. I never officially fulfilled such role but my current and previous jobs often entailed evaluating and choosing the appropriate software stack and technologies for the project at hand.

I actively embraced (and anticipated) the ongoing rise of interest in functional programming and reactive systems design. I have a passion for distributed systems, Domain Driven Design, Artificial Intelligence (in the broader meaning), computer and tabletop games.

I'm constantly reading software books and articles and I'm keen to attend to software conferences, whenever possible. I attend and contribute to local developer groups.

professional experience

Scala design, development and support for different projects, including: web-apis, streaming event storage, financial trading, blockchain.
Co-organizer of the italian conference on Scala
Core development team for the Livebase product. The job entails all aspects and the whole development lifecycle of a web-based backend-generating turnkey application provided as a PaaS solution.
Integra Sistemi
Support for the Livebase team. The job entails all aspects and the whole development lifecycle of a web-based backend-generating turnkey application provided as a PaaS solution.
Design, development, testing, deployment of both back-office and B2B integration systems for a mid-sized ITC company.
MC3 Informatica
Software consultancy including design, developement and maintenance of web applications to manage fiscal audits for the italian tax agency.
Sinergy Group
Software consultancy for website and mobile development.
Development of game and entertainement platforms for web and mobile.

education and training

technical skills

Experience working on macOS, linux and windows systems.

Advanced professional knowledge of scala and commonly used libraries: akka, play! framework, slick, typelevel libraries.
Outstanding professional experience with java (familiar with 8+) and the java-ee platform, familiar with a wide range of open source libraries and the jvm in general.
Working experience of javascript/es6, html5/css3, typescript, angular–2.
Working knowledge of haskell and elm.

Professional experience with intellij idea, vscode, eclipse, sublime text.

Professional experience with different development and deployment tools including sbt, maven, gradle, git, jenkins, docker.

Professional experience with sql, relational and nosql storage (including cassandra, kafka, mongo-db, neo4j, elastic stack)

Consolidated knowledge of object oriented, functional, declarative programming and related design principles and patterns.
Expertise in reactive distributed systems, test-driven design, domain driven design, cqrs, event-sourcing, rule-engines, category theory.

personal extras

I can drive cars and motorbikes

I play drums and sing

I love ice-hockey, surfing and snowboarding

I read, constantly

I love my family and believe in God