Web | visionOS and iOS | ML and RL
About Me
I’m Dawson Metzger-Fleetwood, a software engineer with dual degrees in Finance and Computer Science (Machine Learning specialization) from the University of Maryland.
Most of my work revolves around web, iOS, and visionOS development, but my professional experience also includes building LLM toolchains, and scaleable ML pipelines. I'm passionate about applying RL in real-world scenarios and solving real world problems with technology.
When I’m not working, I’m passionate about fitness, constantly pushing myself as a natural bodybuilder. I also love learning. Whether it’s a random skill, a new language, or a confusing RL algorithm, I enjoy expanding my knowledge. Traveling is another big part of my life. I enjoy exploring new places, immersing myself in different cultures, and gaining new experiences that shape who I am.
I’m currently a Software Engineer at About Objects, but am always open to interesting projects. If you’d like to connect, please don’t hesitate to reach out!
Skills
Web
I have professional experience building full-stack web applications and interactive websites. I’ve built servers with Node and PHP, built extensions for Wordpress, and managed production deployments. I've led a full-scale, from scratch overhauls of an enterprise websites. I’ve built production grade frontends with React as well as vanilla HTML and CSS. I also have experience with real-time audio processing with WebSockets and libraries like Three.js.
visionOS and iOS
I’ve worked extensively on VisionOS, iPadOS, and iOS projects, specializing in AR/VR development using RealityKit. I have experience with RealityKit’s entity-component-system architecture, coordinating with SharePlay in 3D spaces, package management in Xcode, concurrency in Swift 6, and building incredibly fast heapless programs in Swift. I’m familiar with many of Apple’s tools, including optimizing for performance with Instruments, managing scenes in Reality Composer Pro, deploying on TestFlight, and training/using ML models with Create and Core ML.
ML and RL
Professionally, my experience in machine learning includes both enterprise and government applications. I designed and built a ML pipeline that processes images to train models for recognizing and tracking the orientation of 3D objects in real time. I’ve also customized existing models to improve performance on tasks involving sensitive government data.
Personally, my interest in ML extends much further. I built a transformer using only numpy, and have worked with embeddings, autoencoders, and more. I've had some exposure to deep reinforcement learning and loved it. I've implemented some of the core algorithms: TD(lambda), DQN and SARSA varieties, some policy gradients, off policy importance sampling, etc. I mainly use OpenAI Gym and Universe.
Software Engineer @ About Objects
- Led development of a 3D object recognition pipeline for enabling detection and rotation inference from 200 images.
- Worked extensively on VisionOS, iPadOS, and iOS projects, specializing in AR/VR development using RealityKit, Blender, etc.
- Wrote software to automate billing processes, from sending reminders to generating reports.
- Led the development of About Object’s website. Incorporated custom graphics using Three.js, wrote multiple custom plugins for WordPress and a from-scratch PHP server.
- Built LLM toolchains for unstructured data ingestion, and assisted compliance-based document generation for enterprise and government clients.
- Selected to lead the AI blog, writing articles on autoencoders, reinforcement learning, transformers, and graph neural networks.
Amino Amigo
I like to workout, and building muscle requires lots of protein.
Building muscle optimally requires timing protein intake. However, no macronutrient tracking
app that I could find takes this into account. None distinguish complete from incomplete protein,
or optimal protein windows. This frustrated me to the point that I created the app I wished
already existed.
Amino Amigo is currently available on the iOS App Store, and has been downloaded in over a dozen countries.
The app factors in individual metabolic limits and alerts users to when - and how much - protein
to have. The app follows the MVC model, Apple's interface guidelines, and makes use of a wide
variety of Swift features and frameworks.
View on the App Store
LexChat
LexChat is a website that allows users to search and talk to the Lex Fridman podcast.
I transcribed the podcast with Whisper,
created the search engine using vector embeddings and Pinecone, and construct natural
language replies based on this search using GPT-3.5. Each search result includes a timestamped
link directly to the moment in the podcast episode containing the search result.
I built this back in 2022, before the explosion of ChatGPT and LLMs in general. Because there was limited
LLM tooling at the time, I had to build my own RAG stack from scratch.
Visit LexChat
Rotobrush
With Rotobrush, a user can manually mark the border of an object in the first
frame of a video, and Rotobrush will automatically propagate that border across
all subsequent frames.
This project was based on a paper called “Video SnapCut” (Bai et al.) that was revolutionary
at the time of its release in 2009. SnapCut was immediately included by Adobe Systems in
Photoshop, and was only recently replaced by more modern techniques. I am proud that my
implementation achieves superior performance to the 2009 version.
Read the Paper
Panorama Stitch
This project is a panorama stitching application. Given a few overlapping images taken from the same location, the program stitches them together into a coherent single image. This project used a variety of techniques including alternate color spaces (YCbCr), GMMs and ANMS for feature recognition, convolution, RANSAC for feature matching and homography estimation, cylindrical projection, bilinear interpolation for image blending, and more.
Other ML
My computer science concentration was in machine learning, so I’ve had exposure to the
full machine learning lifecycle. This includes scraping data, preprocessing and preparing
data, data analysis and presentation, designing, training, debugging, and testing model
architectures, and integrating the results into existing applications.
I’ve also developed a variety of traditional models from scratch, including neural
networks (backpropagation and gradient descent too), transformers, CNNs, autoencoders, softmax
regression and classification, embeddings, PCA, simulated annealing, A* search, particle
filters, Kalman filters, entropy based decision trees, Bayes nets, GMMs, ensemble methods,
and more. I’ve also used techniques to support model development such as
ANMS, RANSAC, SfM, SLAM, factor graphs, GTSAM, importance sampling, and more.
MicroCaml
MicroCaml is my own - albeit simple - programming language. It's Turing complete, and has
many of the features of OCaml. I designed the lexer, parser, and interpreter from scratch using
context free grammar, and created an interactive shell to interface with the programming language
from the command line.
As a precursor to designing MicroCaml, I familiarized myself with context free grammar by creating a
regular expression engine using NFAs and DFAs.
Systems Architecture
In college, I took a computer systems architecture class revolving around optimizing performance of multithreaded and networked systems. I implemented Tomasulo’s algorithm, four branch predictors (G-share, Two-Level Adaptive, etc), and three cache coherency protocols (MOESI, etc) for parallelized processors ranging from 4 to 16 cores. Testing my implementations and finding the best hyper-parameters for various processors involved extensive scripting. Some of these projects involved working directly in MIPS Assembly.
Deep RL
After graduating college, I became interested in reinforcement learning, and decided to do a self-study using "Reinforcement Learning: An Introduction" by Sutton and Barto as a guide. I read that book from cover to cover and fell in love with the ideas there. Along with OpenAI’s Spinning Up, I implemented many of the algorithms I learned from scratch, including SARSA, DQN, PPO, DDPG, SAC, and a simple version of Monte Carlo Tree Search inspired by AlphaZero.
AO Website
In college, I took a computer systems architecture class revolving around optimizing performance of multithreaded and networked systems
Pipeline
In college, I took a computer systems architecture class revolving around optimizing performance of multithreaded and networked systems
Deep RL
In college, I took a computer systems architecture class revolving around optimizing performance of multithreaded and networked systems
Contact Me
My inbox is always open. If you're interested in working together, have a question, or just want to say hi, feel free to reach out! Send me an email at dawsonamf@icloud.com, or connect with me by selecting an option below. You can also schedule a call .