natechoe.dev The blog Contact info Other links The github repo

Resume

See this resume on my website

About me

I remember the first piece of code I ever wrote. I was in second grade when my Dad showed me the Scratch programming language on his computer. When it was my turn to play with it, I wrote a program to make the cat run in circles around the screen. I saw how I could connect blocks together and make the computer do something tangible. I was instantly hooked. I haven't stopped writing code since.

That love for making real things is reflected in the way I approach learning. I believe that the best way to truly understand something is to do it yourself. Whenever I learn something new, I always ask "can I model this?" If I can't, then I haven't learned enough. If I can, then I often do just to make sure. That's why I wrote a web server, a password manager, a program to parse big data, and a raytracer.

Projects

All of my projects can be found on my Github[1]. Here are some of my favorites:

My web server, which was written completely from scratch.

My website, which is hosted with my web server and uses and at least 7 programming languages.

My HTML preprocessor, which generates my website.

backupfs, a custom filesystem that manages backups for my server.

TCP over HTTP, an exercise in tunneling.

ttf2psf, a program to convert font files into the PC Screen Font format so that you can change your Linux virtual terminal (VT) font.

ScratchGPT, a ChatGPT frontend written in Scratch (the block coding language).

simple-json, a JSON parser written with lex+yacc.

tytc, a YouTube client that runs in the terminal.

npm (Nate's Password Manager), a password manager implementing SHA-256 and AES-256 in ANSI C.

wikireader, a reader for the Wikipedia database dump that can search through about 65GB of text very quickly.

a raytracer (realistic but computationally expensive 3d renderer), written in C.

another raytracer, written in Scratch (the block coding language).

snake.sh, a snake game implementation in bash script.

nce, a program that searches and modifies the memory values of a Linux process so that you can cheat at video games.

EasyGopher, a web server for the Gopher protocol.

mazebot, a Discord bot that plays a maze game.

Skills

C - My favorite programming language. I learned it around two years ago and use it almost exclusively today.

Java - I've used Java for around seven years, it's what got me really into writing code.

Python - The first programming language I ever learned, I first used it ten years ago.

Linux - I've been using Linux seriously for around four years.

Experiences

Open Source Summit 2023 - Listened to various talks on the state of systems in Linux.

Knowledge sharing sessions with working programmers - listened to and shared talks with real programmers and project managers from Amazon and Google. One of my talks got over 11 thousand views on my Dad's YouTube channel.

Footnotes

[1] https://github.com/NateChoe1?tab=repositories