Hi! I'm currently studying Computer Science at the University of Maryland.
Outside of academics, I enjoy games that challenge the mind like Chess, Go, and Tetris.
I’m also a big fan of MMA, wrestling, and basketball.
When it comes to software
engineering, I genuinely enjoy most areas of the field, but I’ve found a particular
interest in low-level systems and optimization.
There’s something rewarding about
making programs run as efficiently as possible, especially in resource-constrained
environments like embedded systems.
My first project is a performance-focused implementation of the AES encryption algorithm,
based on the FIPS specification.
Written in Rust, it demonstrates my focus on
both correctness and efficiency.
I used benchmarking tools and test-driven
development to guide design decisions and ensure optimal performance.
This project brings together my passion for embedded systems and robotics.
It’s a
hands-on demonstration of how software and hardware integration can create a responsive,
real-world system.
It was a great opportunity to work with limited resources while
still aiming for reliable performance.
Finally, the third project is this very website.
Built with Svelte and assembled
using several component libraries, it gave me a chance to explore modern frontend
development and build a clean, responsive interface to showcase my work.
My rust AES project is based on the FIPS document. I tried to focus on 3 things,
idomatic code, performance, and following loosely the psuedocode.
One thing to note is that, while many architures provide machine instructions for AES, using
that wouldn't really follow the psuedocode.
For this project, it was file driven I/O CLI, which puts in some restrictions and limitations
on multithreading as realistically most of the speed is bound by disk reading. Despite this,
I still incoporated it to the best of my abilities to speed up both computations and the
I/O.
Here is a multithreaded file reader that allows prefetching of files, and does computation,
while reading another file.
for i in 0..2 {
thread::scope(|s| {
s.spawn(|| {
for j in 0..((num_files + (1 - i)) / 2) {
let curr_file = fs::read(&files[i + 2 * j]);
let mut curr_file = curr_file.unwrap();
/* Do decryption/encryption based on user input */
match (args.reverse, use_iv) {
(false, false) => data_encrypt(&mut curr_file, &expanded_key),
(false, true) => data_encrypt_iv(&mut curr_file, &expanded_key, &iv),
(true, false) => data_decrypt(&mut curr_file, &expanded_key),
(true, true) => data_decrypt_iv(&mut curr_file, &expanded_key, &iv),
};
let _ = fs::write(
files[i + 2 * j].to_owned() + enc_or_dec,
&curr_file[0..curr_file.len()],
);
}
});
});
This artifact focuses on my embedded/robotic endeavours.
Here I have built a robotic car, which can follow lines, based on light reflection using
an LED and a sensor.
Along with that I have put together an ultra-sonic sensor that can detect obstacles based
on reflected sound waves.
This comes together to form a decently responsive robotic car, which while lacking a remote
to allow user input in real time, does have some real time reactions.
In terms of actual programming, this used Arduino's runtime, and as such benefitted from
a lot of the provided utility and naming convention. Despite the shortcuts Arduino supplies,
it is still a good learning experience, adjusting with pin I/O and reading in and interacting
based on values.
(*Here ideally would be a video of it running but I don't have it on my laptop, so I would
need to go back home*)
This is a self referential artifact, given the fact that is in fact this very website.
While I can highlight some code here, I think it is best to check out the github for the
code.
I think this website best showcases a couple of things about my coding ability, which include
flexibility and rapid iteration.
For example, I have had some minor experience with JS, HTML/CSS, but not enough to design
a website, and the only real experience I had with webdev was years ago for some dummy frontend
to practice python's Django.
Despite the lack of experience, in short work I have put together a reactive website using
Svelte, (a framework I have had no previous experience with) and component libraries SkeletonDev
and Svelte UX.
(* There is some more visualy stuff I can point out, and I intend to insert some gooey cool
text from Svelte UX to demonstrate my point as this is a artifact and keep it visual *)