Xentropic Labs
About
About Me
🙋 Hey, I’m Chris Laponsie, a software engineer who is passionate about creating reliable, intuitive, resilient, functional, and beautiful software. I’m also a fan of the Oxford comma and a stickler for details.
My software engineering story began when I was eight years old, in 1993. My father started a hobby of rescuing old electronics from bargain bins and impending landfills. One day, he brought home a Commodore 64–a computer that, fortunately for me, booted straight into the BASIC interpreter. That familiar blue prompt sparked a lifelong journey into programming and the world of software engineering.
Professional Background
I didn’t follow a linear path into my career. After watching Office Space by the great Mike Judge, I became convinced that turning my fun hobby into a career was the worst possible idea. Instead, I chose to meander into the workplace without a defined career path, quietly coding in the background on personal projects–a decision I don’t regret.
I worked in factories, gained hands-on experience with industrial systems and LEAN manufacturing, and eventually transitioned into industrial IoT systems for production monitoring and data collection. Despite my best efforts to avoid it, I inevitably found myself in software engineering. And I’m glad I did.
What I discovered is that I genuinely love the work. I love tackling hard problems and pouring myself into solutions for hours, days, and weeks at a time. That realization turned what I once feared would kill my passion into the thing that fuels it.
My journey has taken me through industrial automation, machine learning, data wrangling platforms, and application development, always with a focus on creating software that is both powerful and approachable. I’ve designed industrial control software for high-voltage magnetizers, data collection and process control systems, test fixture automation, and machine learning annotation and training pipelines. My focus has been on standardizing and improving processes and products through software controls and engineering.
Lessons Learned Along the Way
I believe that great software should be built on five pillars that guide its design:
- Reliable: The thing should be able to run indefinitely, given the resources to do so.
- Resilient: The thing should not fail catastrophically in response to unexpected inputs.
- Intuitive: The thing should be where the user expects it to be and behave how the user expects it to behave.
- Functional: The thing should do what it claims to do.
- Beautiful: The thing should inspire the user to want to use it.
Reliable Software
The thing should be able to run indefinitely, given the resources to do so.
In industry, downtime cannot be tolerated. At best, users may find a temporary workaround, stacking up parts or reverting to manual test methods. At worst, production grinds to halt. Reliable software requires decoupled architecture and memory safety–I’ve seen entire businesses lose money because a UI plotting library failed to dispose of past data.
- Decoupled Architecture: If the software is designed to run in the background, it should be able to run without the UI. Closing the UI shouldn’t cause the entire server to stop. Properly decoupled software is both more reliable and easier to maintain.
- Memory Leaks: Long-running applications cannot tolerate memory leaks. Eventually, they will crash. It’s not if; it’s a matter of when.
Resilient
The thing should not fail catastrophically in response to unexpected inputs.
“Our software works great as long as the user uses it correctly.”
Software with built-in footguns isn’t finished. Too often, something that “just barely works” gets pushed into production without undergoing proper FMEA (Failure Mode and Effects Analysis) to identify how it can fail.
Software should be intuitive–it should interface with the user in the way the user expects, not the programmer. When users inevitably do something the programmer didn’t anticipate, the software should be resilient enough to handle it gracefully instead of crashing.
This is where FMEA and defensive programming come in: writing code that assumes nothing about inputs, anticipates failure modes, and safeguards against them. Resilient software doesn’t just work under ideal conditions–it continues working when things go wrong.
Intuitive
The thing should be where the user expects it to be and behave how the user expects it to behave.
Our aim should be to design software that minimizes friction between what the user wants to do and how they achieve their goal. Sometimes that means putting the “Okay” button where users expect it; other times, it means removing the dialog box entirely.
Wonky software that works is better than wonky software that crashes. But if you can make the software feel intuitive and friendly, users will thank you. Let’s make the world a better place by designing software that isn’t just functional but also intuitive.
Functional
The thing should do what it claims to do.
Software doesn’t need to chase hype. Nobody cares that your app integrates an AI chatbot if it doesn’t actually solve the user’s problem. Too often, sales-driven teams bolt on trendy features that look impressive in a demo but don’t add lasting value. That kind of development produces software that is neither functional nor loved.
Truly functional software is user-driven. It starts with a clear purpose: solve a problem or provide meaningful entertainment. If the software is meant to perform a complex ETL workload, then it needs to do exactly that–reliably and well. Adding unnecessary features because they’re fashionable can dilute the product and distract from its real value.
When software genuinely solves a user’s use case, sales will follow naturally. People don’t fall in love with buzzwords; they fall in love with tools that work.
Beautiful
The thing should inspire the user to want to use it.
I don’t mean “beautiful” in a purely superficial sense, though attractive software is always more pleasant to use than the alternative. If you must choose, software should always be intuitive before beautiful. But ideally, it should be both. Beauty should enhance usability, not compete with it.
Beautiful software is software that respects the user’s feelings. It’s thoughtful, opinionated, and designed with care–not watered down to the lowest common denominator. It means readable text, tasteful colors, and an interface that feels good to use. It means supporting both dark and light modes. It means embracing accessibility, whether through screen readers or other accommodations.
Truly beautiful software inspires people to want to use it, not just tolerate it.
Projects:
Because of these values, I’ve been programming almost exclusively in Zig. I believe software is shaped by its language, community, and tooling. Zig’s pinciples–explicit memory allocation, no hidden control flow, and strict error handling–align perfectly with my focus on defensive programming and highly reliable systems. I’m all in on Zig and Software You Can Love.
- ProtoNexus.io - A next-gen industrial data broker with dynamic transformation logic.
- Devlog - Writing about my process, experiments, and lessons learned in engineering.