I don’t have a great definition for “great” ;-), but here are some accomplishments I am especially proud of:
Document.getElementById(...).innerHTML = ..., I often didn’t even have syntax highlighting. There were backslashes all over the place – especailly in parts of the app where the dynamically generated HTML was being used to generate more content! However, the result was a awsome web app, not to mention a grade of 100.
- DesparadosAEye: This full-stack ML project involving research & training, presenting at UTA Innovation Day 2021, and porting Facebook’s blender-bot model to tflite challanged every major asset I thought I had: team management, machine learning, and app development — not to mention the technical debts tackled compiling and deploying a 335-million parameter language model to the Android. I thank my teamates — Chance Huddleston, Adam Khalaf, Payton Parrish, and especially, Kennedy Mosoti — for pulling through with me. Adam and Payton worked on the login screen and app icon; Chance and Kennedy developed the core application and backend data model; and I developed the conversation interface and its ML backend. I think we all expected things to go faster than they really did. But by early April, the unknown unknowns were begining to surface. After struggling with transformer after transformer diverging and dozens of fatal ‘neural network surgery’ operations, I found the 90M BlenderBot model to be a viable network for use in our application’s conversation intelligence. After compiling, deploying, debugging, and repeating, we presented our final app on May 6, 2021, finishing with 1 hour to spare! We had developed the world’s first mobile application which, to my knowledge, uses blenderbot for on-device mobile chatting.
- Jnumpy: Jnumpy stands for Jacob’s numpy library for machine learning, and yes, it’s mainly a personal project. You see, my CSE 4308 / 4309 / 4392 classes assigned dozens of projects relating to machine learning and neural networks, and the professors often require that no unapproved third-party libraries be used (basically, anything besides numpy and python builtins). Realizing early on that this would demand rewriting a lot of code, I made the objective to develop a deep learning framework. Incrementally but steadily jnumpy evolved from a csv loader to a matrix multiplecation backpropagator to an arbitry DAG automatic differentiation solver to a full blown deep learning framework, complete with neural network and reinforcement learning abstractions. Unlike the above projects, the biggest challange here was prioritizing development work. Working without a deadline, there were many points in development where I thought ‘I want this feature or that feature’, but at the end of the day, such features didn’t bring practical value to the project when I used it for my homework, so I had to throw them in the backlog (which is basically the trash bin). I feel establishing and maintaining priorities in this project will prove useful in future seemingly never-ending projects.
I could list several other I project I am proud of but never completed, for example, the Cookie Baker 3D Printer, the Cookie Cutter CNC, or the MLN-Dashboard, to name a few as well as those I am currently working on like the Computatrum or Limboid robot. My limited engineering experience has impressed on me the need to 1) never turn away from work because it’s hard, boring, or unappreciated, 2) stick through low points when feedback is sparse or negative, and 3) just get started!