Christian Barbati

Beeton, ON · (416) 801-4144 ·

I'm a back-end software-developer with experience in several different languages and technologies, primarily Java.

Check out some of my work and personal projects below, and feel free to send me an email or add me on LinkedIn!


Skills

Programming Languages:
  • Java
  • C++
  • C#
  • Python
Desktop Frameworks:
  • JavaFX
  • Swing
Web Development:
  • Java EE
  • Java Spring Boot
  • ASP.NET MVC
  • HTML5 / CSS3
  • Bootstrap
  • jQuery
  • JavaScript (Client and server-side)
Relational Databases:
  • MySQL
  • Microsoft SQL
  • Oracle SQL
  • PL/SQL

Experience

Software Developer

F&P Manufacturing

As a Software Developer focusing on back-end solutions, I develop robust Java-based applications to support our business operations. I have extensive experience working with Oracle databases, including writing PL/SQL functions. My role involves developing and maintaining our web application, with a focus on creating new features while continuously enhancing and refining the existing codebase.

Key Contributions:

  • Report Efficiency Improvements
    Improvement in report generation times for two reports, from 2+ hours to 10 minutes (91% improvement) and 40+ minutes to 5 minutes (88% improvement) respectively, achieved by optimizing code and PL/SQL logic.
  • Reporting System for Painting Process:
    Developed and implemented reporting system to track and manage parts that fall during the painting process. The system allows for detailed tracking of each incident, including the specific part, any additional damage, and the type of rework required.
  • Production Reporting Tool:
    Developed additional features for the Production Reporting tool, as well as optimizing the code to improve performance. Reviewed and refined the codebase with a focus on efficiency, logging, improved maintainability and scalability, and documentation.
  • Label Printing Program:
    Improved the load time of the label printing program, achieving up to an 85% reduction and preventing bottlenecks at the work-area where the parts are labelled.

Proposed Projects:

  • Log4J Conversion:
    Led the effort to convert our logging framework to Log4J, developing custom appender classes to enhance logging with session and request parameters, user data, and other critical information to make debugging easier and reduce the time required to provide resolution to the users.
April 2024 - Present


Projects

  • Many organizations are transitioning from monolithic to microservices architectures. As applications grow, scaling several smaller services is often easier than scaling a single large application. Effective communication between microservices is crucial for maximizing throughput. This simple application allows testing of HTTP and Kafka communication methods and the impact of different batch sizes on database performance.

    Current Features Include:

    • Communication via HTTP and Kafka
    • Configurable batch sizes for database inserts
    • Performance monitoring with Prometheus and Grafana
    • Data persistence with PostgreSQL
    • Containerized deployment with Docker Compose
  • A web-application with API I created in Java Spring Boot, allowing me to get the current weather conditions at my home as JSON. It serves to demonstrate my ability to create a RESTful API, unit-testing, and general software-engineering principles.

    Current Features Include:

    • RESTful API endpoint returning the current weather conditions
    • WebSocket endpoint providing streaming data at 1s intervals (test it out at wss://chrisbarbati.ddns.net:2048/ws)
    • Hibernate ORM Framework
    • Regular (10 minute interval) insertion of weather records into local MariaDB database
    • Unit tests with JUnit, logging
    • Caching to improve performance and reduce database load for subsequent calls
    • Prometheus endpoint with Grafana Dashboard to visualize performance in real-time
    • New API endpoints at /API/weather/past and /API/weather/pasthour that return past weather data as JSON

    Hosted on a Raspberry Pi weather-station I built, and makes use of the SenseHAT Java library I have been writing below.
  • In the process of creating the weather API above, I realized there was an opportunity to develop an open-source Java library to simplify the process of collecting sensor data from the Raspberry Pi without having to manually query the I2C registers.
    For now the only sensors I have added are the atmospheric sensors, but I hope to add in the remaining sensors soon.
  • Document Automation Program
    I acted as project lead to create a Python program for the Georgian College registrar's office to automate the process of compiling several spreadsheets into a master list. The program is currently in-use every graduation season, saving time and increasing accuracy.

Education

Georgian College

Diploma
Computer Programming

GPA: 3.7

September 2022 - April 2024

York University

Bachelor's Degree
Business Economics

GPA: 3.41

January 2019 - August 2022

Interests

I do a lot of coding in my spare time, but when I'm not coding, I have several hobbies. I enjoy photography, hiking, and working on my car. In the summer I go for frequent bike-rides at some local paths.

Here are some photos that my friends and I have taken on our adventures: