My name is Zach, Kiyoshika is random alias I used in a game called RuneScape.
I'm a self-taught programmer but also pretty passionate about statistics.
I heavily prefer statically typed languages, more specifically C and C++. I love memory management and pointers even though it can be frustrating at times.
Active contributor to Gosub Browser (Oct 2023 - Jan 2024), a web browser written in Rust.
Clearly I am a fan of C
- Terminal Markup Language - A markup language to render interactive elements in the terminal. Essentially HTML/JS for the terminal.
- SQL Builder - A SQL builder library in Java for API developers
- CSV Reader - A very simple CSV parser in C++ to process CSV files.
- Inverse Exponential - A Python implementation of a custom inverse exponential distribution to model exponentially ascending data
- JSON Parser for Java - A minimalistic JSON parser for Java
- JSON Parser for C - A simple-to-use JSON parser for the C language written because I was bored on a Thursday night.
- DataTable - A library to handle/process tabular data in C similar to Pandas for Python.
- Cerveurus - My fork of cerveur. A simple web server framework to build web backends written in C.
- Generalized Modelling Framework (libgmf) - A very flexible optimization framework for building different types of predictive models with modularity in mind - like legos, but for predictive modelling.
- hashmap - A generic hashmap that supports user-defined keys and values and dynamically grows in size.
- lookup - A generic and dynamically-sized lookup table data structure to support inserting chunks of data and performing many queries against it
- Zumpy - A numpy-inspired array module for Python written in C. I started this project to understand how to use shared libraries in other languages, specifically Python.
- CMatrix - A simple C matrix library for the learning experience.
- asm-quicksort - A quicksort implementation written in pure assembly (GAS/gcc)
- Generic Quicksort - A templated generic quicksort algorithm in C++ to support native and user-defined data types.
- Simple Expression Parser - A simple mathematical expression parser that takes a character buffer representing a mathematical expression and returns the evaluated value as a float. This will be used in an upcoming embedded calculator project.
- Quick Select - A simple implementation of the QuickSelect algorithm in C to find the k-th largest element in an unsorted array.
- Auto Systemd - A command line tool to deploy servers/jobs to a linux server using systemd.
- Terminal Text Edit - A terminal text editor greatly inspired by vi(m) that I wrote to learn how the ncurses library works to build interactive terminal applications.
- Feather WMS - A basic WMS (Warehouse Management System) to simulate operations within a warehouse such as queueing orders for picking, replenishment, cycle counting, receiving POs and put-away.
- Vertisec - A Vertica SQL parser to improve the bad error messages Vertica gives by default.
- Source Tracker - A heavily simplified "git" clone for local version control of files/code. I started this project to learn more about file management in C++ (using C++17's filesystem API).
- Mini Web Services - My tiny remake of Amazon Web Services to practice Java
- Order Service - A mock microservice managing orders in an e-commerce platform.
- HD44780 LCD Library - A lightweight library for the HD44780 16x2 character LCD for STM32 MCUs. This code in particular was written for STM32F411xx but with some code tweaks can support (in theory) any STM32 board.
- Matrix Keypad Library - A simple library for dealing with matrix keypads. This code in particular was written for STM32F411xx but with some code tweaks can support (in theory) any STM32 board.
- UART Server Client - A sample project to show how to make two different MCUs communicate with each other over UART. This was written "bare metal" with no libraries (besides device headers).
- Physical Clipboard Manager - My second embedded project, a physical board with 8 buttons: 4 copy, 4 paste. When you press a copy button, it will fetch the current clipboard content and store it in FLASH memory on the MCU. When you press a paste button, it will retrieve the data from memory and paste it wherever your cursor currently is. This gives you 4 unique clipboards instead of the one default with Ctrl+C & Ctrl+V.
- Clone Hero Controller - My first embedded project, a minature game controller for playing Clone Hero assembled (messily) onto a breadboard with a STM32F411xx microcontroller.