Our team Taking a photo with Professor Klaesner after winning 3rd place at BME day.
As a senior, I worked with a team of 3 students for a client, Professor Mary Ruppert-Stroescu from the Sam Fox School of Arts. Dr. Ruppert-Stroescu wanted a way to make fashionable shirts equipped with an EKG sensor to monitor the wearer's heart. After extensively exploring the options, we decided to build a shirt that used conductive silver fabric woven into an elastic band that could measure an EKG with medical-grade accuracy that is comfortable and hypoallergenic. The circuit on the shirt utilizes a set of filters and a shunt AD8232 chipped raspberry Pi Pico to process the data and send it to a HIPPAA-Compliant SQL Server. The shirt is powered by a small battery pack that can be charged via USB-C and can last for up to 60 hours.
We went through the SlingHealth venture cycle and presented our poster at National Demo Day. We also presented our work at at Wash U's annual "BME Day". We won third place in the BME Day competition, and our project website summarizing our work can be found here.
Picture of a surgical uretal stent. The prototyped version in development is intended to act as a drop-in replacement to existing surgical workflows
While a junior, I was invited to collaborate on a senior design project focused on urologic surgery. The client for the senior project, Dr. Nimrod at the Washington University School of Medicine, wanted a solution that could detect Iatrogenic Ureteral Injury during an operation. I worked with the team to come up with different instrumentation methods, and helped develop and prototype a solution. We considered infrared, x-ray, and ultrasound among other ideas until eventually settling on temperature sensing. The idea is for an array of thermocouples/thermistors to be placed at various locations near the ureter and inside the stent. This way, if one region starts to heat up, we can determine if the scalpel is nearing the ureter and trigger a buzzer or other intervention to signal that the scalpel should be removed.
Very proud to have worked with these super stars from @WashUBME in the design of a novel ureteral stent to prevent and/or better detect iatrogenic ureteral injuries… thank you for choosing me and @ChrisArett @WashU_Uro as your clients, can’t wait to see what comes next! pic.twitter.com/wuNgtC2t1Z
— Nimrod Barashi, M.D. (@Uro_BarashiMD) May 2, 2022
We presented a polished prototype at Wash U's annual "BME Day". The project website summarizing our work can be found here.
Picture of the interpreter running an AVR assembly file that computes the 6th fibonacci number
For the final group project in CSE 237, I as well as another Sophomore and Junior decided to build an Arduino Assembly Interpreter written in Java. CSE 237 is a class on programming tools and techniques, so one of the main intentions of the project was to adhere to clean code techniques and best practice planning and contribution models. This included the use of branching and pull requests, a Kanban board, code review, and external peer review.
The Arduino Assembly interpreter is able to take in a .S assembly file for the AVR instruction set (specifically for the Arduino Uno), and then interprets the file and runs it through a virtual CPU to follow the instructions. By the end of the semester, the interpreter was able to run assembly files containing basic arithmetic instructions, simple function calls, and branching.
An repository of our team's completed project can be found here. Additionally, as a side project this summer, I'm looking to rewrite a version of this in C as practice for my internship at Garmin where I have to write a lot of C code.
Picture of the website.
For my final project for CSE 204A (Frontend Web Development), we had to build a frontend-only website or application using a RESTful API. Out of a need, I decided to build a pokedex tracker using the PokeAPI because it's been my goal for a few summers to finish the National Pokedex in Gen 4. The site lets you track your progress and has a share button that composes a tweet that tells everyone how far you are in your progress to "catch 'em all!"
This site is similar in a lot of ways to my Fire Emblem Echos Randomizer I built, but I've come at it with 1-2 years of wisdom. For example, I used TypeScript instead of vanilla JS with a target transpilation of ECMAScript 6 for maintainability. After one project, I'm a TypeScript convert; it is such a great resource for catching errors and writing stable code. Second, I am using AJAX calls instead of a local database which will make the site run slower but de-bloats the code and makes it more dynamic. Lastly, instead of building a monolithic block of JavaScript code, I used a "clean code" style that utilizes smaller methods rather than a spaghetti main loop.
Unfortunately, I still made some mistakes. I lost 10 points on the project because my website made about 2,400 AJAX requests, which divided by the 493 pokemon means about 4.83 AJAX requests per pokemon. Which makes sense considering that sprites, encounter, and evolution data each needed to be obtained in separate requests. I probably should have made some of the requests "lazy load", but I calculated that the site would still need at least ~600 AJAX requests to lazy load the elements and 4 megabytes of data.
The flaws could be fixed by introducing server-side rendering, but was out of scope for the class project; my professor was even a little wary of me using TypeScript because "you're not writing your site in JavaScript." Maybe a revisit of this project that lets you upload an actual save file and it automatically tracks and builds a completion plan could be a fun project for the future.
The site can be found here, and the final code can be found here.
Picture of a typical board. The top number represents the sum of the scoring tiles, and the bottom number represents the amount of bombs present.
I worked with a friend and Professor Bill Siever on an Independent Study focusing on an Abstract Strategy Game algorithm analysis based on the game Voltorb Flip. The game is a hybrid of minesweeper, sudoku, and nonogram, and the semi-deterministic and semi-probabilistic hybrid makes generating efficient solutions on n-dimensional boards difficult. The types of algorithms used to solve the board, such as A-Star and a modified Sudoku Solver have deeper application in biological simulations of protein folding. This independent study gave us the chance to explore more complex algorithms involved in high-level simulation with limited knowledge as sophomores.
The codebase can be found here, and the final paper can be found here
Picture of the Bearzlet interface. We chose some ugly CSS.
My final project for CSE 330 was an app called Bearzlet, a Quizlet-like app written from scratch. I built
the
site together with Alaina Bohrer. The site uses accounts and upon account creation, the user must verify
their email address with a special token. Upon login with a verified email, a user is able to create public
or
private sets, star sets, as well as study their sets. A user is also able to see statistics on how well they
are doing on the cards. On any set a user has access to, they can play a write game to study. If a user
misses cards, they can also "star" difficult cards and play those starred cards.
The app was written using a diverse stack of languages and frameworks. The frontend was built using Vue.js, and the page was compiled in Electron to build the website to a dedicated desktop binary. The backend of the application uses PHP and MongoDB to manage the data, and the frontend uses AJAX requests to get data from the frontend. Our application has been tested for basic web security and is reasonably safe from SQL/Database Injection, XSS, CSRF forgery, and other well-known penetration methods.
A link to the GitHub repository with our project's code can be found here.
Prototype of the HEPA Filter controller using a Raspberry Pi.
In the Spring of 2020, all Washington University in St. Louis students were sent home. While home in the Spring, some students, including my friends and I, had some extra time on our hands. With that extra time, a team of friends and I got together and applied to compete in Johns Hopkins University's COVID-19 Design Challenge. We were accepted and quickly got to work finding a problem to look at. We quickly settled on hospital infrastructure, specifically, the use of low-cost and widely available HEPA filtration units to create negative pressure rooms, a tool extremely important in preventing the spread of COVID-19 in hospitals.
Negative pressure rooms were first used for highly invasive and contamination-prone surgeries like heart transplants to reduce the spread of bacteria and viruses. Negative pressure rooms have been slowly expanded in hospitals for sterile environments. When the COVID-19 pandemic started, HEPA units were proposed to supplement the existing expensive systems that induce negative pressure which were overloaded. Normally, there is little need to have more than 2-8 negative pressure rooms per hospital, but with the rise of COVID-19, the demand for negative pressure rooms skyrocketed for patients who were immunocompromised or undergoing non-elective surgeries who were at a much higher risk of death from COVID-19 contamination as well as for the numerous COVID-19 patients to contain the spread of COVID-19 in hospitals.
With the high cost of negative pressure rooms, the solution of HEPA units emerges. They can filter air almost as well as expensive negative pressure equipment, and can easily be set up in converted hospitals such as Governor Cuomo's "COVID Hotels" in New York for overflow patients. However, these units are inexpensive for a reason; they often require a nurse to check the unit every couple of hours to verify that the unit is maintaining negative pressure and correct the settings if it's not. With the already high workload nurses face, any extra work might have a devastating effect on a nurse's job so we sprang into action to design a device that monitors the HEPA filtration unit.
With our remote situation, I didn't have direct access to a HEPA unit for testing, so as the engineer on the team, I took a raspberry pi and mimicked a virtual sensor using a USB microphone that had a similar protocol to a USB pressure sensor. This allowed our group to construct a negative feedback loop and then design a management system that would allow a single Raspberry Pi to control multiple negative pressure rooms. Our invention was well-received, and we even had our team's work reported in Washington University's Engineering Magazine with 2 other Washington University teams competing in the challenge.
Picture of the IoT Button, a phone that manages clicks from the button, and a poster for suicide prevention
After losing a friend in my community to suicide, I wanted to find a way for technology to aid in suicide prevention rather than being a force for evil. I initially wanted to make an Amazon Alexa integration that would check in with a student every night as a digital therapist. I quickly realized that this was a bad idea and that people don't want to talk to tell a robot how they're doing.
I was worried that my idea had hit a dead end. But when it seemed like I had nothing, I learned about Amazon's Internet of Things (IoT) Dash Buttons that were the size of a keyfob, but had wifi and could connect to a server across the internet. The buttons even held a charge for nearly 2 years on a single AAA battery! Because of this amazing hardware, I decided to switch to using Amazon's IoT button.
I used AWS Lambda, AWS IoT, and Twilio to relay a distress signal to a crisis hotline telling them that a user in need of rapid assistance. I was interviewed by KING 5 News, Seattle's local NBC affiliate, and interviewed by Washington University in St. Louis' Engineering Magazine. My invention was also featured in the University's Skandilaris Center Creator's Gallery. I handed over the source code to the JED Foundation to work with (the foundation handles college campus suicide prevention for thousands of college campuses).
An employee of AT&T also caught wind of my project. He was impressed with my work, and shipped me a copy of their version of the IoT button to play with. Their version works over the LTE network instead of WiFi, which means near 99% coverage of the US and rock-solid reliability for a crisis response device. When I'm out of college and have more time, I hope to pick up the project again because it's become even more necessary in the years since I started it.
Picture of an NFC tag
The same Summer I developed my Connections Button, I became obsessed with NFC tags. I ordered a 100 pack of NDEF-Encoded NFC tags from NXP Semiconductors, and after having some fun with using them for automating tasks, I wanted to explore why the technology saw decent consumer adoption in Europe but saw almost no consumer adoption in America. It turns out the historical reason for this is due to Apple's hesitation to add NFC support in the iPhone models, while Europe has a much higher share of Android devices that ship by default with full NFC support. However, with NFC support coming to iPhones in early 2019 with the upgrading of CoreNFC in iOS 13, I wanted to experiment and see where NFC might find usage. My first thought was with realtors or other low-volume, high-value salespeople. I thought that realtors could potentially benefit from a "smart" business card or simply an NFC emitter that automatically added their information to a client's phone as a contact. Due to how few clients realtors have and how much their clients spend, any potential advantage in finding and retaining clients could be a literal million-dollar difference. And as a salesman, one of the biggest things they attempt is to get their name into a client's phone, something that NFC makes effortless. Most android phones have "appless" NFC reading, which means that without needing to install an app, if an NFC tag is near the phone's reader while it is unlocked, the data on the tag will be automatically scanned, meaning that an NFC-enabled business card could be scanned without fumbling for an app on any phone with an NFC reader. However, Apple does not support this, and has not showed plans to implement this as of 2022.
To experiment with this idea, I created several NFC tags and gave them to a luxury hairstylist, a Chanel saleswoman, and a realtor. The reception was initially optimistic. However, in all cases, the product was eventually rejected in for their daily routine with the main reason being support. As previously mentioned, appless NFC reading without installing an app is still on its way to being implemented on iOS despite the hardware being present. This small case study could be considered another example of Apple's mobile market share dictating the success of solutions such as NFC. As an alternative to NFC, Apple has implemented native QR code reading in their camera app.
I later recycled this project into my final project for my Honors History class and for the project also talked with realtors about the potential of this technology. I later took this project and wrote it up for my final paper and presentation for my Honors History class (which also included economics, which is what our final unit was on).