suddenlyGiovanni

Giovanni Ravalico

Software Developer

I am a Software Developer, a geek, and, more generally, a problem solver in the continuous pursuit of meaning.

I am also a young father of three and a devoted husband. My transition from the social sciences to software engineering has enhanced my innate curiosity, pragmatic approach, and desire to find new ways to solve old problems.

I’m looking to work in an environment where I can continuously grow as a developer, where experimentation is encouraged, failure is the tool to shape a better understanding of the given domain, and my efforts add up to something truly useful.

If you consider me for a role, read through my motivations first.

click on this link to download the pdf version of my resume 📜 giovanni-ravalico-resume.pdf

Skills

Programming languages
  • TypeScript
  • Flow
  • JavaScript
  • SQL
  • GraphQL
  • Scala (beginner)
  • Rust (beginner)
  • Kotlin (beginner)
  • Java (beginner)
Methodologies
Concepts
Front-end
Back-end
Libraries
Databases
APIs
Tools

Experience

Backend Engineer

Caya Gmbh

-Berlin, GermanyDocuments collaboration platform
  • Backend Engineer

    -

    Responsibilities

    Owned and maintained the customer-facing GraphQL API ("customer-api") as a Node.js server deployed in a container on AWS ECS. This API served as the primary entry point for client requests, performing authentication, authorization, and resolving queries, mutations, and subscriptions.

    Collaborated with colleagues who owned other subdomain APIs within Caya's hybrid backend architecture (serverless functions and containerized microservices), ensuring efficient handling of business logic for various functionalities.

    Owned and maintained Caya's CI/CD pipelines using GitHub Actions, automating builds, tests, and deployments, ensuring efficient and reliable delivery of software updates.

    Reviewed and provided feedback on code changes across various backend systems, fostering code quality and maintainability.

    Highlights

    Supported the re-architecture of Caya's backend system using Domain-Driven Design (DDD) principles.

    This initiative aimed to improve code maintainability, enhance scalability, and reduce complexity.

    Implemented code within the newly defined bounded contexts and applied layered architecture within each context.

    This approach fostered modularity and a clear separation of concerns, ultimately contributing to a more maintainable and scalable backend system.

    Championed and implemented RFC (Request for Comments) and ADR (Architecture Decision Records) processes, improving team decision-making, knowledge sharing, and reducing project risks. This initiative resulted in:

    - Improved productivity: Minimized time spent revisiting past decisions, enhancing focus on core tasks.

    - Better Decision-Making: Leveraged past records for informed future decisions.

    - Enhanced Knowledge Management: Expedited onboarding of new team members with accessible project history.

    - Reduced Risk: Mitigated project risks by learning from documented experiences.

    - Adept at working within hybrid architectures, leveraging both serverless functions and containerized microservices to achieve optimal performance and scalability for Caya's backend systems.

    Technologies
    Typescript
    Node
    GraphQL
    Jest
    Cucumber.js
    Express.js
    Apollo Server
    Prisma
    MySQL
    MikroORM
    AWS Lambda
  • Senior Frontend Engineer

    -

    Responsibilities

    Orchestrated the front-end development process for multiple product domains, encompassing both product management (discovery phase) and implementation (delivery phase).

    Translated product ideas into technical requirements and user stories.

    Collaborated with designers and backend engineers to ensure seamless integration.

    Mentored junior developers in Test Driven Development (TDD), Behavior Driven Development (BDD), and design patterns.

    Championed the "boy scout rule" to improve codebase maintainability and reduce technical debt.

    Acted as the team's TypeScript "Wizard," providing support and ensuring code correctness.

    Focused on accessibility and performance considerations throughout development for a user-centric experience.

    Communicated and collaborated with other front-end engineers across teams to define front-end standards and best practices.

    Highlights

    Championed a collaborative, cross-functional team structure that successfully pioneered a vertically integrated development model. This innovative approach delivered full-stack features (product concept to implementation) and was adopted by the company as a new standard.

    Improved team happiness and code quality through fostering a positive and collaborative work environment.

    Mentored a junior developer who grew to take full ownership of the company's design library, a critical codebase used throughout the application.

    Effectively integrated accessibility and performance considerations throughout development, leading to a more user-friendly and performant application.

    Technologies
    Typescript
    React
    Cypress
    Jest
    Testing Library
    Storybook
    GraphQL
    Apollo Client
    styled-components
Contacts:
Arnaud Seilles (CTO)arnaud.seilles@getcaya.com

Software Developer

Bettermarks Gmbh

-Berlin, GermanyEdTech

Senior Frontend Engineer

ToolTime Gmbh

-Berlin, GermanyB2B SAAS

Full Stack Web Developer

Appico Gmbh

-Hamburg, GermanyDigital Product Design Studio

Front-end Web Developer

MadeByEnka

-Rijeka, CroatiaHandmade Fashion e-commerce

Front-end Web Developer

Ravalico Real Estate s.a.s

-Trieste, ItalyReal Estate Agency

Education

Web Development

SPICED Academy-Berlin, GermanyCoding Bootcamp
  • Work with responsive design using HTML, CSS, and JavaScript.
  • Create exciting, interactive web apps and animations using native browser APIs as well as the jQuery library.
  • Build server-side JavaScript applications using Node.js and learned to use third-party APIs to create exciting dynamic web pages.
  • Create powerful single-page web applications with front-end frameworks such as React and Backbone.
  • Tech: [ Semantic HTML, CSS, JavaScript, Node, SQL, PostgreSQL, React, Redux, Express, Backbone, WebSockets ].

Disciplined Entrepreneurship

Innovation Factory, AREA Science Park-Trieste, ItalyBusiness Bootcamp

History

Università degli studi di Trieste-Trieste, ItalyBachelor

Interests

Functional Programming
  • Scala
  • Rust
  • Haskell
Object Oriented Programming
  • Kotlin
  • Java

Languages

LanguageFluency
EnglishFull professional proficiency
ItalianNative speaker