Hobbies
Programming
Since taking an intro to programming course my Freshman year of undergrad, I have been a big advocate for every engineer learning at least basic scripting skills. If you can read pseudocode, you can read most python. This is very powerful, because it means that with just a little practice you can leverage the enormous set of python libraries that exist to make nearly every aspect of your professional life more efficient. Below are some problems/questions I came across in my work that were optimized using python scripting.
- Can’t stand having to be in the lab just to change the flow rates on some mass flow controllers, but there is no built-in functionality to do so? Write a script to change them on a timer. This solution uses Python to talk between three different programs, from three different scientific equipment manufacturers, to synchronize the experiment set points across the equipment at set intervals. The software and hardware from these companies do not natively support talking to each other, which is where Python steps in to be the glue between them all.
- Need a detailed report of an experiment as soon as it finishes, anytime, anywhere? Set up automated emails that trigger when the experiment ends, sending a summary report to your inbox.
- Need to calibrate a gas chromatograph, but don’t want to stay late in the lab just to change some mass flow controller flow rates? Use Python to read log files from the Agilent software to detect when a run finishes, and respond by changing to the next ratio of flow rates between your carrier and analyte gases. When the script detects that the GC sequence has finished, turn off the flow on all mass flow controllers.
- Need to spend 20 minutes copying and pasting data between Excel sheets and CSV files for every trial of an experimental? Use the Python API for the hardware that does the data collection to run the experiment, create an Excel file, and do all the data analysis in under 1 minute. This prevents copy-paste errors when you are tired from copying and pasting in Excel all day long.
- Do you have a terrible, knock-off temperature controller that is no good at holding a constant temperature ramp rate? Use Python to write your own custom PID software. Control the power output by the controller according to a set ramp rate explicitly, instead of setting a start temperature, end temperature, and duration. Write a custom GUI to display the data in real time for the axes you are interested in by interfacing with the temperature controller, pressure gauge, and analytical equipment that do not have an out-of-the-box solution to communicate with each other.
- Need to integrate dozens of peaks for CSV files with over 100,000 lines that slow down and crash Excel every time you try to make a plot? Use Python to make a custom integrating GUI, complete with baseline correction and data fitting.
- Have a TEM image showing nanoparticles on a surface and need to know their surface area and particle size distribution? Write Python to process the images, show the segregated areas, and make plots.
- Curious about the pump curve of your vacuum system but don’t have the patience to sit there for 12 hours straight? Log all the pressure data for however long you need.
- Have data from multiple instruments for one experiment, each with their own timestamp formatting? Use Python to sync the timestamps across all CSV files and make plots that line up exactly right, all without fussing through Excel with millions of cells full of data slowing your computer down.
- Tired of uploading PDFs to websites to merge them, or fussing with Adobe Acrobat? Use Python to make a custom `.exe` where you can select as many PDFs as you want in the file explorer and “send to” this program, which in a few seconds spits out a combined PDF.
Clearly making custom solutions to these highly personalized problems is a good way to work more efficiently. I often sleep with multiple experiments running overnight that automatically change inputs overtime, collect and analyze data for me, and stop the experiment if something goes wrong. While the code I have written may not be broadly applicable to anyone, it is very valuable to my workflow and that of my labmates, who can use my scripts on similar systems/datasets.
Beyond python scripting, I also wrote this website. I have also recently gotten into video game development, which you can read more about on the Games page.
This website is written in HTML/CSS/Javascript, using the Bulma CSS framework. It is my first time writing a website, so I leaned heavily on using AI to help teach me the basics and provide a basic template to use as a launchpad. I don’t find writing HTML, CSS, or Javascript to be very fun, so I probably won’t make this website any fancier than it is right now. For this project I found more excitement from learning how to self host this website on my own Linux server. Learning the sysadmin skills to deal with security, interfacing with a CDN, and managing the backend files was much more fun.
Why make a website? Well for a long time I wondered if it is any fun to do so, and I also figured that a custom portfolio website would help carve out my own tiny corner of the internet for people to interact with. I find LinkedIn to be very corporate and stiff. If I were to show you a side-by-side of two LinkedIn profiles for people with similar experience both looking for a job in the same field, you wouldn’t be able to tell any real difference at first glance. They are both just another boring list of education and work experience. I figure that making my own portfolio website allows me to display more of who I am and what I am passionate about. What LinkedIn page lets you directly interact with a website the person programmed, play games they made, and learn about the person beyond just work experience, all in one place? I would argue none. Not that it isn’t possible necessarily, but more so that the etiquette of LinkedIn does not encourage the real me to be displayed.
Woodworking
Just like all of my woodworking projects, this section is still a work in progress. Will I ever finish it? Probably not.
Actually wait I made a bench. Here are some photos:



3D Printing
I got a 3D printer in 2024. This lets me play around with designing objects in CAD, and making them real. My most common use for the 3D printer so far is fixing little problems in my life. For instance, the fan I have in my bedroom did not reach the height of the bed, making it kind of useless. I used an old suitcase to raise it up, but that was an eyesore and took up space. The design I made in CAD was much more compact, while still raising the fan to the same height. For Christmas gifts, I designed a snow globe in CAD that uses a Oui brand yogurt glass as the globe. It was fun designing, printing, and painting the snow globe bases, which you can see here. I have also made many custom woodworking jigs to try and correct for the terrible technique that I have in drilling holes, sanding, painting, and using a router. I would upload pictures of a lot of these things, but I’m kind of tired right now sorry.