Background

How I Got Here

I came to software through machines first: machining, control systems, production lines, and years of industrial automation work where code always had a physical consequence somewhere at the end of it.

I grew up in Mexico, raised by my grandparents in a working-class neighborhood. My mother was 19 when I was born; my biological father was not part of my life. What my grandparents gave me, alongside everything else, was the belief that a kid from that neighborhood could go as far as the work would take him.

I got my first PC at 12. That decided more about the next twenty years of my life than I understood at the time.

Manufacturing first, software second

In high school I started running machines: lathes, milling machines, grinders, and CNC. Not as a hobby. As actual coursework, hands on the steel, learning what tolerances mean when you are the one holding the part. By the time I chose Electromechanical Engineering for my bachelor's degree, I already knew what a machine sounded like when something was wrong with it.

I completed my entire engineering education in Mexico. The early part of my career was machining, mechanical design, and then control systems: PLCs, control circuits, and troubleshooting production lines that could not afford to be down. That hands-on grounding is the foundation everything else sits on. I have never had to imagine what a plant floor looks like, because I have spent most of my working life standing on one.

The shift toward software

Once I was deep into automation, the pattern became hard to miss. The interesting problems were drifting upward, out of the ladder logic and into the layer above it: data, simulation, models, and decisions made by software rather than by switches.

I started teaching myself software in parallel with my automation work. Python first, then C++ and Rust. Eventually it became clear that self-teaching, while it had taken me a long way, was not going to be enough for where I wanted to go. I moved to the United States and started a Master of Science in Software Engineering at UTEP, focused on software architecture, system design, verification and validation, and modern development practices.

Today I am a Senior Engineer designing and integrating PLCs, HMIs, robotics, and vision systems for fully automated assembly machines, while finishing my master's and building open-source tooling for the industrial software space.

What I am building

Most of my deliberate effort outside of work goes into two open-source projects.

rust-ethernet-ip is a production-focused EtherNet/IP driver for Allen-Bradley CompactLogix and ControlLogix PLCs, written in Rust with C# through NuGet and Python wrappers. It is published on crates.io, validated against real hardware, currently a 5069-L320ERMS3 on firmware 35 and a 1756-L81ES on firmware 37 through a 1756-EN3TR, and the validation evidence is in the repo. I started it because the existing options for talking to Allen-Bradley PLCs from modern systems languages were thin, and because I wanted a driver I would trust in my own production environments.

OpenWebHMI is a larger bet: an open-source, MIT-licensed, web-first SCADA and HMI platform for small and mid-size industrial systems. Rust gateway as a single static binary, React and TypeScript designer and runtime, CPython 3.11+ as the scripting host so that numpy, pandas, scikit-learn, and modern ML libraries are first-class citizens instead of external integration projects. It is pre-alpha, deliberately scoped, and aimed at the gap between the closed-source giants and what a small plant can actually afford to run.

Teaching

I also teach, in Spanish. My YouTube series, Inteligencia Artificial Desde Cero, covers Python, the mathematics behind machine learning, and deep learning fundamentals. Spanish-speaking engineers are underserved in this material, and I want to help close that gap.

What I care about technically

My current focus is the bridge between physical systems and computation: taking the mathematical models that describe real industrial processes and turning them into software that simulates, optimizes, and runs them. That pulls me toward computational science, numerical methods, and the kind of software architecture that has to survive in environments where downtime is expensive and the code outlives its authors.

I am reinforcing my mathematical foundations in parallel, starting with linear algebra, as preparation for going deeper into that territory.

Outside of all that

I am a father of two. They are the reason for the discipline behind any of this. I am a soccer fan. I build things: machines and software. I prefer work that has a physical consequence somewhere at the end of it, which is probably why I ended up where I did.

If you want to talk about industrial software, Rust in industrial contexts, open-source SCADA, or computational science applied to manufacturing, I am reachable on LinkedIn and GitHub.