Tristan R Zippert

University of Maine 2023 B.S. Magna Cum Laude
University of Maine 2024 M.S.· tris.zip@gmail.com

Graduate computer science student at the University of Maine. Pursuing Master's thesis in Speech Separation and Music Information Retrieval(MIR) Machine Learning Systems for use in hearing aids.

Also interested in hybrid rendering systems – systems that are a combination of both standard rasterization and real-time raytracing. In my free time I work on a bare-bones game engine with 3D and 2D rendering capabilities in C++ using Vulkan and OpenGL.


Experience

Automation Programmer

JKL property Management

Automation, website frontend backend programmer

May 2019 - August 2020

University Computer Science Tutor

University of Maine

Tutored in object-oriented programming in Java

Spring 2021

Teachers Assistant

University of Maine

Fall 2023: TA for COS 250 (Discrete Structures), and COS 397 (Capstone)

2023-2024

Education

University of Maine

Master of Science
Computer Science
August 2023- May 2024

University of Maine

Bachelor of Science
Computer Science
August 2019- May 2023

San Mateo Highschool

August 2015 - May 2019

Skills

Programming Languages & Tools
  • C++
  • C
  • Lisp
Workflow
  • Emacs, LaTeX, TeX
  • Github Actions, Jenkins, Gitlab
  • PyTorch, Librosa, CoreML, CreateML

Interests

My main interests are in applying computer science to solve accessibility issues. Other interests include: 3D rendering and Game Engine design. Outside of work, I am usually out taking photographs of nature or playing board games.

Statement

Computer science, to me, means working towards solutions to complex problems. Complex problems are present in all forms and have a substantial range of difficulty. Everyday tasks like managing a schedule or determining the optimal route can present challenges to us. In the domain of complex problems, the issues become more abstract and specialized. In my perspective, computer science involves finding solutions to important problems that can make a difference.

There exists within the domain of computer science a plethora of complex problems - arguably more than some fields. Some of the issues come from the reliance on technology that has existed for decades. Most modern operating systems are Unix-like, meaning they evolved from Unix over the years. An issue with designing an operating system using multiple different technologies, new and old, is tracing problems that may occur. Bryan Cantrill of Sun Microsystems formulated a solution to debugging these monolithic operating system kernels. The result was a system called DTrace[2], capable of changing the control flow of operation to an intermediate measurement tool. The main problem arose from decades of operating system design abstraction building upon past systems. The resulting system was the solution to the complex problem of debugging kernel issues.

System design can lead to complexity, while the best solution is simplicity. As described by Fred Brooks, there is a difference between "essential complexity" and "accidental complexity". Essential complexity is something the system has to accomplish, while accidental complexity is com- plexity as a result and non-necessity. Similar concepts are prevalent in the work of Michael Abrash, specifically in the Graphics Programming Black Book. The book showcases different solutions to a described problem, with each example solved in a distinct programming language. As the book progresses, the complexity of the solutions presented also increases. While the problems presented in the book became more intricate, it highlighted how simplifying the complexity led to superior outcomes. This concept is particularly relevant in computer graphics, where there are numerous tech- niques for rendering, but the simplistic approach typically yields better performance. Another example of this approach can be seen in the work of John Carmack, a peer of Michael Abrash and well-known for his contributions to ID Software and the creation of the Quake game engine. When Carmack was developing Doom, he opted to simplify the task by having it render in two dimensions to create the illusion of a three-dimensional environment, rather than making it overly complicated for the available contemporary computer hardware. Rendering computer graphics in that way solved the complex issue of performance over visual acuity.

My perspective on computer science is that it is a field dedicated to finding solutions to complex problems. To quote the creator of the modern-day smartphone, Steve Jobs: ’Simplicity came not by ignoring complexity, but by conquering it.’ I selected this sentence as it demonstrates that simplicity is often the superior solution, even when other solutions are available. This is related to the teachings of Fred Brooks on complexity, and the tools re- quired to solve a problem. Complex issues are all around us, and it’s the job of a computer scientist to seek solutions. That is why I am a computer scientist.


Showcase

  • RCEngine - Bare-bones 2D and 3D game engine in development using C++ and Rust
  • Ray-Tracing Whitepaper
    - Whitepaper on the increasing trend of real-time ray-tracing in 3D applications.
  • Statement
    - A look at the current state of employment in the technology space within Maine