About Me


My name is Algasami, case-insensitive. I'm a computer science undergraduate with many fields of interest. I've worked on an assortment of projects that differ from one another drastically, such as an embedded system, a rendering engine and a website. Additionally, I sometimes partake in competitive programming, though I seldom compete in tournaments. Below is a list of certificates that describe me more objectively.
NameProficiency
TOEIC Listening & Reading985/990
GEPTAdvanced Intermediate
APCS Concept Section4/5
APCS Programming Section4/5

Projects


RV32i_ImpCPU Architecture

I learned a lot about algorithm, but I had never understood how a CPU worked. Since the best way to learn something is by making it, I started to write a RISC-V 32bit CPU in verilog with the help from 伴伴學.
temporalBootloader + Kernel

With the help from Nanobyte's tutorials, I have been developing this kernel for some time. It also comes with a Nix Flake, so you can put your worries about dependencies away.
boson-rustSingle-bounce Ray Tracing Engine

I have been working on this project for a while. It is a simple ray tracing engine that can render polygons. It is written in Rust from scratch.
iot_connectESP8266 Project

It was meant as a tutorial project to teach people about embedded C++, but I made several versions of it. Details in README.md
nixos_dotfilesNixOS Configs

This monolithic configuration is written for various programs in NixOS.

Timeline


Started my journey

I started my journey in the world of computers by learning Luau (Roblox's Lua dialect) to make games on Roblox. During that time, I realized several programming paradigms such as object-oriented programming and functional programming.
Introduced to C/C++

I was introduced to C and C++ during my first year of junior high school. I learned the basics of C and C++ during that time. After that, I started to learn more about C++ and started to make my own projects. One of my projects was a simple render engine that I made using C++ and OpenGL.
Started learning Web Development

I started learning web development in the late 2018. I learned HTML, CSS, and JavaScript/Typescript during that time.
Started learning Python seriously

Since I was interested in machine learning, I started learning Python. It was simple yet powerful when to comes to data analysis and machine learning.
Competitive Programming

I started competitive programming in 2020. I learned a handful of algorithms and data structures, varying from basic concepts to advanced ones during that time.
Tinkering with Linux

I started playing around with Linux distros in 2020. My first Linux distro was Ubuntu, then I moved to Manjaro Linux, and then to Arch Linux. During that time, I learned a lot about Linux and how the operating system interacts with the kernel. I also got into the world of Linux rice and started to customize my desktop environment.
Started learning IC Design

I started learning IC design in the early 2022. Although quite difficult and drastically different from the other fields I've learned, I still enjoyed it. I followed a self-teaching group on Discord and learned a lot about IC design during that time. In the end, I made a simple RISC-V CPU using Verilog (Synthesized with Xilinx ).
NECC Excellence Award

I was awarded the National English Composition Contest (NECC全國作文比賽) Excellence Award in the mid 2021. This award is given to the top ten of the participants in the contest, and I was one of them. I wrote an essay about the importance of ethics in the 21st century which was published in the NECC book. This shows my abilities in writing and critical thinking, including my abilities to express my ideas clearly and concisely in a foreign language.
Preparing for GSAT

I've been busy preparing for the General Scholastic Ability Test (GSAT) since 2022. This test is a standardized test that is used to determine the eligibility of students to enter the top high schools in Taiwan. I am currently studying for the test and I hope to get a good score.
Kernel in Assembly

With all the low-level knowledge and deep understanding of CPU architecture, I managed to create a standalone kernel and bootloader in x86_64 assembly. It could handle simple I/O tasks and FAT data reading. The final result opened vast possibilities for me to create a complete OS from scratch.
University Prep

With the end of GSAT comes a large period of free time before I head to university. I've been previewing calculus, linear algebra and computer science out of sheer boredom on MIT Open Course Ware.