Riccardo

Hello! I'm Riccardo

I am a Hardware Design Engineer

Currently Building Automotive Power Converters @BRUSA HyPower AG as a Hardware Development Engineer

My Approach To Hardware Design

I combine engineering intuition with code to simulate, analyze, and optimize hardware systems — before a single prototype is built.

1

Define The System

I start by describing the system and defining custom key performance indicators (KPIs) - whether that’s efficiency, waveform shape, thermal constraints, distortion, or size. This establishes what “good” means for the specific application.
2

Optimize Ideal Parameters

I run an initial optimization on ideal electrical parameters - like inductances, capacitances, or resonant frequencies - across large design spaces using custom-made automated simulations. This gives a clear view of what’s physically achievable before locking into any constraints.
3

Optimize Component Parameters

Once I’ve defined optimal electrical values, I iterate over a database of real components - MOSFETs, capacitors, inductors, magnetics - to find the best match based on the current project’s KPIs. I weigh trade-offs like conduction losses, switching behavior, thermal margins, and price - all programmatically.
4

Build A Minimal Prototype

With the best components selected for each function - based on KPIs and simulation - I move to a first-pass prototype. Non-idealities can’t be fully modeled, but this approach ensures the prototype starts from an informed, high-performance baseline rather than guesswork.
5

Refine, Not Redesign

The prototype is used to uncover and correct the effects of non-idealities, not to reinvent the design. This helps avoid the trap of anchoring around a poor first version and reduces iteration count, often needing only one or two builds instead of many.

Tools & Stack

I use modern tools to automate design exploration, extract KPIs, and interface with real hardware — bringing structure and speed to every stage of hardware development.

Rust

I use Rust to build core libraries for simulation, waveform analysis, and optimization. It's fast, safe, and ideal for transforming hardware design into a programmable, repeatable process.

Rust Embedded

I write embedded firmware in Rust to control and validate hardware behavior directly on microcontrollers. This allows for consistent logic between simulation and real-time execution.

Python

I use Python to automate simulations, control experiments, and analyze large data sets.

Typst

I use Typst to create clean, programmable technical documentation. It allows me to generate consistent plots, analysis tables, and design reports directly from source data.

Vue.js

Vue powers the frontend of my dashboards and tool UIs. I use it to visualize design spaces, plot waveforms, and create interactive components for engineers and clients.

Nuxt.js

I use Nuxt to build full-stack web apps that connect hardware simulation backends with intuitive interfaces — ideal for sharing results, dashboards, or configuration tools.

Tauri

Tauri lets me wrap Rust-based backends and modern UIs into efficient desktop apps. It’s perfect for building portable, low-footprint design tools that run natively.

Let's Talk Tools

Whether you have a question, a challenge, or just want to explore ideas — I'm always happy to talk hardware, code, and everything in between.