Flavio Pezzini, Developer in Bologna, Metropolitan City of Bologna, Italy
Flavio is available for hire
Hire Flavio

Flavio Pezzini

Verified Expert  in Engineering

Software Developer

Bologna, Metropolitan City of Bologna, Italy

Toptal member since July 17, 2017

Bio

Flavio is a senior Java architect and team leader with extensive experience working on complex projects for multinational companies, such as Growthday.com, Dell, IBM, Ernst Young, Optiva, and Deutsche Bank. He has diverse experience across industries such as banking, telecom, eCommerce, travel, and sports management. Flavio's strengths include communicating effectively with multiple teams, resolving conflicts, and mentoring professionals on long-term engagements.

Portfolio

PLS Logistics - Main
Java, Angular, Spring, Hibernate, JavaScript, Cloud, Agile, CI/CD Pipelines...
flexEngage
Kotlin, Linux, Java, Spring, Spring REST, Spring Data, Docker, Kubernetes, Git...
GrowthDay
Java, Spring, MongoDB, Amazon Web Services (AWS)...

Experience

Availability

Full-time

Preferred Environment

IntelliJ IDEA, Git, MacOS

The most amazing...

...project I’ve worked on was developing and maintaining six applications with millions of lines of code and extremely complex telecom business transactions.

Work Experience

Full-stack Developer

2022 - PRESENT
PLS Logistics - Main
  • Rewrote a script to read emails from an email inbox using the Microsoft Graph API and generate database records.
  • Worked on the metadata from these email messages, then fed into an AI engine that performs OCR on the email attachments.
  • Based on the JSON payload returned with the list of fields and values found in the documents, this script then uses a big list of business rules to update the database records accordingly.
  • Ensured accurate and stable results. The business rules contain dozens of edge cases, and the code is covered in unit tests for all the important decisions.
  • Rewrote the security portion to adjust to the Microsoft Graph API once it became clear that the old basic authentication would be terminated by Microsoft.
  • Coded several feature improvements and fixes on the legacy ERP application, always improving the code by adding test coverage where it made sense and clearing all code linter warnings.
  • Cloned an extensive application written by a 3rd-party vendor, trying to achieve feature parity in a very short amount of time.
  • Automated a series of manual processes performed by the business to ensure the billing department pays the carriers correctly.
Technologies: Java, Angular, Spring, Hibernate, JavaScript, Cloud, Agile, CI/CD Pipelines, Containerization, AngularJS, Selenium, Pub/Sub, Jenkins, Kubernetes

Senior Java Developer

2022 - 2022
flexEngage
  • Wrote a data pipeline that utilizes Kotlin, AWS SNS, and SQS to fetch certain statistics out of a list of customer transactions.
  • Contributed to this pipeline that is designed to handle large amounts of data and is built using a combination of asynchronous messaging and event-driven architecture.
  • Investigated and solved several issues blocking the existing legacy application from running within Docker on an M1 MacBook.
Technologies: Kotlin, Linux, Java, Spring, Spring REST, Spring Data, Docker, Kubernetes, Git, Legacy Code

Java Architect

2021 - 2022
GrowthDay
  • Vastly improved the application's security by identifying gaps in the infrastructure setup.
  • Added code validations following the ideas from secure by design to ensure the security of the data from the application.
  • Extracted a microservice to handle all the notifications sent through OneSignal to offload the main server.
  • Created features with high-quality software using TDD and SOLID principles in a fast-paced environment.
Technologies: Java, Spring, MongoDB, Amazon Web Services (AWS), Amazon Simple Queue Service (SQS), Software Development, JUnit, Mockito, Apache Maven, API Architecture, API Design, REST APIs, REST, Linux, Architecture, Kotlin, JSON, Software Architecture, Jackson, APIs, Agile, Spring REST, Agile Software Development

Java Architect

2020 - 2021
Superior Consulting Services - Ralf Lüttgen
  • Created a REST service to use an existing list of back-end beans that stored information about a telecom company infrastructure. Added integration tests using REST Assured.
  • Developed migration services to pull data from legacy systems and transform them before storing them in the new system.
  • Created a SOAP service to use an existing list of back-end beans that stored information about the company infrastructure and added integration tests using SoapUI.
Technologies: REST Assured, Git, Postman, SoapUI, SOAP, Oracle, Java EE 7, JMS, JPA, Hibernate, WildFly, Java, SQL, Jackson

Java Architect

2020 - 2020
IMFyi
  • Recovered the source code from a WAR file (decompiler), added back all the Java generics lost during compilation, figured out all the necessary dependencies, and generated a proper pom.xml file with all of the correct versions.
  • Fixed a nasty concurrency issue in production that was causing timeouts and essentially crashing the site every 15 minutes. This put the site back in business and allowed them to have more clients accessing the site simultaneously.
  • Solved massive performance issues with pagination in certain pages on the UI—pages that took 8–10 seconds to load started loading instantaneously.
  • Generated a list of recommendations and architectural plans in order to move the application to a more modern platform.
  • Set up the application locally and generated a comprehensive guide for future developers on setting up their environments.
Technologies: Git, Jira, PostgreSQL, JMS, PubNub, JSF, Java EE, JBoss

Senior Java Developer

2019 - 2020
Tremor
  • Developed features to add to the auctioning platform.
  • Hunted down and patched bugs by creating the necessary unit tests to demonstrate the bug's existence and then fixing them.
  • Refactored portions of the code to be safer, more performant, and more precise, following the industry-wide guidelines and recommendations from SonarQube.
  • Created a layer of abstraction on top of AWS services so that it would be possible to test the application locally without hitting AWS quotas when testing portions of the system that did not require AWS.
Technologies: JOOQ, Git, PostgreSQL, Spring Security, Spring Boot

Senior Java Developer

2018 - 2018
Ernst & Young
  • Contributed to a three-month-long project to provide secure storage of files for client applications.
  • Implemented Spring Security to authenticate users via SSO and basic authentication.
  • Stored the file metadata using Spring Data, initially transitioning to MySQL and then moving to PostgreSQL.
  • Refactored the source code to bring it up to standards.
  • Implemented new endpoints and made adjustments to existing REST endpoints.
  • Tested using both unit tests and JMeter for performance assessment.
Technologies: Spring Boot, Spring Data, PostgreSQL, Spring Security, Docker, Java

Chief Java Architect

2017 - 2018
Optiva
  • Troubleshot and fixed the most difficult issues assigned to the team.
  • Designed and implemented code changes to the applications following the latest code-quality recommendations.
  • Built a root cause analysis for production crashes and slowness issues, including heap dump, garbage collector logs, thread dump, log analysis, and VM tuning.
  • Created solution architectures, algorithms, and designs for solutions that scale to the customer's enterprise and their global requirements.
  • Developed my expertise in one or more of the customer's proprietary enterprise software products.
Technologies: SoapUI, SOAP, CSV File Processing, Apache Kafka, ActiveMQ, Java EE 7, Git, Web Services, Java, JVM

Senior Java Developer

2014 - 2017
PrestoSports
  • Built a Java web system responsible for collecting data about collegiate sports teams in the US and Canada.
  • Developed new features such as a user interface to allow users to automatically watch sports seasons into the next year.
  • Addressed existing bugs, not merely fixing the bug itself but finding the root cause and applying the definitive fix.
  • Fixed critical production issues by identifying the root cause and creating plans to avoid the problem in the future.
  • Contributed to peer reviews and solution-brainstorming meetings for my team and other teams as well.
  • Refactored code to address new needs; for instance, an overhaul of several system modules to upgrade the TinyMCE framework to the latest version. This included processing and sanitizing embedded videos (both hosted and from YouTube).
Technologies: Git, Jira, Apache Velocity, HTML5, CSS, Bootstrap, jQuery, MySQL, Hibernate, JSTL, Spring, Java, Jakarta Server Pages (JSP)

Java Support Engineer

2013 - 2014
IBM
  • Created usage and health reports based on various log files using shell scripts and Java for a large (20,000+ users) project-management system.
  • Monitored system health by checking RAM, CPU, and disk usage.
  • Took part in the deployment processes executing all the Linux and database steps and ensuring that the other professionals did their part on time according to the overall plan.
  • Offered system health and production feedback to the main development team so that they could improve the application.
Technologies: Shell Scripting, Java

Senior Java Developer | Team Leader

2012 - 2013
Freelance
  • Developed Java back-end systems for the Malaysian government responsible for providing various permits.
  • Recruited professionals to complete various website-building projects.
  • Managed professionals related to project website building, including features to a website, a whole website redesign, translations, and more.
  • Developed an onboarding wizard that allowed a company to record information and images of new customers into their system.
  • Conducted peer code reviews of junior colleagues providing detailed feedback.
Technologies: jQuery, CSS, HTML5, JavaScript, Java

Project Manager

2011 - 2011
TAM
  • Managed TAM's (the largest Brazilian airline) back-end systems in the travel industry. These systems are connected to Amadeus (one of the largest tourism software companies) and other third-party systems.
  • Ensured that the projects were delivered on time and were feature complete.
  • Communicated with all the teams at TAM, Amadeus, and third-party contractors.
  • Produced project plans and updated them accordingly.
  • Provided daily status reports to the upper management.
Technologies: Microsoft Project

Project Manager

2010 - 2011
CPMBraxis (via Bradesco Bank)
  • Managed a team of 15 analysts and developers working on six projects using Java and mainframe (COBOL) technologies for the banking industry.
  • Interviewed candidates for the various positions available.
  • Updated MS Project files according to the latest changes in the project execution.
  • Took part in requirements gathering and clarification meetings.
  • Mentored professionals towards improving their careers.
  • Acted as a mediator during conflicts, looking to find a compromise between the various stakeholders.
Technologies: COBOL, Java, Microsoft Project

Support Analyst Level 2

2009 - 2010
Dell
  • Led and managed bridge conferences towards a quick resolution of high severity issues–such as when Dell.com's website went down. It was about recruiting to the call all the necessary human resources and drive the issue to resolution.
  • Updated the documentation and executed a root cause analysis afterward.
  • Drove the resolution of lower severity issues, including being the point of contact between business areas and the development teams–taking full responsibility for the issue until it got resolved.
  • Produced trend analyses of the production incidents to provide feedback to development teams.
  • Trained professionals on the applications involved in the online store.
Technologies: Cross-departmental Collaboration

Team Leader

2007 - 2008
Compasso (via Sicredi Bank)
  • Managed a team of business analysts, technical analysts, and developers on integration projects between the legacy ERP and the new ERP using Oracle ODI.
  • Worked as an interpreter between the subject matter experts from the Indian ERP company and the local analysts that only spoke Portuguese.
  • Distributed tasks to the analysts and developers and followed up towards resolution.
  • Led daily standup meetings towards keeping everybody up to date with the latest from the project.
Technologies: PMBOK, Oracle ODI

Team Leader

2006 - 2007
CPMBraxis (via Deutsche Bank)
  • Led a team working on auditing/reporting Deutsche Bank UK projects. I was also responsible for providing third-level support to an auditing application, which ensured that the data produced by a number of applications were correct.
  • Reported status updates to the upper management weekly.
  • Mentored professionals towards improving their careers.
  • Implemented pre-sales processes and participated in those pre-sale events.
  • Interviewed candidates looking to find top-notch talent for the projects.
Technologies: Java, Unix, PowerBuilder, Oracle, Microsoft SQL Server, Sybase

Senior Java Developer

2004 - 2005
Dell
  • Worked as a Java developer on the application responsible for communication with vendors on the software and peripherals store at Dell.com.
  • Wrote modules to produce sales reports using JDBC queries and exporting to CSV files.
  • Built XML parsing modules necessary to provide additional features to the vendors that had their ERPs connecting to our application.
  • Worked on requirement clarification processes with the US team.
  • Helped improve the logging of the application, producing more detailed data.
Technologies: Oracle, Jakarta Server Pages (JSP), Jakarta EE, Java

Java and COBOL Developer

2001 - 2004
CPM Braxis Capgemini (via Bradesco Bank)
  • Developed COBOL modules for the banking industry. These modules ranged from reports to data processing modules that would read data from either text files or Db2 databases and produce output files with the updated data.
  • Developed servlets that interacted with the COBOL modules and displayed data in JSPs.
  • Tested the integrations between the COBOL and Java parts of the framework.
  • Conducted software peer reviews of my colleagues, providing objective feedback on their work.
  • Helped setup version control so that the team could be more productive.
Technologies: Apache Tomcat, IBM Db2, TELON, COBOL, Jakarta EE

Shopping Budget — Variation of Knapsack

https://github.com/flaviopezzini/shoppingbudget-permutation/
Problem Description:
Molly wants to buy laptops for her school, and I use Java to determine how many laptops she can purchase by comparing the vendors available. Each vendor sells the laptops in batches, with a quantity identifying how many laptops are in each batch, the price for the whole batch, and the parameters determining which laptop batches Molly should purchase for her school based on the available batch size and price.

I developed a Java-based solution that required permutation and dynamic programming. It involved a variation of the common knapsack 0/1 solution.

Sample input: 50 [20,19] [24,20]
• Molly has 50 dollars to spend.
• The first vendor has 20 laptops per batch, and each batch costs 24 dollars.
• The second vendor has 19 laptops per batch, and each batch costs 20 dollars.

The possible answers are 40 and 38.

If she buys from the first vendor, she will spend 48 dollars (24*2), and since she's buying two batches, the total quantity is 40 (20*2). However, if she buys from the second vendor, the maximum amount would be 38 since each batch has 19 laptops, and she'd run out of money after the second batch.

The final answer is then 40 since 40 is higher than 38.

Strava App to Format the Athlete Weekly to Copy/Paste to an Internet Forum

https://github.com/flaviopezzini/stravaweekly
A Spring application that uses OAuth2 to connect to Strava using the Athlete's credentials and pulls the latest week of exercises and formats it nicely so it can be posted on internet discussion boards.

Comparing Poker Hands in Rust

https://github.com/flaviopezzini/rust-poker-hand
A Rust program to compare Poker Hands using all the poker rules; for instance, a pair is stronger than a high card, a flush is stronger than a pair, and so on.
It served as a starting point in my track towards learning Rust.
2005 - 2006

MBA in Business Administration and Management, General

Fundação Getulio Vargas - Porto Alegre, RS, Brazil

2002 - 2003

Certificate in Web Development

Universidade Tecnológica Federal do Paraná, Pato Branco - Pato Branco, Brazil

Libraries/APIs

REST APIs, Spring REST, Jackson, jQuery, JOOQ, JSTL, PubNub, JMS

Tools

Apache Maven, Git, IntelliJ IDEA, Postman, Jira, SonarQube, Amazon Simple Notification Service (SNS), Jenkins, TELON, Apache Tomcat, Microsoft Project, WildFly, SoapUI, REST Assured, ActiveMQ, Amazon Simple Queue Service (SQS), Terraform

Languages

Java, COBOL, Java EE 7, Java EE 8, Web Services Description Language (WSDL), HTML5, JavaScript, TypeScript, Kotlin, PowerBuilder, CSS, Rust, SQL

Frameworks

JPA, Spring, Jakarta Server Pages (JSP), Spring Security, Spring Boot, JUnit, Bootstrap, Angular, Hibernate, Mockito, OAuth 2, JSF, AngularJS, Selenium, Apache Velocity

Paradigms

REST, API Architecture, Agile Software Development, Microservices, Agile

Platforms

Jakarta EE, Unix, Java EE, Visual Studio Code (VS Code), Docker, Linux, Amazon Web Services (AWS), MacOS, JBoss, Apache Kafka, Oracle, JVM, Kubernetes

Storage

Spring Data, Spring Data REST, MySQL, PostgreSQL, Microsoft SQL Server, Google Cloud, JSON, Sybase, IBM Db2, Amazon S3 (AWS S3), MongoDB

Other

API Design, Product Ownership, Software Development, APIs, OAuth, Vi, Architecture, CI/CD Pipelines, Product Management, Microsoft Graph API, Pub/Sub, Containerization, Cloud, SOAP, Shell Scripting, Web Services, CSV File Processing, Algorithms, Web Development, TinyMCE, Software Architecture, Legacy Code

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring