[[ijdeppong.soy]]
Welcome to Isaiah Deppong's Website.
Who am I?
I am an 21 year old software engineer who enjoys looking at low level/esoteric code, as well as computer graphics, reverse engineering, CI/CD, OSS, RestAPIs, and scripting (cronjobs ftw!). I have experience in C/C++, Rust, Java, and Python. I am a graduate of Wake Technical Community College in Software Development where I studied devops, CI/CD, version control agile development methodologies and more! In my spare time I am a contributor to Krita, an Open Source painting software written in C++ and the Qt5 Framework developed by the lovely people in the KDE team! I currently work teaching children programming through game development principles and have participated in game jams like Ludum Dare. I also draw frequently and enjoy listening to progressive and experimental metal, hip hop and jazz. I am also a licensed amateur radio operator, and enjoy talking to many people in various countries in morse code. (73!)
I have a blog that is here.
For Recruiters:
I am interested in cloud computing, software quality assurance, test driven development, devops, and software reliability. I am currently looking for work! For more information about some of my experience feel free to email me isaiahjdeppong [at] gmail [dot] com. I have many of my projects, finished and unfinished, on my github. Also take a look at my linkedin for more information.
Portfolio
- OvenStock, CAPSTONE project
-
Over the course of a semester a small team and I created this extensive inventory management webapp written in Python using Django and mysql. We planned and execute this using SRS documentation and weekly scrum meetings to achieve any goals we had listed on our kanban board. The target customer was for a small business bakery owner. My role was developing a small wrapper for the SQL database which I had outlined using sql schema files. This way my team members could easily interface any of our database and make simple queries easily! This was an extremely valuable learning experience for us, and really helped springboard my interest in team-focused work instead of solo projects.
- Vertical
-
An esoteric programming language made to be unreadable. It consists of entirely vertical characters as the only method of input for programming files. This results in code that is very difficult to break apart if not in some kind of font that renders things like I, l, 1, and | very different. You can find the link to the esolangs wiki for more documentation and code examples here. The code itself is a simple interpreter written in C. I plan on creating more programming languages and possibly making some simple assemblers and linkers! (That would be fun!)
- 3D Software Renderer
-
I really enjoy getting my hands dirty into something I want to learn! I think that 3D rendering has always been interesting to me, and this project was an attempt to get a basic wireframe .obj renderer running. It isn't particularly fast, and it runs completely on the cpu. I also took some time to learn more about linear algebra, and wrote some of my own transformation matricies. At the moment it is a work in progress but I have implemented the following features!
- Wavefront .obj file loading
- Triangle rasterization
- rotation, translation, and scaling transformation using linear algebra
- Markov Chain Text Generator
-
After doing some personal research on a Markov chain I decided to implement a very simple on in C++ to generate text from a given prompt.
- John Conway's Game of Life
-
The Game of Life is a simple cellular automata that I implemented in 138 lines of code with SDL and C. It includes mouse controls and a simulation speed that can be sped up or slowed down. I plan on looking back and reworking some of the code with more modern drawing techniques that I've learned recently.
- Ascii Mandlebrot
-
This program is a simple mandlebrot generator written in pure C. It is written to also appear like the mandlebrot set. I think it could have been obfuscated/shortened even smaller, but 519 bytes is pretty good all things considered. I definitely want to come back and do some more with it, like being able to zoom and things like that.
#include <stdio.h> /* -ascii mandel- */ #define p(a) a*/** br*ot set* in c*/a #define c(u)/* #*:-=$* */putchar(u) #define J "..*-=:;#$ " /*-#;:*/ typedef f;float typedef i;f main() {f h= 32; for(f x=-32;x<32 ;x++) {for(f y=-80;y< 80;y++) {i cR=(i)y/32;i cI=(i) x/16;i x2=0, y2=0;f k=0;while(p(x2) +p(y2)<=4&&k< h){i z=p(x2)-p(y2)+cR;y2 =2*x2*y2+ cI; x2=z;k++;}k<h?c(*(J+k%10))):c(0x10);}c (10);}} /* made by Deppong 8-16-2021 */
- Tic Tac Toe
-
This program is a potential entry in the International Obfuscated C Code Contest designed by me and also written in C. It works like normal tic tac toe, letting each player take turns until the end. There are some pretty cool tricks in here which I am trying to write up about the tricks done. A majority of the obfuscation is done with the power of the ternary operator in C. The board is just an array of 9 ints, where 0 is nothing, 1 is x, and 2 is o, as seen in the '#define O(x)' statement.
#include <stdio.h> #define Y(x) b["VPSTURXWVTRPQWTPX"[x%18]-'P'] #define Z(S,C,c,s,z) printf("%c%c%c%c%c\n",S,C,c,s,z) #define O(x) x==0?' ':x==1?'x':'o' typedef q ;char/**/ typedef h ;q B(q*b) {q s=0,i= 0;for(;i<18;i+= 2){s|=Y(i )&Y(i+1)& Y(i+2);} return s ;}void C( q*b,q t){ putchar( 10);h*a= "xo", p;q i=0,l=48, z=0;p=(t &1)?*(a+ 0):(t==0) ?'0':*(a+ 1);for(; i<5;i++) { i & 1?Z(43,45,43 ,45,43): p=='0'?( Z(l,124,l+1,124,l+ 2),l+=3) :(Z(O(b[ z]),124,O(b[z+1]), 124,O(b[ z+2])),z += 3); }} main() {q b[9]={0} ,t=0,s=0 ,x=1;C(b, t);while( B(b)==0) {q i=0;x =1;scanf( "%d",&s); if( b[s] !=0){t=t ==1?1:t-- ;}else{b[ s]=t&1?2 :1;t++;} C (b, t); for(;i<9; i++){x&=b[i]!=0 ;}if(x==1 )break; } printf ( "%c wins",(x&&!B(b))?'t':(t&1)?'x':'o');}/* XODeppong 2021*/