Federico Martiniau
Software Engineer based in San Carlos de Bariloche, Argentina.
Specializing in embedded systems, satellite EGSE, and scientific software development.
About me
Based in San Carlos de Bariloche, Argentina. Born November 1981.
I've been working in computing since university, moving from IT support and quality testing into analysis, design, and software development. I like challenges and try to improve day by day. I'm patient and find real satisfaction in explaining things clearly — I've taught everyone from 4-year-olds to adults in their 60s.
On the personal side, I've been in a relationship since 2013. Our daughter Zoe joined the family in 2019.
Skills















Jobs
- Python, LabVIEW, and C++ application development and maintenance (QT / Eclipse)
- Grafana dashboard UI design
- PHP scripts for large-volume data processing
- Performance optimization in high-volume data management and storage systems
- After Sales: technical reference, resolution of complex and critical incidents
- Analysis, design, and development of internal tooling to improve department efficiency
- Test planning, execution, and auditing for hardware and software products
- Coordination of DAC Maps development cycle and client infrastructure deployments
- Internal and external product training nationwide
- Computer repair and lab maintenance
- Teaching support for preschool through 7th grade
- Training and advice to administrative and teaching staff
Education
University
- Computer Engineer
- Universidad FASTA
- IT Analyst
- Universidad FASTA
Secondary
- Bachelor
- Escuela No. 1 OF 3 Bernardino Rivadavia
Courses & Conferences
- LabVIEW Core 1 & 2
- Python for Engineering and Physics
- Executive UX Clinic
- Software Quality Course
- Real Time Systems Course
- 38th Argentine Computer Science Conference
- SEPG Latin America
- Knowledge Management
- Systems of Systems, SOA and Software as a Service
My Work
In this section I describe some software product development projects in which I was part of the
development team or was responsible for that development.
Throughout my career I participated in multiple projects, mostly related to the development of EGSEs
used in the construction of satellites. And on some other occasions I participated in other projects
for the development of software products used in the nuclear area or in the radar area of
INVAP S.E.
In this section I leave a variety of different types of products in which I participated.
Power Board Handler
Description
This software is used to test satellite components and boards during the construction phase.
The software is divided into two components.
A component (Board Handler) developed in LabVIEW is responsible for the command and control of
boards connected to a PXI bus (digital I/O, analog inputs, analog outputs, relays).
The other component (PMDU) developed in Python is the master, responsible for providing a command
server and publishing telemetry of all SW and systems involved. It also commands and controls:
Electronic Loads, Electronic Sources, Mainframe SAS, and the LabVIEW module.
My participation
Full autonomy — requirements analysis and definition, design, development, and user support. This product was originally required for one satellite project, but its design allowed it to be adapted and used in 2 more satellite projects.
Skills required
- Requirements identification and capture
- Software design and time estimation
- Analysis of third-party products
- Risk management and client negotiation
- Software development and documentation
- User support and training
Technologies
- Python
- LabVIEW
Environment
- Docker
- Conda
- Windows 7
- Jenkins (CI)
- Git
Battery Simulator
Description
An EGSE used for tests and operations related to satellite batteries — mainly controlling energy
charging and discharge processes from the satellite.
The most critical deployment was during the satellite launch, where the software ran under the launch
pad, operated remotely, controlling that energy reached the satellite and kept the batteries charged.
Any failure would have caused delays in the rocket launch.
I had full ownership of the requirements survey, design, development, documentation and user
support.
Technologies
- Python
- VISA
- CSPI
- GPIB
- Serial communication
- ZMQ
- JSONRPC
Environment
- CentOS
- Conda
- Git
Command and Telemetry Bridge
Description
The CTU (Command and Telemetry Unit) is responsible for sending telecommand frames (TC-Frames)
and receiving telemetry frames (TM-Frames). It serves as the interface between the command and
control system and the hardware responsible for issuing and receiving communications via
Cortex CRT.
TM-Frames arriving from the satellite through Cortex CRT are received by the CTU, which unpacks and
processes them so the user can view the telemetry.
The CTU is a critical product used throughout the entire satellite lifecycle — from construction
through the full mission flight.
Full ownership of requirements gathering, design and development.
Technologies
- Python
- Cortex CRT
- ZMQ
- JSONRPC
- Socket
Environment
- Docker
- Conda
- Ubuntu
- GitLab CI
- Git
Solar Array Simulator
Description (v1)
Developed in a two-person team — I built the frontend, my partner built the backend.
The product commands and controls a
Solar Matrix Simulator system
and
Modular Solar Array Simulators.
Different scenarios can be simulated with varying quantities of solar panels and their
configurations, including spacecraft movement with changes in the angle of incidence of the sun.
Technologies (v1)
- C++
- QT5
- Ajax
- CSS
- HTML
- Javascript
- jQuery
Environment (v1)
- Windows 7
- SVN
- Jenkins (CI)
Description (v2 — in development)
A 6-person team project. I'm involved in requirements gathering, product design and
development.
Controls a
Solar Array Simulator System.
Using scripts, different energy generation scenarios can be simulated based on the spacecraft's
solar panel angle.
Technologies (v2)
- Python
- VISA
- CSPI
- JSONRPC
- ZMQ
Environment (v2)
- Docker
- Conda
- Ubuntu
- GitLab CI
- Git
Panel Simulator
Description
Simulates the consumption of half a radar panel of the SAOCOM satellite antenna through commands and control of electronic sources and loads. Full ownership of requirements survey, design, documentation and development.
Technologies
- Visual Basic 6.0
- VISA
Environment
- Windows XP
- SVN
PIC Writer
Description
C++ application used to load parameters and configurations to be sent to a PIC Microcontroller recording board used in the manufacture of radar components.
Technologies
- C++
Environment
- Windows XP
- SVN
Intelligent Gas Effluent Monitor
Description
Developed in a two-person team — I built the frontend, my partner built the backend.
Used in a specific ventilation piping circuit in a nuclear power plant. Its objective is to record
radiation readings within the plumbing circuit, activate solenoid valves to change routes within the
piping circuits, and make measurements of different types of radioactive elements to maintain records
that must be presented to international control organizations.
Readings are stored in a database.
Technologies
- C++
- MySQL
Environment
- QT5
- Windows 7
- MySQL Workbench
- SVN
Remote Server Status
Description
Designed and developed for a company whose clients ran their system on servers at their own
facilities. I designed and developed a C++ daemon that ran on each client computer and collected:
start date and time, hard drive space, hardware component temperatures, RAM memory usage, and
database status information.
Each daemon connected daily to a central MS-SQL server at headquarters. I also designed and
developed a PHP website for viewing statistics and alerts based on the status of remote equipment.
Technologies
- C++
- PHP
- JavaScript
- CSS
- MS-SQL Server 2008
Environment
- Windows XP
Radar Rotary Joint Test Bench
Description
A hardware test bench designed to validate the mechanical behavior of rotary joints used in
meteorological radar antennas. The rotary joint is mounted on the shaft of a NEMA stepper motor,
which drives it at a nominal speed of 6 RPM to replicate real operating conditions.
An Arduino microcontroller manages all motor control logic: it generates step and direction signals
to a stepper driver, enabling operators to adjust rotation speed, reverse direction, and issue
start/stop commands. Speed adjustment and command input are handled directly from the Arduino.
My participation
Full design and development: embedded software, hardware assembly, and integration with the rotary joint under test.
Technologies
- C++ (Arduino)
- NEMA stepper motor
- Stepper driver
Environment
- Arduino IDE
Radar Antenna Module Diagnostic System
Description
A Python/Flask web application for configuring and diagnosing the emission/reception modules of
a radar antenna. The system runs on an Arty Z7 board (Zynq-7000 SoC), which acts as the central
controller and hosts all peripheral connections.
A Windfreak SynthNV PRO board handles RF signal generation and
reception, controlled via UART commands. A 4-line × 20-character display and a 4×4 keyboard
provide on-device interaction, both connected via UART.
Configuration and diagnostic actions triggered from the web interface are dispatched as REST calls
to the Flask backend, which coordinates with other system daemons running on the platform.
Technologies
- Python
- Flask
- UART
- REST
- SynthNV PRO
- Arty Z7 (Zynq-7000)
Environment
- Linux (Zynq PS)
- Git
Knowledge & R&D
Personal projects and R&D work — things built to solve real problems, explore new technologies, or learn by doing. Not full products, but experiments and tools that turned out useful.
ESP-NOW Sensor Network
Description
Distributed sensor network where multiple ESP32 nodes report their readings wirelessly to a central server using ESP-NOW — Espressif's low-latency peer-to-peer wireless protocol that works without a WiFi router.
One of the sensor nodes bridges an Arduino via serial, aggregating readings from sensors connected to the Arduino alongside its own. The server side consists of two ESP32 boards: one acts as the ESP-NOW hub, receiving all incoming data from the sensor nodes; the other runs the web server and presents the sensor data as a web interface. The two server boards communicate with each other over serial.
Sensors and actuators distributed across nodes included: temperature sensors, distance sensors, flow meters, relays, electrovalves, LEDs, and buzzers. The nodes were developed in a mix of MicroPython (using Thonny) and C++ (using Arduino IDE), depending on the hardware and requirements of each node.
Technologies
- ESP32 (multiple nodes)
- ESP-NOW
- MicroPython / Thonny
- C++ / Arduino IDE
- Arduino
- Serial communication
- HTTP web server
- Temperature sensors, distance sensors, flow meters
- Relays, electrovalves, LEDs, buzzers
Water Level Control System
Description
Autonomous water level monitoring and control system for two tanks. Distance sensors mounted on each tank measure the water level in real time. Flow meters on both inlet and outlet lines track how much water enters and exits. Electrovalves allow the system to open or close each line independently.
The system includes autonomous leak detection: if the outlet flow remains constant over a configurable period with no deliberate discharge command, it assumes a leak and closes the outlet valve automatically. All sensor readings and valve states are visualized in a Processing interface.
Technologies
- C++ (Arduino Mega)
- Ultrasonic distance sensors
- Flow meters
- Electrovalves
- Processing (visualization UI)
- Serial communication
ESP32 Thermostat
Description
Thermostat built with an ESP32 running MicroPython. Reads temperature continuously and activates or deactivates a relay based on a configurable threshold. Includes a configurable on-time limit to prevent the controlled device from running longer than intended.
A Telegram bot handles remote interaction without needing an app or web interface: status queries return the current temperature and relay state; commands allow remote activation and deactivation from any device.
Technologies
- ESP32
- MicroPython
- Temperature sensor
- Relay module
- Telegram Bot API
- WiFi
ESP32 Window Presence Sensor
Description
Presence detection system installed on a window frame. Uses a millimeter-wave radar sensor to detect whether someone is in the monitored area. When presence is detected, the ESP32 sends a Telegram notification in real time.
Millimeter-wave sensors are more reliable than PIR for this use case: they detect stationary presence, not just movement, and are unaffected by temperature or ambient light.
Technologies
- ESP32
- MicroPython
- mmWave presence sensor
- Telegram Bot API
- WiFi
PlantUML Editor
Description
Desktop tool for writing and previewing PlantUML diagrams. The editor sends the diagram text to a local PlantUML JAR and renders the result inline. Supports exporting the output as PNG or SVG. Built to speed up diagram work without relying on online tools or browser plugins.
Technologies
- Python
- PyQt5
- PlantUML (JAR)
- Java (PlantUML runtime)
Time Tracker
Description
Personal task time tracker for logging what I work on and how long I spend on each item. Tasks are organized by project; entries are stored in a local SQLite database and the tool generates time summaries per task and per project.
Includes a configurable Pomodoro timer: after a set interval a desktop notification prompts whether to take a break. The interval is adjustable per session.
Technologies
- Python
- PyQt5
- SQLite
Python Library Ecosystem
Description
A set of reusable Python libraries built to standardize how projects handle common cross-cutting concerns — logging, file output, instrument communication, and configuration. Each library provides a single, consistent interface so that any project using them behaves the same way in those areas, regardless of the underlying details.
The most significant library is the configuration reader. It supports JSON, INI, XML, and .env file formats through a unified API — the calling project always retrieves configuration the same way, without caring about the format. It also performs MD5 validation of config files on load, detecting accidental or unauthorized modifications before they reach the application.
The VISA and serial communication libraries wrap the underlying protocols behind consistent interfaces, removing boilerplate and protocol-specific handling from application code. The log and CSV libraries standardize output formats so that logs and generated files look the same across all projects.
Benefits
- No code duplication between projects for the same concern
- Consistent output formats and behavior across the entire codebase
- Bugs fixed in a library are fixed everywhere at once
- Faster development: common infrastructure is already solved
- Easier onboarding: one way to do logging, config, comms — always
Libraries
- log — standardized logging output
- csv — structured CSV file generation
- visa — VISA instrument communication
- serial — serial port communication
- config — multi-format config reader (JSON, INI, XML, .env) with MD5 validation
Technologies
- Python
- PyVISA
- pyserial
- hashlib (MD5)
- configparser, json, xml.etree, python-dotenv
Hobbies
What I do outside of work.
Photography
I enjoy capturing landscapes, wildlife, and everyday moments — mostly around Patagonia.
See full photostream on Flickr →Contact me
fedemartiniau at gmail dot com
linkedin.com/in/fedemartiniau