Eduardo Hopperdietzel
Name Eduardo Alfredo Hopperdietzel Ralph
Email ehopperdietzel@gmail.com
Phone +56 9 826 409 33
City Santiago, Chile

About Me

Software Engineer & Technical Lead

Eduardo is a computer science civil engineer who graduated in 2022 from Universidad Austral de Chile. He currently lives in Santiago de Chile, where he is working on migrating an ERP to modern technologies at Alimentos del Pedregal.

He loves art and creating, therefore, he sees software development as a way to express his creativity. He dreams of creating his own free operating system with a user-friendly experience and software tools that allow everyone to unleash their creativity. Consequently, he has created Cuarzo, an organization dedicated to the development of free and open-source software.

He has a deep interest in the world of graphics on Linux and has dedicated a significant portion of his time to building tools that make it easier to create Wayland compositors (display servers) and the applications that run on them.

Projects Cuarzo Software

A few years ago, I founded Cuarzo, a software organization committed to developing free and open-source software. Consequently, all my open-source projects are released under @CuarzoSoftware.

Core

The foundation shared by every project in the Cuarzo framework. It provides the base object model with weak references and RAII ownership, signals and listeners, an event loop with timers and event sources, animations and easing, logging, and geometry, region, color and string utilities.

Ream

C++ graphics library for Linux. It provides generic buffer allocation and rendering utilities, abstracting the underlying platform (DRM, Wayland, offscreen) and graphics API (Raster, OpenGL ES 2.0, Vulkan) while still allowing direct access to API-specific features when needed. It offers RAII resource management, hybrid multi-GPU support with cross-device DMA-buf sharing, explicit synchronization through sync_file fences, a high-performance built-in painter and out-of-the-box Skia integration. It is the rendering foundation of SRM, Louvre and Kay.

Simple Rendering Manager

SRM simplifies the development of Linux DRM/KMS applications. It owns the display side — discovering GPUs and connectors through udev, parsing EDID, configuring modes, driving page flips and handing the session over between seats — while buffer allocation and rendering are left to Ream. It is the DRM/KMS backend of Louvre.

XDGKit

C++ library providing utilities for working with XDG standards. It currently implements icon theme lookups following the XDG Icon Theme Specification v0.13. Rather than loading icons into memory, it offers fast lookups of icon metadata — paths, extensions, sizes and more — backed by an optional on-disk cache with automatic reloading.

Kay

C++ GUI framework and rendering library for Linux, named in tribute to Alan Kay. It provides a flexible scene system, a Flexbox layout engine powered by Yoga, and drawing through Skia or Ream's painter. It features damage tracking, high-DPI and fractional scaling, screen transforms, and can be embedded into both Wayland clients and compositors.

Louvre

C++ library for building Wayland compositors. It implements the protocols and the compositor logic — surfaces and their roles, seat and input handling, sessions, clipboard and rootful XWayland — using the Factory Method pattern to provide default implementations you can gradually override, so you see results from day one while keeping full control. Display management is delegated to SRM and buffer allocation and rendering to Ream, which is what lets it support explicit synchronization, fractional scaling and hybrid GPUs.

Marco

C++ library for building Wayland applications on top of Kay. It implements the xdg_toplevel, xdg_popup, wl_subsurface and wlr_layer_shell roles, along with client-side decorations, theming, menus, foreign toplevel management and support for Louvre's own protocol extensions such as background blur.

Crystals WIP

The Wayland compositor of Cuarzo OS, built with Louvre and Kay. It implements the desktop shell — surface scene and views, toplevel and subsurface roles, seat handling and visual effects such as background blur — and takes the compositor side of Heaven to decide whose menu the global menu bar shows.

Heaven WIP

C++ global-menu library for Wayland sessions. It lets clients export their application menus — à la macOS — to a single global menu application, while the compositor decides whose menu is shown. All communication happens over the D-Bus session bus, and it ships as three libraries: one for the menu bar, one for clients and one for the compositor.

Firmament WIP

The global menu bar of Cuarzo OS, built with Marco and Kay. It acts as the bar side of Heaven, rendering the menus exported by whichever application the compositor reports as active.

Qt Cuarzo

Qt platform theme for Cuarzo OS. It lets unmodified Qt applications automatically export their menus to Firmament, the global menu bar, through the Heaven library — so they behave like native Cuarzo OS apps without touching their source.

Audio Box

Audio Box is a C library for developing audio plugins and is still under early development.

Levels Pro

Levels Pro is a digital audio workstation built with Marco that uses Audio Box as its main plugin and audio processing system.

Experience

Working Experience

Alimentos del Pedregal

Software Engineer / Technical Lead · 2024 – Current

Redesign and migration of the company's ERP to modern technologies.

  • Software architecture and system design
  • Full-stack application development
  • Backend development and API design
  • Frontend development and user interface implementation
  • Database design and management
  • Automated testing and test suite development
  • CI/CD pipeline design and implementation
  • Deployment automation and release management
  • Infrastructure setup and management
  • Cloud/server infrastructure management
  • DevOps and development workflow automation
  • Technical decision-making and technology selection
  • System integration and third-party API integration
  • Performance optimization and troubleshooting
  • Production monitoring and maintenance

Ito-e Mobile App

2022

During my university internship, I developed a mobile app using Expo/React Native and a REST API with PHP for Ito-e, a company specializing in providing services to construction companies for efficient project management and tracking. The application empowers Ito-e users to oversee project progress and conduct on-site inspections, allowing for organization by projects, typologies, batches, and more. Users, with different roles and permissions, can perform inspections in both online and offline modes. They can capture notes, photos, GPS location data, and other relevant information and can accept or reject completion indications provided by other users.

The development posed a significant challenge due to the vast and intricate database and resource-intensive operations required for measuring project progress and implementing complex search filters. To address this challenge, I devised a solution for offline functionality, implementing a method to compress and simplify project information and images, storing them in a local database using SQLite. Additionally, I optimized and replicated the sophisticated server-side searches on mobile devices with limited processing power. Once an internet connection was restored, all locally captured data seamlessly synchronized with the server. The company managers were impressed with the outcome, considering my work at a senior level. They mentioned that due to the quality of the product, they felt confident in expanding their services to international clients.

Unicorn Games

2018

I developed a 3D augmented reality mobile game using Unity for Unicorn Games, a company that combines tabletop games for children with technology. In this game, players engage in shooting at dynamic 3D targets that seemingly hover on the screen, seamlessly integrated with real-time images captured by the camera. This creates the illusion that the targets exist within the same room. The aiming mechanism involves utilizing the phone oscilloscope.

Simultaneously, I contributed to enhancing the visual effects of another augmented reality game within the company. This specific game, centered around Lego elements, manifested on the screen when kids directed the camera towards a game card.

Google Drive REST API

2019

I created a concise website and REST API using Node.js for an Argentinian company named Red Tecnológica. The application offered an interactive platform for students to explore and interact with Google Drive functionality. This included features such as adding, removing, and modifying files and directories, as well as sharing files and other related functionalities.

Body Gestures Controller

2020

I created a Linux desktop application for one of my freelance clients. This application enables users to map body gestures captured by the camera to system events, allowing functionalities such as controlling the pointer or managing racing games using hand gestures. To achieve this, I used the PoseNET model, enabling precise tracking of body part positions captured by the camera, meeting the client's desired level of precision.

Apunta al Éxito

2019

I developed a web application for a small business dedicated to providing tutoring services to pre-university students from their homes. The website comprised three panels: one for students, allowing them to view a calendar with available tutor hours for specific subjects, schedule appointments, and make payments through Transbank Webpay or in cash; another panel for tutors, enabling them to add the subjects they can teach and their schedules; and a third panel for administrators, providing them with the ability to analyze student and tutor profiles/reviews and manage finances. Additionally, the website calculated the transportation cost for tutors to reach the students' homes.

File Processing Chain

2021

I developed a desktop application using Qt and implemented a Python microservice for a freelance client. The project involved creating an application that allows users to select two directories—one to monitor for incoming files (from another local application) and another to receive the processed files from an external service.

Essentially, the local files were sent to a Python microservice, which added them to a RabbitMQ queue. Subsequently, the files were processed by an external service and sent back to the microservice as processed. The desktop application then fetched the microservice and stored the processed files in the second directory. Additionally, the desktop app displayed a table containing file information and the processing status.

Services

What I can build for you

Software

Whether it's web, desktop, or mobile apps, video games, Linux drivers, software for embedded devices, integration or design of AI models, and beyond – I've got you covered. I am a hardworking individual who learns quickly and is a perfectionist at heart.

Design

From crafting logos to UI design, whether it's vectorized or pixel art, and extending to 3D modeling or animations, I handle a variety of tools such as a significant portion of the Adobe suite, Figma, Inkscape, Blender, among others. I have a deep passion for art, infusing my heart into every project, and, as per feedback, a keen sense of aesthetic. I work tirelessly until the desired result is achieved.

Music

I play piano, guitar, bass, drums, and more. I love composing and producing music—mainly instrumental, as I am not proficient with lyrics. Additionally, I can assist you in mixing and mastering your tracks. My primary DAW is Logic Pro, although I also have experience with Pro Tools and Ableton. I frequently use the Fab Filter, Waves, and Ozone plugin suites and have a few pieces of hardware equipment.

Research

University Projects

In this section, you will find some of the projects I worked on during my university studies that I consider interesting.

Hand Recognition CNN

The goal of this project was to create a convolutional neural network for accurately classifying hand images featuring various gestures. Subsequently, the performance of this network was compared with a fine-tuned ResNet18, specifically retrained on its fully connected layer. Following extensive testing and training using diverse architectures and image preprocessing techniques, I successfully developed a model that demonstrated notably higher accuracy than ResNet18, particularly in the context of hand gestures recognition.

Video Encoder/Decoder

This project involved the development of a video encoder and decoder, along with adjustable noise elimination filters, to allow video transmission across both high and severely constrained bandwidths. Within this project, various techniques were applied, including the use of the 2D FFT, FIR, or IIR filters to eliminate sinusoidal noise, methods to address saturated pixels, and diverse compression techniques such as lossy compression using the cosine transform, perspective transformation analysis using the mean squared error, scaling or translation between frames, and redundancy reduction using Shannon entropy theory.

Billionaires Analysis

The objective of this project was to determine if it is possible to predict the number of billionaires per country based on variables such as population size, GATT, and GDP by modeling the problem with a Poisson regression. The project involved finding the model weights using various optimization methods and analyzing the results using resampling techniques such as bootstrap.

TFTP+

In this project, I was tasked with enhancing the TFTP 1350 file transfer protocol to include support for user authentication, directory navigation, and simultaneous packet and file transfers. The protocol specifications were documented in the form of an RFC, and I additionally provided an example implementation using Python.

Electrograms Noise Filtering

This project focused on analyzing, identifying, and filtering the noise present in signals generated by electrograms. To achieve this, an analysis was conducted in the frequency spectrum using the Fast Fourier Transform (FFT), spectrograms, and various types of filters were then applied. Subsequently, the effectiveness of Finite Impulse Response (FIR) and Infinite Impulse Response (IIR) filters was compared.

Talks

Talks & Presentations

Workshop Primavera UACh

2020

In my final year at university, I was invited to showcase my thesis at an annual workshop attended by professors, peers, and specially organized to motivate students from the first generation. During the presentation, I delved into Louvre, a C++ library designed to streamline the development of Wayland compositors on Linux—an ongoing project that I continue to advance to this day.

Hire Me

Let's work together

Feel free to contact me. I am based in Santiago de Chile and my only requirement is the ability to work remotely.