// curriculum vitae

Full Stack, Cloud & Embedded Engineer

I design complex systems to provide simple solutions for your problems.

Profile photo
Tsla / EECSB
Current Employment Status

Employed and also working on my own things. So I'm not available for hire unless... you make me a really, really, really good offer. ● Contact

// personal info:
// NameTsla / EECSB
// links:
Versatile engineer with hands-on experience spanning the full product lifecycle, from low-level FPGA digital logic and embedded firmware through cloud infrastructure, API design, and browser-side delivery. Comfortable owning systems end-to-end: designing the architecture, building the services, deploying on Azure, and iterating with real users. Maintains an active technical blog with 278 published posts and open-source tools used across thousands of browsers. This CV doesn't cover everything I've done over the years as there's simply too much, so for more info, contact me.
278Blog Posts
130C# Articles
71Electronics
27GitHub Repos
24★Top Repo Stars

Languages

C# / .NET HTML / CSS / JS TypeScript PHP MySQL / T-SQL Bash / PowerShell Node.js C / C++ Java Verilog Assembly Python

Cloud & Infrastructure

Azure Functions Durable Functions Azure DevOps CI/CD Azure Data Factory Azure Container Registry Azure Tables / Blobs / Queues VMs / VPNs Docker ARM Templates Google Cloud Linux

Web & Frameworks

Blazor WASM WordPress REST / OData / gRPC / SOAP SEO / Webmaster Konva.js (2D canvas) Chart.js Browser Extensions ML.NET GitHub / GitLab

Databases

SQL / MySQL MSSQL Server PostgreSQL CosmosDB Azure Tables (NoSQL) Blob / File Shares Firebase Redis Apache TinkerPop (Gremlin) Qdrant (Vector DB)

Hardware & Embedded

Arduino / ATtiny Raspberry Pi STM32 ESP32 / ESP8266 FreeRTOS PCB Design KiCad LabVIEW Oscilloscope / Signal Gen. Quartus / Verilog 3D Printing

Tools & Process

Postman / SoapUI Visual Studio / VS Code MSSQL Studio MySQL Workbench Scrum / Agile DevOps CI/CD WireGuard / VPN MS Dynamics 365 / SAP Unity / C# GitHub Copilot / Claude Code AI / ML Locally-Hosted AI (Ollama)
Full Stack Engineer, System Architect, Systems & Infrastructure / Sys Admin
// Manufacturing / ERP Integration / IT Infrastructure
2018 – Present

Owned end-to-end delivery of a suite of interconnected enterprise systems. Designed overall system architecture spanning WordPress configurator plugins, a serverless Azure microservices backend, Blazor WASM frontends, and deep integrations with ERP (MS Dynamics 365, SAP), CRM, PIM, PDM, MES and DAM systems. Led technical decisions across all layers. Managed networking infrastructure, server administration, and internal tooling. Handled OpSec practices including backups, password management, and access control. Supported cross-company project management and coordination via Scrum / Agile.

Blazor Azure Functions WordPress Plugins DriveWorks Azure DevOps C# PHP JavaScript Node.js CosmosDB Networking Linux Windows Server Docker Scrum / Agile Documentation MS Dynamics 365 / SAP

Production systems delivered across cloud infrastructure, system integration, and frontend engineering, most involving significant architectural ownership rather than feature-level contribution.

Graphical Product Configurator

Real-time 2D graphical configurator using trigonometry, Konva.js canvas, a recursive graph data structure, and a custom CAD-like coordinate system. Integrated with ERP (MS Dynamics 365 OData), DriveWorks PDM, and dynamic pricing from BOMs.

PHPJS / Konva.jsT-SQLMS Dynamics 365 OData

Product Configurator & PIM

Product and project configurators on a custom PIM: a JSON product-definition structure, a product reference service, and sync services linking ERP and CRM. Built and then migrated the PHP / JS configurators to Azure microservices (C#, Azure Functions, Blazor) and handled 3rd party configurator integration (APIs, data, files, translations, code mapping).

C#Azure FunctionsBlazorPHPPIM

Azure Microservices Backend

Durable Azure Functions suite handling email, PDF generation, Excel export, data processing, and pricing. CI/CD pipelines including ACR Docker image push and static Blazor app deployment via blob storage with IP-restriction options.

Durable FunctionsAzure DevOpsC#Docker

MES & Label Printing System

Manufacturing Execution System for automated product testing workflows, ZPL label printing, and comprehensive audit logging. Multi–3rd party integration.

.NET / C#T-SQLLabel Printing

Low-Cost Full-Stack Blazor Hosting

Cost-optimized Azure pattern: static Blazor WASM in blob container + Azure Functions backend + Tables, File Shares & Blobs for persistence. Solved CI/CD upload permission issues and serverless inbound/outbound IP pool constraints.

BlazorAzureARM TemplatesCI/CD

Pricing Engine: Excel to BOM-Driven Pricing

Took pricing from Excel sheets sent to customers to a live service: an Azure Data Factory pipeline imported the prices into a database, served over an API to the configurators and to customers directly. Later migrated it from SQL to Azure Tables and finally into the PIM, built on a CosmosDB graph database, where prices are generated dynamically from the product tree's BOMs and materials.

T-SQLCosmosDBAzure Data FactoryNoSQLPIM

DAM & Product File Generation

Digital Asset Management system and product file generation pipeline producing 2D drawings, 3D model exports, datasheet PDFs, and lighting-industry-specific formats (LDT, IES, ULD, ROLF, GLDF, RFA). HTML→PDF via WebKit renderer, SAS token-controlled blob delivery.

C#Azure BlobsDriveWorksLDT / IES / ULD / ROLF / GLDF / RFAPDFExcelOBJ

WordPress Plugins

Full WordPress setup, SEO, and admin. Multiple production plugins: product configurator, project configurator with ERP integration, DriveWorks bridge.

WordPress / PHPPlugin DevSEOERP Hooks

Integrations

3rd party integrations (MS Dynamics 365, SAP, Quin, DriveWorks). API integrations with customers' systems.

MS Dynamics 365SAPQuinDriveWorks

And More

Over nearly a decade of work, I've done a lot more than what's listed here. For more info and all the details, contact me.

Google Search Customizer ★ 243

Cross-browser extension published on the Chrome Web Store, Firefox Add-ons and Microsoft Edge Add-ons that cleans up Google search results. Ads can be removed or made obvious with a marker and background color, Google-injected widgets ("People also ask", "Top stories", the side panel) stripped to leave only plain results, emojis removed from titles and descriptions, and result URLs recolored, moved below the title or hidden. Settings stay in the browser and no data is collected. Free and open source, with an active user community reporting issues on GitHub.

8-Bit Computer in an FPGA + Compiler ★ 32

Complete 8-bit computer designed from scratch on a DE0-Nano FPGA using Verilog: ALU, RAM, registers, clock module (frequency divider + PLL), multiplexers, encoders/decoders, control unit, and I/O. Ecosystem includes: an Arduino RAM programmer, a Windows C# AsmIDE desktop app, a custom MyLang programming language + compiler (compiles to 8-bit assembly with full AST visualization), and a Blazor WASM port of the entire IDE, live at eecs.blog/BlazorApps/MyLangCompiler/.

Lab Equipment Controller ★ 2

Software suite that discovers lab instruments (oscilloscopes, signal generators, multimeters, power supplies) on the network or a serial port and drives them over SCPI (VXI-11 / RS-232). One shared .NET engine powers a WinForms desktop app, a browser build in a Docker container, a cross-platform CLI for scripting measurements into CI, and a NuGet library. Includes a multi-instrument scripting language with live plotting (e.g. sweeping a generator while reading a scope to measure a filter's frequency response) and a library of 36 command catalogs (~24,000 commands transcribed from vendor programming guides). Developed and verified against real Rigol and Siglent hardware.

Graph DB Viewer ★ 11

Blazor WebAssembly app for querying, visualizing and editing graph databases straight from the browser: Gremlin (TinkerPop, Cosmos DB), Cypher (Neo4j, Memgraph), AQL, DQL, GUN and SPARQL. Results show as JSON, an interactive 2D or 3D graph, a table, or on a map and globe, with a step-by-step traversal debugger, schema-aware Monaco autocomplete, staged edits, plain-English queries through an LLM, and import/export (GraphSON, DOT, Mermaid, CSV, Excel, PNG/SVG, glTF). Runs as static files with no backend, or with an optional Docker server for databases a browser can't reach.

Online GDS File Viewer / Editor ★ 1

Viewer and editor for IC layouts that runs entirely in the browser, so a file is never uploaded. Opens GDSII, OASIS and DXF and saves to any of them with the cell hierarchy intact, so it doubles as a converter. A layout can be inspected as an editable 2D drawing (select, move, draw, measure, boolean operations, net tracing through vias), as its 3D process stack in three.js (viewable in VR/AR through WebXR, exportable as STL, OBJ or glTF), or as the raw record stream in Monaco. Adds design rule checking, layermaps, 897 bundled SkyWater sky130 cells, shareable links and an embeddable iframe mode. Built as an installable Blazor WebAssembly PWA that works offline, with the parser also published on NuGet and as a CLI.

Decent Apps: Self-Hosted Web Tool Suite

A landing page and suite of small, self-published web tools built in rapid succession: DecentPaste (Monaco-editor-based pastebin), DecentDiff (Monaco diff tool), Decent Chat (peer-to-peer chat over GUN.js, no backend), Graph DB Viewer (browser-based Apache TinkerPop/Gremlin visualizer & editor), 3D Mesh Optimizer, Verilog Flow (schematic → Verilog generator), C# Code Diagram Generator, and Image Compare. All are Blazor WebAssembly PWAs that install and keep working offline, several of them privacy-focused dApps that keep data on the device or on the decentralized GUN.js network rather than on a server.

C# Online Compiler (WASM)

Compiles and runs C# entirely in the browser, so code never reaches a server. A Blazor WebAssembly app drives the Roslyn compiler APIs directly: it parses the source into a syntax tree, compiles it against framework assemblies fetched from the app's own boot manifest, emits the DLL into memory and runs it through reflection. NuGet packages are added by calling the NuGet REST API directly, picking the best-matching target framework and resolving the dependency tree recursively. Monaco provides the editor, and sign-in, saved code and a live-share mode for editing together run on the decentralized GUN.js database.

Soldering Sponge Automatic Water Dispenser

Keeps a soldering sponge wet by itself: a copper-clad sensor split in two measures the sponge's resistance, and when it dries out an ATtiny45 runs a small pump, with a cap on how often it may dispense. Schematic and PCB designed in KiCad and the board etched at home (toner transfer, ferric chloride), in a 3D-printed enclosure with its own transformer supply. Firmware, KiCad and enclosure files are on GitHub.

Home Automation Setup

Self-hosted smart home, built up over several years, that exposes nothing to the internet. Home Assistant runs as a VM on Proxmox alongside Mosquitto MQTT, Node-RED, InfluxDB and Grafana, reached remotely over WireGuard with an Nginx reverse proxy providing TLS. Much of the hardware is custom: ESP8266/ESP32 controllers, some on home-made PCBs, for the roller blinds, ceiling fan, lights and a room power meter, a WLED ambient light strip, a ventilation and solder-fume extraction system, ESP32 cameras with Frigate AI object detection, and a wall-mounted tablet as the control panel. Off-the-shelf devices are kept local too: Xiaomi BLE sensors and a cloud-only thermostat were reflashed with open-source firmware, the latter forked to add a temperature offset.

Random Projects

A running collection of small builds that didn't warrant a post of their own: an FM radio transmitter, a 5.8GHz mini FPV camera and an SBUS inverter for custom-built quadcopters, a 6502 computer built up on breadboards, an adapter PCB that runs an old camcorder's CRT viewfinder from an Arduino-generated video signal, an ESP8266 Tasmota timer, SDR experiments in GNU Radio with a HackRF, LoRa and Meshtastic nodes in 3D-printed enclosures, power banks from salvaged 18650 cells (tested and matched by capacity and internal resistance), and a networking cabinet made from an old 3D printer's case.

DiskPart UI ★ 31

Windows desktop front-end for the diskpart console tool. Lists disks, partitions and volumes parsed from diskpart's own output, builds operations (clean, convert GPT/MBR, create, format, extend, shrink…) by point-and-click into an editable script preview, and only runs it behind an explicit destructive-action confirmation. Built as a .NET MAUI Blazor Hybrid app (Razor UI in a native window that keeps native powers like elevation and process launch), calling the command line via CliWrap.

Schematic2KiCad ★ 2

AI-powered web tool that reads a photo of a hand-drawn or printed circuit schematic, uses Google Gemini to extract the components and connections, lists them as a BOM, and exports a valid .kicad_sch file directly importable into KiCad. Built in TypeScript with Vite and deployed live on Google Cloud Run, where visitors plug in their own Gemini API key, kept only in their browser.

Mini Portable Server From An Old Bitcoin Miner

A small portable Linux server in the case of an old Butterfly Labs Bitcoin miner: an Orange Pi Zero Plus running Armbian, an SSD on a stripped-down SATA-to-USB adapter, an 18650 UPS module (modified to work properly), a built-in 5V charger, DC barrel jack, external WiFi antenna and power switch. Runs Podman with Cockpit for containers, as a portable MQTT broker, access point or web server.

DIY Spot Welder

Spot welder for sheet metal and li-ion battery packs: an old transformer rewound with a few turns of thick welding cable as its secondary, an off-the-shelf pulse-control board, a 3D-printed electronics enclosure, a foot-switch trigger and copper-clad adapters for smaller battery-welding probes. A pneumatic clamp positions and presses the work: an ATtiny opens the air valve through a relay, waits, then fires the weld through a second one.

DIY Portable 100W LED Torch

Rechargeable 100W LED floodlight with a large built-in battery that charges in place: a 3D-printed two-part housing, a CPU cooler as the LED's heatsink, a BMS, a boost converter and adjustable voltage/current regulation, plus a matching 16.8V linear charger built from two transformers. At full power it settles around 62°C, well inside the LED's rating.

C# / .NET130
Electronics / DIY71
JavaScript41
PHP28
Embedded / MCU24
FPGA / Digital Logic18
Cloud / Azure12
Networking / Security7

C# Deep Cuts

Threading & TPL Async / Await LINQ Unsafe / Pointers SIMD GPU (ILGPU) ML.NET COM / PInvoke Streams / WebSockets Polly (Resilience) Reflection Serialization IL / Assembly Internals NuGet Packaging Benchmarking

Embedded Deep Cuts

FreeRTOS ISR / Timers OTA Updates ESP32 WebSockets ESP32 WiFi Camera Custom PCB Programmer OLED / I2C Displays SPI / I2C / UART ATtiny / ISP Programming SD Card Interface Home Automation Stack

FPGA / Verilog Deep Cuts

CPU Design Flip-Flop Design RAM & Registers Muxes & Decoders Clock Module / PLL Verilog iCE40 / IceStorm MAX II CPLD Quartus IC Layout / ASIC

Electronics Deep Cuts

Oscilloscope Measurements SCPI Instrument Control Lab Power Supplies High Voltage / Induction Heating Power / Current Meters Batteries / UPS Electronics Repair
// Architecture & Design Principles
SOLID, ACID, CAP Theorem, System Design Patterns, ...
// Security & OpSec
Backups, Password Management, Phishing / Malware Awareness
// Testing & Quality Assurance
Unit & Integration Testing, Functional & Performance
// Performance Engineering
.NET IL Internals, Assembly-Level Knowledge, SIMD, GPU, Interop, P/Invoke
// AI Integration
LLM APIs (Claude, OpenAI, Gemini), ML.NET Image Classification, Locally-Hosted AI (Ollama, Open WebUI, n8n, Qdrant)
// Project Management
Agile, Scrum, Cross-Company Project Coordination, End-to-End Product Ownership
// Documentation
Specs, Code & Architecture Documentation, Technical Blogging
// ERP (Business & Manufacturing)
MS Dynamics 365 (SOAP, OData), SAP, DriveWorks PDM, CRM, Production Planning, PIM, PDM, MES, PLM, DAM, ...
// Data & Business Intelligence
Business Intelligence, EDI, Azure Data Factory Pipelines
// Web & SEO
SEO, Analytics, Web Performance, WordPress Admin
// Algorithms & Data Structures
Graph Structures, Recursion, Computational Complexity, ...
// Electronics & Hardware
Circuit & PCB Design, Electronics Equipment, SDR / RF, Embedded, Digital Logic Design, FPGA, ASIC
// Lighting Industry Domain Knowledge
LDT / IES / ULD / ROLF / GLDF / RFA File Generation and other knowledge
// Broad Interests & Knowledge
Physics, Chemistry, Biology, Business, Economics, Software, Computer, Electrical & Mechanical Engineering, Manufacturing, Logistics & Transport, Construction, ...
Slovenian (native) English Italian