If you're reading this, thank you so much for visiting! My name is Jayson, though
I typically go by Jay. I am a Computer Engineering B.S. that graduated from Utah Tech
University in early May 2026. Bobbi (my spouse), Bosco (our dog), and I live in Washington Utah right now
but we would happily relocate as a career move if it would push our life forward. We've
been married since December of 2024, and we got our dog May of 2025.
Even though I am an engineer by qualification, I love pretty much everything that I can
get my hands on. I am a programmer, musician, novice artist, creative writer, and avid reader;
In-industry I am super passionate about high-quality documentation. One of my favorite gifts
I've ever received is Volume XI of the
Perpetual Troubleshooter's Manual,
and you can read through every volume for free online. I strongly believe that good
documentation pushes any system to its most reliable, and helps user inuition to thrive.
Making documentation is an underappreciated art form.
My favorite things (in no particular order):
These are some of my projects that I'm proud of. Many of these are academic in
nature, but all of them are hands-on because of Utah Tech's commitment to polytechnic
learning in all of its programs. I have real experience with multimeters, oscilloscopes,
practical PCB design, 3D FDM printing, engineering design reviews, programming embedded systems,
and so much more.
Click images buttons to scroll to images of that project.
My current upcoming project is a layout engine for Typst (a Latex alternative) that
uses a nodegraph system to resolve the positions of a circuit relative to ground. This
enables typsetters to define circuits similar to a Netlist, the common representation of
SPICE simulators. The intuition this brings to typsetting provides a pretty clear advantage
to someone like me, who often typsets projects for fun.
It uses nodes with fixed definitions (i.e. Ground as (0,0)) and traverses a graph
of all of their connections. Because each component has a defined size and orientation,
all the nodes can be calculated from here. The minimum size of the circuit gets calculated
based on this node graph, giving a reasonable start to a layout. Width, height, and style changes
can be done arbtrarily based on input parameters, and because the whole thing is within a
block level element and drawn as an SVG, it an be resized for any use-case.
You can view the details of drawing a circuit in the image description on the right.
An Open-Source 3D printer based on the Lulzbot TAZ6 capable of extruding
biomaterials. We designed it to use the TAZ6's original motor, and did some
clever tricks to convince the TAZ that it was interfacing with a regular
plastic nozzle. A huge benefit of this is that future updates of Marlin,
the TAZ's firmware, are fully compatible with our printer.
This project required writing loads of GCode by hand, and learning a great
deal about what REPRAP-style printers do. All of the modifications to typical
slicer settings (Cura) are documented along with the printer, and are currently
held by Utah Tech University. Contact Dave Christensen for access to the
design files.
My major contribution (besides programming and designing our test prints) was the
temperature regulation system, which provides a convenient user-interface to
a set of 140CFM fans embedded in the table. Air filtered through hepa filters in
the side of the central enclosure (see image) gets exchanged in the printing area,
allowing the temperature inside to remain stable. All of the formulations designed
for this printer so-far are meant to print at room temperature, and the printer being
enclosed is a huge source of heat.
A KiCad-10-designed regulator that can buck or boost 12V all the way up to
100V and all the way down to 1V, with minimal ripples (under 330mA and 80mV). It
uses two LM555 timer chips from Texas Instruments to allow for independent control
of frequency and pulse-width, and its updated schematic uses closed-loop voltage control
to change the pulse-width to hit a target output voltage.
The components in the schematic are rated for 2 Amps at 25 degrees, which allows the
energy transfer capacitor C5 to withstand transients from switching. I would happily
build this again, but would likely decide on a larger footprint board with no surface-mount
components. The SMD MOSFET used required a heatsink, and still had issues with temperature
due to its size. Through-hole MOSFETS in parallel would be satisfactory for a converter
like this one, especially running as slow as 50kHz.
The UI/UX, control system, power distribution, and microcontroller brain for
a dual BLDC motor modified pedalboat were handled by myself and a Mechatronics
engineer, Jacob Galindo. This was my first project using currents above milliamps,
and was a huge success due to several late nights and some creative problem solving.
I think designing a circuitboard for this project would have saved me a huge amount of
time and patience soldering, as all of the components had to be individually soldered to
a protoboard embedded in the waterproof controls box.
The system is controlled by feedback from two potentiometers, each controlling the thrust
provided by one motor. A Gyroscope chip measures boat heading, relaying that information back
to the drivers of the craft. The speed controllers for the motors also measured temperature and
spin rate, which were useful to provide backward.
If I were implementing this sort of control now, I would calculate a heading based on
the two inputs and correct the thrust of the motors based on the difference from the true
heading, measured by our gyroscope chip. This would have provided additional consistency and
made the user experience a lot more streamlined for new users of the boat. After competing,
several team members drove the boats with their families (mine included) to give them a taste of
what hands-on engineering meant for students at Utah Tech.
One of the skills I think everybody should develop is learning how to wonder about
things. I wonder all the time; frequently about how things work, or where things go, or
what things do. Bobbi and I play a sort of modified twenty questions, where one of us
will think of something (most recently a groundhog, on my part) and the other will try to narrow
it down and guess. You get the standard questions at first, "Is it a quality, or is it an object", or
"Is it a person, a place, or a thing?" but then the questions get more interesting.
"Can I hold it in my hand?"
"Does this animal have hair, or fur?"
And when we get to these sorts of questions, suddenly we're both forced to really stop and think
about the answers without the internet (unless under extreme circumstances). This kind of wonder
has done nothing but make my life better, and I would recommend it wholeheartedly. This section is
for the things I'm currently learning to become passionate about.
I post here often, especially about whatever's interesting in the moment. My posts are never written by generative AI.
If you're reaching out for a business inquiry, please mention it in the subject. If you're not reaching out for business, I'm happy to be friends!
I have switched to using Codeberg as my main development platform. It is similar to Github or Gitlab, if you're familiar with either of those. This site is hosted on Codeberg.
#figure(caption: [_A Full-Bridge Rectifier_],
Circuit(
Ground(Dir.SN),
Diode("B002","GND",Dir.NWSE, label: $D_2$, flip: true),
Diode("B002","B004", Dir.SWNE, label: $D_4$),
Diode("B004","N001", Dir.NWSE, label: $D_1$),
Diode("GND","B001", Dir.SWNE, label: $D_3$, flip: true),
NetLabel("B004", Dir.SN, label: $V_"ac"$),
Short("N001","N002", Dir.WE, size: 0.5),
Capacitor("N002","N003", Dir.NS, label: $C$, flip: true),
Short("N002","N004", Dir.WE),
Impedance("N004",":N003", Dir.NS, label: rotate("load",90deg)),
Short("B002","B00X", Dir.EW, size: 0.25),
Wire("N003","B00X", flip: true),
)
)
#figure(caption: [_A Cuk Converter_],
Circuit(
width: 11cm, height: 4cm,
Ground(Dir.SN),
VoltageSource("GND","N001",Dir.SN, label: $V_s$),
Inductor("N001","N002",Dir.WE, label: $L_1$),
Capacitor("N002","N003",Dir.WE, label: $C_1$, flip: true),
Inductor("N003","N004",Dir.WE, label: $L_2$),
Short("N004","N005",Dir.WE, size: 0.75),
Switch("N002",":GND",Dir.NS, label: $Q_1$),
Diode("N003",":GND",Dir.NS, label: $Q_2$),
Capacitor("N004",":GND", Dir.NS, label: $C_2$, flip: true),
Impedance("N005",":GND", Dir.NS, label: rotate("load",90deg)),
)
)