Griffin Newbold
Fourth Year Undergraduate at Columbia University
Teaching Assistant and Projects Student for Professor Lydia Chilton
Former Head Teaching Assistant and Projects Student for Professor Gail Kaiser
Former Teaching Assistant for Professor Adam Cannon
Incoming Software Engineer @ Capital One
Located in DC Metro Area
Welcome to my project portfolio! This will be an expansive display and overview of all the projects that I felt were significant in my journey as a developer, some projects may contain accompanying graphics if the requesite code is no longer available for whatever reason (This is mainly due to me being in High school not knowing what GitHub was). The projects will be presented in effective chronological order. This means if you desire to see my latest projects first then click the previous button rather than next. Thank You!
Project 1: HTML Party Games
Developed in Late 2017/Early 2018
Technologies Used: HTML/CSS/JavaScript
One of the first things I (and in the case of Pong someone else) developed. My first introductory course in
high school began by teaching HTML, CSS, and JavaScript, the course
curriculum was self-paced with the only deadline being the end of the semester so whenever I had free time I
developed these classic games, one of which I used as a project grade
for the course. The following games were developed:
1.) Pong
2.) Memory Game
3.) Tetris
To my surprise these sites are actually still being hosted even after 6 years. I went and loaded up the
sites and transfered the code to their own separate GitHub repos but if you click
on any of the names it will take you to a page to play the game on my site right now! The repos maintain a
complete replica of the original code, while these versions are slightly altered
in order to comply with the nature of the site. This means that under the more tab in the top right, "Go
Home" takes you back to the landing page of this site while other links do nothing now.
Project 2: Rudimentary 3D Game Engine
Developed in Late 2018
Technologies Used: Eclipse IDE, Java SE 6, and JavaX Related Libraries
After concluding my first year of programming courses in high school, as a young student who absolutely
loved to play
video games, I decided to try my hand at making something close to what I liked to spend my free time doing
at that time.
I managed to find an old laptop that worked enough and after setting up my programming environment, I got to
work using a combination
of youtube tutorials and online articles I managed to get something that was essentially a bare bones game
engine. You were able to
walk around and interact with the world around you which had a simple texture. The image below is all that
remains of this project however. At
the time, I didn't know what Github was and I wasn't smart enough to back up my code, so one day my laptop
just crashed and I lost all my work.
This still frame image which came from an old instagram story is the last remanant of that project. After
this point I never at least had a recent backup
of the code I was working on.
The syllabus for a course I plan to take in the future, COMS 4160 Computer Graphics, requires the
implementation of a 3D game in OpenGL as the
final project, so hopefully within the next year or so I have a more finished product to pay tribute to this
project.
Project 3: Desktop Graphing Utility
Developed in Late 2019/Early 2020
Technologies Used: Eclipse IDE, Java SE 8, and Java Awt Related Libraries
While I continued programming in my coursework I took a break from personal projects until my AP Calculus BC
instructor offered extra credit for some calculus related project.
She delightfully accepted this software I had developed as a submission, the main star of the show was the
graphing utility that I had developed which allowed a user to graph
two functions on the 2D plane. There was also the additional - but no graphical UI available - functionality
from the command line that allowed an individual to calculate the definite
integrals of functions as well.
The main inspiration for this project came from Desmos which was a popular online graphing calculator that
is still available at the proper domain online.
Project 4: Mobile Calculator App
Developed in Mid 2020
Technologies Used: Android Studio and Kotlin
To finish off the high school section of my projects, I took a step outside of my comfort zone and switched
up and learned a new language in order to build this app. I also
learned how to use a whole new piece of software as well (Android Studio). In terms of Android development,
Kotlin was a much simpler language to work with compared to Java.
The language took my favorite parts of Java and combined it with my favorite aspects of JavaScript which
made development easier. I decided to make my final high school project
a mobile app simply because it represented the final territory that I had yet to develop for. I had
web-apps, desktop apps, but no mobile apps. At the time I also felt as this
project would aid my college application which were due later that year. Whether not that is true or not is
up for debate, but I am very much satisifed with the end result in that
aspect.
While an app was submitted and published to the Google Play Store, it is not the one you see in the image
above, this version has a more refined UI along with a settings
button and functionality. This version never got published to the app store as my senior of high school had
begun and I never went through the update process.
Project 5: Simon Says Hand Held Game
Developed in Late 2021
Technologies Used: Ardunio, C++, Java, Eclipse
As part of my Art of Engineering course, I had to make a physical video game as part of a group project. The
main deliverable was the black chest box you see in the left side of the image.
We were given a $50 budget to work with and had to source all of our electrical and physical components
using that money with the exception of the Ardunio board that was used to power the
whole thing. After many brain storming sessions we settled on the design that you see. The team was split
into two groups one focused primarily on the software, and another focused primarily
on the hardware. I was in charge of the software team, but I also played a crucial role in putting together
the circuitry in the final days. In order to allow the most people to game as possible,
I developed a version in Java on my macbook and allowed for more students to play that version if they
wanted to.
I really enjoyed this project in particular because it had both physical as well as digital components, I
hope that I will be able to complete another project like this soon!
Project 6: Big-O Code Analyzer
Developed in Early 2022
Technologies Used: SpiderIDE, Python: Numpy, Scipy, TKinter, and MatPlotLib
This project was the result of my first hackathon that I participated in. This application was developed by
myself and my friend Gabriel, we settled on this topic because
we were currently enrolled in Columbia's Data Structures and Algorithms course and we wanted to develop an
application to help visualize and make this process of algorithmic
analysis easier. The hackathon began on Friday evening and lasted until Sunday morning.
The time constraint coupled with the team work needed to make this project work made the whole experience
very enjoyable. This would certainly not be the last time I participated
in a hackathon.
Project 7: Multiprocess Three-Tiered Architectured Message Lookup Service
Developed in Late 2022
Technologies Used: Git, Vim, Valgrind, GDB, C, HTTP Protocols, HTML
This project was the final assignment for COMS 3157 Advanced Programming course, the past few assignments
leading up to this project were essentially the different components needed, the HTTP client-side,
the server-side and the message-lookup service from a database. This final project combined all of this
together, along with making it multiprocessed so multiple users could connect and use the service
simultaneously. Since this is an assignment that is reused in other semesters, the repo containing the code
for this assignment as well as the others is kept private. Anyone interested in seeing that code
will have to reach out to me and request access.
Project 8: DreamJourney
Developed in Early 2023
Technologies Used: VS Code, HTML, CSS, JavaScript, React, Python: Flask, SMPTLib, Requests, Firebase, and
StableDiffusion API
This was the project submitted as part of another hackathon hosted by my university. The application was
developed once again by myself and my friend Gabriel. I was primarily responsible for the front-end as
well as the backend with the firebase database. After users created accounts with the site, a confirmation
email would be sent to the email address they signed up with and then they would be allowed to login.
Once logged in, a user could view the previous dream submissions or write a new one. If they chose to write
a new one, their text would be used along with StableDiffusion to generate three images that align
with the text of the image. The GitHub repo has more information as well as a demo present for you to check
out if you wish!
Project 9: Education Management Service
Developed in Mid 2023
Technologies Used: Google Cloud Services, VS Code, Vim, HTML, CSS, Python: Flask, SQLAlchemy, and
PostgreSQL
This project was a solid component of a semester long project for COMS 4111 Introduction to Databases.
Google Cloud Services hosted the virtual machines we used to run our web servers off of as well as the
postgresql database. This project was developed by me and my teammate Amanda Jenkins. The theme for our
project was an education management system, all of our student information is stored and accessed using
a site called SSOL. We effectively wanted to recreate certain aspects of that site along with bringing in
different aspects of other services Columbia offers, like the directory. Besides the special admin login
people who login to the site are designated by their unis any uni starting with an s denoted a student, i
denoted instructors, and a denoted advisors. Each user of a type had a similar but specific dashboard.
Students could add and remove classes as well as change their majors and push changes to their enrollement
statistics, instructors could teach new courses, add papers that they had published as well as submit grades
for students enrolled in their courses. Advisors could see their students and update their availability. The
Admin is able to add new buildings, people, courses, and departments to the system. Please view the repo on
GitHub for more information and to see the code!
Project 10: Java Spring RestAPI and Document Management App for Healthcare Workers
Developed in Late 2023
Technologies Used: Google Cloud Services, HTML, CSS, Javascript, Java Spring, Thymeleaf, Firebase Realtime
Database
This project was the result of a semester long project for COMS 4156 Advanced Software Engineering. Google
Cloud Services hosted the service portion of the project. This project
was developed by a group of 5 and we built the main rest api entirely in Java with our client app being
built in with Java in the backend and HTML/CSS/Javascript in the frontend.
This app is essentially a rethinking of Google docs with different functionalities built right in to the
system up front rather than with the use of third party apps and extensions.
Project 11: Parallel Monte Carlo Simulations in Haskell
Developed in Late 2023
Technologies Used: Haskell and Python
In the Fall 2023, I took a course that focused on functional programming in the Haskell programming language
with a emphasis on parallel programming. The course had a final project
that required teams of 2-3 to take an algorithm or process and develop a sequential and a parallel version
to show the performance improvements. My team and I developed, using a Python
script as a base, a Haskell version of the Asian Call Option using Monte Carlo simulations. We saw an
average of 5x speedup when performing our operations in parallel and using efficient
chunking strategies.
Project 12: Digital Flashcard Service using Generative AI
Developed in Early 2024
Technologies Used: React, Next JS, Python, OpenAI, ElevenLabs
In Spring 2024, I took a course titled: 'COMS 4170: UI Design' our final project for the course was to
develop a website that helped users learn, so my team and I
made what effectively is a Quizlet alternative which makes use of Generative AI tools via OpenAI's developer
API. We also make use of ElevenLabs for voice generation.
Our current iteration was tailored specifically towards GRE type questions as that was our project mentor's
request, we plan to continue development in the fall.
Project 13: Website for Philosophy class project
Developed in Mid 2024
Technologies Used: Javascript, Bootstrap, HTML, and CSS
For the academic year 2023-2024, I was enrolled in a class titled 'Contemporary Civilizations' which is a
staple of Columbia's core curriculum. For my final project
of the Spring semester we were given the option to create our project through any medium we wished, so I
developed a website to host 6 short essays I wrote on different
subjects relevant to the course as well as other pieces of information. It can be viewed here: Click Here