Atlas Digital prides itself in being the first technological consulting group at the University of Michigan. At Atlas Digital, we provide local businesses with technological solutions, whether it be a website, app, or database management, so that technology does not serve as a barrier but rather as a means to help these businesses grow more. Some projects I have worked on in this group include redesigning the website of a local pizzeria which is currently going through a rebranding process, as well as working on a news aggregator app for iOS which uses machine learning to deliver relevant business-oriented news articles to its users.
Over the summers of 2018 and 2019, I interned with the Powertrain Controls Research team at Ford. My main focus as an intern was to help automate vehicle ECU testing that was done with dSPACE Hardware-in-the-loop (HIL) simulators. I created a Python package which inputted properly formatted XML files containing vehicle data and generated test environments to be used by the ECU-TEST automation software, and I built an add-in for Microsoft Excel which inputs vehicle data from spreadsheets to automatically create test packages for ECU-TEST. I also developed a plugin for MATLAB Simulink which allows users to use data within Simulink to automatically create ECU instruments in the dSPACE ControlDesk software, speeding up such a task from 30 seconds down to 1-2 seconds.
During Summer 2020 I worked with the SYNC in-vehicle infotainment team at Ford. I was tasked with developing a Python tool that parses QNX kernel event trace data from raw binary files, with the help of the Kaitai Struct framework. I added the ability to export the parsed trace data to a new file format which was much quicker to read from compared to the original binary file, resulting in a 1200x speedup when accessing trace data originating from the same file more than once. I also created options within the tool to filter data by the state that processes were blocked in, as well as the actual process being blocked upon. Using the stats outputted by my tool, I was able to pinpoint several SYNC-related processes that were facing a significant performance degrade as a result of being blocked upon I/O related processes.
The U-M Autonomous Robotic Vehicle (formerly known as Intelligent Ground Vehicle) team aims to build a fully autonomous robot to compete at the Intelligent Ground Vehicle Competition at Oakland University every June. I have been part of the Computer Vision sector since August 2018, and as part of this sector, I have helped make good use of the ZED stereo camera along with CUDA-enabled OpenCV libraries to detect white lines in front of the robot and generate an optimal path using this information.
Blue Bus Companion is a Google Assistant app that U-M students can use on campus to get bus-related info through various voice commands. This service can be used to check whether a certain bus route is active, see how much time it will take for a certain bus to arrive at your stop, or to get directions to the closest stop of a specified route. To develop this, I used Google's Dialogflow NLP framework to extract relevant information from voice commands given to Blue Bus Companion to understand what type of information the user is requesting, and I developed fulfillment functions running on a Firebase Node.js backend to fetch the correct data from U-M Magic Bus API and deliver this information to the user in a conversational format.
Tired of refreshing Reddit to see when the site is back up from an outage? Site Status Notifier is a CLI tool that periodically fetches data from the appropriate status tracker for a site that you specify, and when the status tracker reports that the outage has been resolved, Site Status Notifier sends you a desktop notification, whether you are on Windows or Linux with a compatible desktop environment, letting you know that the site is back up. I have designed this tool in a way that makes it very easy for me or someone else to add code to support another site/service, and it's very easy for someone to add a line or two of code to deliver the notification in another format, such as a sound or a message on their phone.
To save money I would've spent by buying a Philips Hue light strip and the required hub, I bought a WS2812B LED strip for around 10-15 dollars and wrote a Python script on my Raspberry Pi that periodically attempted to ping my phone via Bluetooth to determine my presence in my room. The script would then control the power of the strip depending on whether I was present. I also set up a Flask server on my Raspberry Pi which would receive HTTP requests from specific IFTTT applets I made to control the master power of my LED strip. This way, if I told Google Assistant to turn off my light strip, it would send a request to my Flask server to keep my light strip turned off even if I was in the room.