Summary
My name is Dylan Dy (or Dylan-Matthew Garza).
Current/almost former Computer Engineering student at Western Michigan University in
Kalamazoo, Michigan. I will graduate this upcoming December (2024).
In terms of technologies, I am very interested in Linux, embedded Linux, programming (systems, embedded, firmware,
and occassionally web). I also enjoy teaching those mentioned interests to people and sharing what I know about
them.
Other than that, my main "hobby" is
Olympic Weightlifting (also known just as Weightlifting), which should not
be confused with
powerlifting,
bodybuilding, or
CrossFit.
Software I enjoy
A brief summary of some tools I enjoy using and working with:
NixOS(currently as daily driver),
Artix Linux, and
Void Linux.
neovim/vim and recently
nixvim (neovim configured by nix modules) since
terminal-based text editors are for serious software developers.
dwm (tiling window manager)
but nowadays to be future-proof by using Wayland,
I now use hyprland (with dwm-like bindings and behavior).
tmux is pretty neat.
eww widgets, which is a widget system that allows you to define your own
GTK windows as widgets with its own language which use s-expressions. Similar to other s-expression languages like
like the Lisp family of languages,
it has a built-in feature of metaprogramming with using "literals" which call some other program to dynamically
update itself.
Hare Programming Language: A C-like systems programming language. I really just like the Hare mascot.
Projects
These are some projects I am pretty happy about/proud of.
custom bar utilizing the
Eww widget system. The bar does not use any silly, slow scripts to obtain system
information. It instead uses compiled binaries written in real programming languages meant for
creating useful software. The compiled binaries dynamically generate the s-expressions for eww to generate
the widgets with realtime information. The different ones I have written:
- eww-workspaces: dynamically shows workspace numbers
as clickable buttons, allowing for differentiation between the active one and the open ones.
- eww-windows: dynamically shows open windows across
open workspaces, while listing workspaces by most recently used (clickable with icons!).
- statuses(in rust): Shows SSID, WiFi connection strength,
and ram usage.
- statuses(in C): Shows battery, time, and date.
Multi-input automotive testing device implemented on a heterogenous architecture (ARM Cortex-A7 and ARM Cortex-M4)
where I was responsible for multiple Software/embedded Software components.
A link to the presentation here
IMPORTANT NOTICE REGARDING THE WORK DONE: ALL ASPECTS OF THE PROJECT DISCUSSED HERE WAS DONE
BY ME AND ME ALONE. ANY PERSON(S) CLAIMING OTHERWISE IS BEING FACETIOUS. THE SOURCE CODE WAS
NOT WRITTEN WITH ASSISTANCE FROM ANY OTHER TEAMMATE. THE PRESENTATION FOR THE PROJECT WAS DONE
IN COORDINATION BY THE TEAM BUT ITS OVERALL PRODUCT OF IT AND THE PORTIONS DISCUSSED IS DONE BY ME AND
ME ALONE -- DYLAN-MATTHEW GARZA AKA DYLAN DY
- Custom embedded Linux image using the
Yocto Project
using STM32MP157F-DK2 with custom layer.
here. Built/ installed other software I wrote
for the project. Uses custom generated device tree from STM32CubeMx and patched stm32mp1 Linux kernel
device tree. Also used a custom defconfig for loading necessary kernel modules.
- WebAssembly (WASM) application written in Rust
using the Yew framework.
(link to the repo here) Simple user interface
for device testers to interact with to see real time results and remotely test devices.
- Custom API application server written in Rust
,meant to interact with server to load ARM Cortex-M4 firmware
and communicate to firmware regarding the state of the test, results, and recoreded realtime data
saved to the kernel trace buffer.
(link to repo here. Used the
warp web server framework, which is a minimal
framework that allows filtering of HTTP requests.
- Microcontroller (ARM M4) Firmware created communication system between firmware and the
Rust server API
using the OpenAMP Project to communicate over virtual UART.
Communication consisted of status of loading the firmware, confirmation of necessary information for the test,
and test progress. Also contributed to the debugging and development of the firmware that would test devices
and was responsible for porting the necessary RCC configurations to the appropiate DeviceTree so that Linux
may configure the system clock the same way the standalone firmware would on the STM32MP157F-DK2.
Conway's Game of Life in Hare Programming Language: Not really anything too fancy
or serious but the language is fun and simple enough and I've never written Conway's game of life before.
snake game using termios: Terminal game snake written in C without
using ncurses and by manipulating the terminal interface with
termios.