Replacing my Right Hand with AI
Breaking my hand forced me to write all my code with AI for 2 months. I'm never going back.
|
Posted by
on
July 30, 2024 ·
15 mins read
Designing Bridges with Pytorch Autograd
I used automatic differentiation in PyTorch to optimize bridge designs by solving a system of equations. Yes, you can use PyTorch for things besides neural networks :)
|
Posted by
on
January 01, 2024 ·
8 mins read
Automating 1/2 of my typing with generated shortcuts
Compress now has 1,400 stars on github! Shortcuts are autogenerated from analyzing 6 months of my typing...
|
Posted by
on
August 26, 2023 ·
10 mins read
Refinance your Tech Debt
Credit Card Tech Debt vs Mortgage Tech Debt People online talk about “tech debt” as a universal evil that heroic engineers must fight against Product to prevent, but just like real debt, the story is more complicated. Tech Debt Technical Debt is the idea of reducing work now to finish a project sooner, in a way that will create more...
|
Posted by
on
December 07, 2021 ·
9 mins read
Podcast: Taking Elevators, Robot Body Language, and Advice for Startups
I was recently featured on the Sense Think Act podcast with host Audrow Nash.
|
Posted by
on
October 25, 2021 ·
1 min read
Premortems Will Keep Your Code Alive
Premortems and Postmortems Two crucial tools for writing code when the stakes are high, like managing our fleet of over 100 robots at Cobalt Robotics. This is part 2 of a 2 part series on High Stakes Code. See Part 1. Premortems Premortems are remarkably quick, and have saved my team from making bad mistakes many times. What’s a premortem?...
|
Posted by
on
October 12, 2021 ·
7 mins read
Writing High Stakes Code (At A Startup)
Thoughts on how to write code when the stakes are high or human safety is involved, but you don’t have the budget or timelines of NASA. Most of these are from safely building a fleet of over 100 robots at Cobalt, advising startups who programmatically move money/stocks, or my time at SpaceX. I’ll try to make this general for writing...
|
Posted by
on
September 21, 2021 ·
10 mins read
Path Planning with Trajectory Libraries
Traditional path planning techniques such as RRT or A* do not do a good job expressing physical constraints like maximum acceleration or turning radius. Even if they are smoothed to find the shortest path, it might not be the quickest path.
|
Posted by
on
December 12, 2015 ·
2 mins read
Adaptive Control for Damaged Drones
Modern control techniques like LQR require an accurate model of the system they are controlling, but if that system changes changes you’re out of luck. I designed an adaptive controller to maintain control of a drone even if one of its propellers breaks. The algorithm compares the drone’s expected behavior and observed behavior to learn thrust offsets and correct them....
|
Posted by
on
December 06, 2015 ·
1 min read
SpaceX Falcon 9
This summer I worked at SpaceX on the Flight Software Test Team. Ensuring software correctness is a challenging problem on a project as complex as a rocket, where so much performance depends directly on the hardware. Our team creates automated tests that leverage both simulations and actual flight hardware to verify that new code is flight worthy, and that no...
|
Posted by
on
September 01, 2015 ·
1 min read
Robot Soccer AI
Working on the MIT / Harvard Robocup Soccer team was a fun and fast paced engineering experience. We compete at a world championship tournament every summer, and spend the school year working on new mechanical designs and new behavior algorithms to out-maneuver and outsmart the other teams. I redesigned our Artificial Intelligence and planning software based on nested Finite State...
|
Posted by
on
December 13, 2014 ·
1 min read
High Performance C++
Using C++ I created a variety of physics simulations for a graduate class on Systems Development for Scientific Computing. I implemented an abstract graph class to represent my data, and applied it to several different problems including mass spring simulations, shallow water models, and geometric collision detection.
|
Posted by
on
December 12, 2014 ·
1 min read
Termite Tracking Computer Vision
It took 60 hours of tedious labor annotating videos of termites every time the Self-organizing Systems Research Group at Harvard ran an experiment. Because of the experimental setup, off-the-shelf tracking software didn’t work. By using standard image processing techniques, a model predicting each termite’s motion, and small amounts of human input, I was able to largely automate the video processing,...
|
Posted by
on
December 12, 2014 ·
1 min read
2D Robot Simulation
My goal with this program was to create an environment where I could accurately simulate a robotic system without any hardware. The most challenging part of robotics is overcoming the physical imperfections, noise, and unpredictability in the environment. I tried to mimic this as closely as possible in the simulation by only allowing the robot to perceive its environment through...
|
Posted by
on
June 01, 2013 ·
1 min read
Erosion Simulation
I wrote this simulation while working with a professor at Harvard University doing research in computational geomorphology during my freshman year.
|
Posted by
on
November 02, 2011 ·
1 min read
Unreal Gravity
This program simulates how objects would orbit a central gravity well if the relationship between distance and force in Newton’s law of gravity is changed. Exponents other than -2 produce strange, but still stable orbits.
|
Posted by
on
May 01, 2011 ·
1 min read
Landscape Generation
This program uses Perlin Noise to generate random landscapes and color them realistically. A number of parameters allow the user to tailor the scale and level of detail of the generated landscapes, and the program can produce surprisingly realistic results.
|
Posted by
on
March 01, 2011 ·
1 min read
Cellular Automata
This program simulates Conway’s Game of Life, a well known rule for 2 dimensional Cellular Automata. Cellular Automata can produce incredibly complex patterns from extremely simple rules and interactions, and noted scientist Stephen Wolfram suggests that they can be used to model reality more effectively than mathematical equations in certain situations. This program is multithreaded to take full advantage of...
|
Posted by
on
January 01, 2011 ·
1 min read