Skip to content
View lorenzoranucci's full-sized avatar
🐔
I'm a chicken Marge!
🐔
I'm a chicken Marge!
Block or Report

Block or report lorenzoranucci

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
lorenzoranucci/README.MD

+++ title = "About Lorenzo" +++

About Me

{{< figure class="avatar" src="/avatar.jpeg" >}}

I'm a backend software engineer with over a decade of experience in both product companies and consulting.

Currently Senior Staff Engineer and Tech Lead at ProntoPro & Armut, a fast-growing product company with a large user base and global reach.

Skilled in a range of technologies including Go, Php, MySQL, Redis, RabbitMQ, Kafka, Docker, Kubernetes, Helm, Grafana, Sentry, git, Drone, and Asana. Experienced in distributed and large-scale systems design and proficient in various architectures, patterns, and best practices.

I have a solid theoretical foundation from my master's degree in computer science.

GitHub | LinkedIn

Experience

Senior Staff Engineer and Tech Lead at ProntoPro and Armut

Jun 2019 - Now

  • Led the development of new features and managed two teams of software engineers responsible for product development.
  • Designed and implemented microservices and event-driven architectures, resulting in a scalable, maintainable, and reliable platform.
  • Worked with stakeholders to define requirements and implemented solutions that met business needs.
  • Developed and implemented automated testing strategies and CI/CD automation, resulting in improved code quality and faster release cycles.
  • Contributed to defining the vision and strategy of the engineering department.
  • Mentored colleagues and conducted technical-themed talks.
  • Ensured the best development experience by gathering feedback from colleagues with biweekly 1:1s.

Accomplishments:

  • Conceptualized, designed and implemented a new matching algorithm focused on user reactivation, which increased the number of quotes by ~2% and reactivated hundreds of users per month.
  • Contributed to building a new Matching Algorithm to join customers and professionals based on past behaviors using machine learning, bringing a significant impact on the company's revenues.
  • Built the first feature in the company that reliably implements an Event-driven architecture based on Kafka and the outbox pattern.
  • Improved the developer experience by decentralizing a docker-compose-based dev environment.
  • Built the first microservice to use CQRS, domain modeling (DDD), and event-driven architecture based on RabbitMQ.
  • Developed a SERP microservice using Go and Elasticsearch, enabling search and filtering of 1M professionals from 1k different job types.
  • Implemented an authentication system based on OAuth 2.0 and OpenID standards, utilizing a custom Go microservice for Identity Provider and ory/hydra for OAuth 2.0, OpenID flow orchestration.

Backend Software Engineer at Accenture

Sep 2018 - Apr 2019

I worked as a consultant for the Italian traffic police. I managed the technological modernization of a complex legacy system for the management of manual and automatic fines. Java with Swing framework and Oracle database were the technology used.

Software and Data Engineer at UmbriaDigitale

Nov 2014 - Oct 2018

As a Data Engineer, I managed the transformation of relational and textual data in Linked Open Data. This includes the design of ETL processes, the choice of appropriate RDF ontologies, and the build of a SPARQL database.

As a Software Engineer, I developed web applications in Java and Php for the management of public calls and funds of the Umbria region.

Freelance Software Engineer

Sep 2013 - Oct 2018

Engineering of web and mobile applications. Technologies: Magento 2, Joomla, PHP 7, Java 7, Android, MySQL, HTML, JavaScript, CSS.

Master's degree in Computer Science at University of Perugia

2014 - 2018

Grade: 110/110 cum laude

Thesis: "Linked Data knowledge base enrichment with Machine Learning"


Skills

  • Programming languages: Go, Php, Java, Python
  • Databases: MySQL, Elasticsearch, Cassandra, Redis
  • Message Brokers: RabbitMQ, Kafka
  • Containerization: Docker, Kubernetes, Helm
  • Monitoring and Logging: Grafana, Sentry
  • Version Control: git
  • Project Management: Asana
  • Testing: unit, integration, functional, TDD
  • Architectures: event-driven, microservices, layered, hexagonal, event-sourcing, domain modeling
  • Data Modeling: CQRS, denormalization, caching
  • Communication: message brokers, REST, GraphQL, Pub/Sub
  • Requirements Specification: example mapping, acceptance criteria, BDD

Contact

Pinned

  1. tor tor Public

    A stateless app to read events from MySQL binlog and write on Kafka using the Transactional Outbox Pattern.

    Go 11

  2. eda-semi-async-http-handler eda-semi-async-http-handler Public

    Handle HTTP requests asynchronously using Kafka events while maintaining a synchronous HTTP interface.

    Go 1

  3. event-stream-poc event-stream-poc Public

    POCs about event streaming platforms in different languages and formats. Current: GO, Kafka, JSON and Protobuf.

    Go

  4. sentimantic sentimantic Public

    Linked Data Knowledge Base Population (KBP) framework built on top of Snorkel. The default configuration uses Wikipedia as text corpus and DBpedia as target.

    Python 5

  5. thesis-sentimantic thesis-sentimantic Public

    Linked Data Knowledge Base Population using Machine Learning

    TeX

  6. hydra-login-consent-go hydra-login-consent-go Public

    Go