Work&Education

This is a summary of all my work and education. Checkout my projects page for more fleshed out descriptions and examples from my projects of the last few years.


Work



Research & Development Intern at Stuller

Stuller, Inc. is the #1 supplier of fine jewelry, findings, mountings, tools, packaging, diamonds & gemstones for today’s retail jeweler.


Summer 2019


Skills: Python, Inventor, Electronics, Research, Technical Writing, Repair, Design, and 3D Printing


Summary

  • AMR research and white paper
  • $7000 cost saving repair
  • Camera head counting project (Link to project)
  • 3D printing fixtures


Description

Stuller is one of the largest suppliers of jewelry and jewelry related products in the US. I interned in their R&D group researching Autonomous Mobile Robots (AMRs) and doing a few other side jobs. Stuller is looking to AMRs to assist in moving their product around their manufacturing lines. I researched more than 20 companies and then down selected to 5. My team and I reached out to those 5 vendors and set up meetings to learn about their AMRs. I compiled notes, brochures, and created a decision matrix from all the information. This allowed us to identify 4 companies having products we would like to see. Towards the end of the semester, I started arraigning company demos, presented my findings to management, and wrote an executive summary. To collect data for the project, I coded a hallway head counter using a Raspberry Pi 3 B+, a webcam, and the openCV library for $100. This gave us a rough estimate of the hallway traffic throughout the day. Additionally, I coded a $15 door open/close sensor and logger to calculate how many times doors were being opened in the hallways. Besides my main task, I designed and 3D printed two laser engraver fixtures and repaired a $7000 engraver fixture. The biggest thing I learned at Stuller was the importance of foundation for understand and proceeding with a project.


Advanced Exercise Intern at NASA Johnson Space Center (Spring 2019)

The Physiology-Sensing, Intelligent Optimization Nucleus (PSION) lab lead by ARED manager, Cody Burkhart, at NASA JSC develops innovative solutions for human counter measure systems in long duration space flight missions.


Spring 2019


Skills: C#, Unity Game Engine, ZMQ, Protobuf, Game Design, Linux, Human Factors, Bluetooth Low Energy, Hardware Test Plan


Summary

  • Game development in Unity with C# (Link to project)
  • Integrated with Minature Exercise Device 2 (MED-2) and Modular Bluetooth Integrator (MoBI)
  • Test plan for Hopper 3 hardware from IHMC
  • NASA Extreme Environment Mission Operations (NEEMO) 23 preperation


Description

This semester I focused on two projects: a test plan for new exercise hardware and primarily developing games to be tested on the NASA Extreme Environment Mission Operations (NEEMO). NEEMO serves an analogue for the International Space Station as well as future exploration missions. NEEMO is in a small underwater habitat that mimics the confined vehicles in space. So as part of a project to improve human fitness in long duration missions, I developed games to test if the interactive portion of the game will increase the user’s performance. These games involved integration with the in-house exercise hardware, Miniature Exercise Device 2 (MED-2), and the in-house software package, Modular Bluetooth Integrator (MoBI), which provided the interactive element, biometrics, and telemetry for our game.

The other project that I worked on was a test plan for Hopper 3. ER3 is trying to create a database of exercise devices that can be used to keep records/compare & contrast different devices and their applications. The test plan that I developed can be done by a layman and was used to profile the device and its exercise envelope. I also worked to execute the first application of this test plan on the Hopper 3.

I developed the game from scratch. I created all the backend in C# to communicate via ZMQ with the MED-2 and MoBI. This particular application had never been used up to this point. I generated protobuf files for C# for the first time and learned how to make the ZMQ reply/subscriber sockets. Having established the backend, I started working on game states and conditions. Every state in the game has a corresponding state of MED-2 and MoBI data. Having established where and when data was needed, I proceeded to create the actual game dynamics, visuals, and play. One key outcome of integrating with the data collection scripts is that we can now post-process the raw data from the game/user.

Having established the architecture for the software in Unity, I generated two different game variations. The first game matches user position to their location on the screen based on telemetry from the MED-2. The second game uses heart rate to position the player on the screen. While these games will not be the final versions delivered as an on-orbit asset, they will provide lessons learned for future VR gamification in the Physiology-Sensing, Intelligent Optimization Nucleus (PSION) Lab. Therefore, the most important part of my work was the backend development that provides the foundation for more complex future games. Particularly, the expansion of our communications between MoBI and MED-2 beyond python to a protocol streamline using C#, directly integrated with Unity, is a massive upgrade to our system foundations.

Although not a main focus of my field of study, I learned a lot of programming workflows and techniques this semester. As a result, I understand, better, how software fits into larger systems and have increased interest in collaborative projects between computer science and mechanical engineering. This internship has shown how good hardware enables interesting and powerful software applications to maximize their impact.


Code Sample

//This requester is working in its own thread to communicate with the MED-2
private void RequesterWork()
    {
        AsyncIO.ForceDotNet.Force();
        //This is using the lazy pirate method of sending requests
        using (var requester = new RequestSocket())
        {
            NetMQTimer pollTime = new NetMQTimer(TimeSpan.FromMilliseconds(100));

            requester.Connect("tcp://" + hostC + ":" + portC);
            using (var poller = new NetMQPoller { requester, pollTime })
            {
                requester.SendReady += (s, a) =>
                {
                    if (_messageQueue.TryDequeue(out req))
                    {
                        message = req.ToByteArray();
                        a.Socket.SendFrame(message);
                    }
                    if (_requesterCancelled)
                    {
                        poller.Stop();
                    }
                };
                requester.ReceiveReady += (s, a) =>
                {
                    reply = requester.ReceiveFrameString();
                    if (_requesterCancelled)
                    {
                        poller.Stop();
                    }
                };
                poller.Run();
            }
            requester.Close();
        }
    }



Advanced Exercise Intern at NASA Johnson Space Center (Spring 2018)


Spring 2018


Skills: Structures Design, Linux, Bluetooth Low Energy, Team Leading, Documentation, Mission Preperation, Python, ZMQ, Protobuf


Summary

  • Project managing and team leading for a group of 5 interns
  • Developed and demonstrated flight exercise software in LabView to test exercise equipment and sensors
  • Designed test rig to convert Miniature Exercise Device 2 (MED-2) into a rowing machine
  • Coded software in python for getting data from biosensors and displaying the raw data in a GUI
  • Received award for best team of interns at NASA


Description

At NASA JSC in the Spring of 2018, I had the opportunity to work with a team of 5 interns as an Advanced Exercise Development Intern. ER3, the robotics and simulation branch I worked under, is tasked with maintaining and developing current and future exercise solutions for The International Space Station and long duration space flight missions. The intern team I worked with was charged with preparing software and an experiment for the NASA Extreme Environment Mission Operations (NEEMO). NEEMO is an underwater ground analog for space flight missions, and we created a test to validate new technologies being developed for long duration missions. Details of our project are as follows: develop a software application that can display data in an interactive and visual way, create procedures for an experiment on NEEMO to test our application as well as the MED-2 (Miniature Exercise Device 2) with its rowing functionality, and test sensors with a Modular Bluetooth Integrator (MoBI) which will be integrated into the application.

I functioned as a Team lead and software engineer. I worked on backend software that helped tunnel the data from MoBI to our application. Additionally, I supported the design, prototyping, and testing of our GUI. I designed a tower for testing rowing on the MED. I ran compatibility and functionality tests for sensors with MoBI. As a Team lead I arraigned meetings, brought food, and helped set goals for our work. I also acted as a point of contact for external groups such as our mentors and any other external help we needed. I also made, managed, and ran the demonstrations and presentations for our branch chiefs. Towards the end of the semester, I designed a rowing rig in Creo Parametric that allows the MED-2 to be used as a seated rowing device. We successfully setup and tested MoBI on a Raspberry Pi 3 platform for the first time. Furthermore, we demonstrated real time data flow with Polar H7 and the Empatica E4 such that those devices could be used on NEEMO or Space Station. We developed from concept to product for our application. We also developed the entire experiment to be used on NEEMO. This rowing rig was later built by interns after me and tested by the lab. I’ve learned a lot more python. I learned a lot about Bluetooth, sensors, and Linux. From a business engineering side of things, I was able to have a lot of conversations about the structure of NASA and why it works and how it needs to improve. Leading taught me a lot about scheduling time and breaking down the task of developing a project. Together, our team pioneered new ways to collect human data in real time for spaceflights.


Code Sample

# This class is used to subscribe to the heart rate data published by MoBI
class HeartRateMeasurement(object):
    host = "192.168.0.101"
    context = zmq.Context()
    subSocket = context.socket(zmq.SUB)
    subSocket.connect("tcp://%s:5556" % host)
    subSocket.setsockopt_string(zmq.SUBSCRIBE, "")
    topicName = "Polar H7 AEA87610/Heart Rate/Heart Rate Measurement"

    # call this method to get the heart rate as passed from MoBI
    @classmethod
    def getHR(cls):
        rate = 0
        try:
            while True:
                try:
                    packetString = cls.subSocket.recv(zmq.NOBLOCK)
                except zmq.ZMQError:
                    return rate
                btPacket = BtPacket_pb2.BtPacket()
                btPacket.ParseFromString(packetString)
                if btPacket.topicName == cls.topicName:
                    print(btPacket.topicName)
                    data = btPacket.data
                    rate = int(data[2:4], 16)
                    print(" heart rate: %d" % rate)

        except KeyboardInterrupt:
            exit(0)
        return rate



Mechanical Intern at Landis+Gyr

From advanced smart metering technology to renewables, Landis+Gyr has the solutions, services and technology to bring the grid into the modern digital age.


Spring 2017


Skills: Creo Parametric, 3D Printing, IP-67 Testing, CAD Drawings for Manufacturing, Tolerances, Prodct Life Cycle Management


Summary

  • Designed and tested utility meters for IP 67 rating with 3D printed parts
  • Modeled testing components and parts with Creo Parametric and learned how to use Arena software
  • Learned how to use the Python Selenium library to automate repetitive tasks on my computer


Description

The mechanical team at Landis+Gyr develops water proof enclosures for electrical meters. Currently, all the utility meters are becoming radio controlled, so that they can wirelessly send data without having anyone go read the actual meter. The point of enclosure design is to make sure the meters can withstand wet and dirty conditions while having their antennas, power cables, and internet cables be external. With Landis+Gyr I've learned how to use Creo Parametric to create and edit parts and drawings. I came in with no Creo experience. I had cadding experience, but I still had to learn the new program. I also learned how to do cabling, the process of routing cables in the enclosures to see how long they need to be and where they will fit in the assembly instructions.

One of my tasks was to edit and make professional engineering drawings for manufacturers and assembly plants based on decisions of the main engineers. I also conducted IP67 testing. IP67 is a standard for how waterproof an design is. Specifically, something has to stay under a meter of water for 30 minutes without leaking. In order to test this, I had to make test rigs that either submerged the testing part or 3D printed adapters for pipes so that I could fill them with water. I worked on contacting suppliers to test and get materials for test rigs. Additionally, I tested different gasket cut outs and materials for enclosures. When waiting for assignments, I started learning how to automate my browser using python with the selenium library. It was really engaging and fun to watch my computer start to take over my menial tasks and do them with 100 percent precision and at a much faster rate. The main task I automated was updating part revision numbers in the software that managed revision histories.



Education



Current: Bachelors in Mechanical Engineering at Georgia Tech

The Georgia Institute of Technology, also known as Georgia Tech, is a top-ranked public college and one of the leading research universities in the USA.


Fall 2015 - Fall 2019


  • GPA: 3.90
  • Credit hours: 121/129
  • Clubs:
    • Reformed University Fellowship (RUF) Fall 2015 - Now
      • Small Group Leader, Worship Team
    • Theta Xi Fraternity Fall 2016 - Fall 2018
      • T-shirt Chairman, Member Education Meetings Coordinator
    • Invention Studio Fall 2017 - Now
      • Prototyping Instructor
    • Georgia Tech Off Road (GTOR) Fall 2019 - Now
      • Data Aquisition Engineer
    • GT Chamber Choir Fall 2015 - Now
      • Bassist


Description


At Georgia Tech, I have taken up to senior level classes in Mechanical Engineering which includes the following classes: Circuits and Electronics, Statics, Dynamics, Fluid Dynamics, Thermodynamics, Numerical Methods with Matlab, Heat Transfer, Deformable Bodies, System Dynamics, and a design and build class. In the design and build class, I worked with a team of 3 other students to create a mechatronics robot to compete with other team's robots. I learned to use and program a myRIO with LabView and work with various sensors to collect data. Outside of my major, I have taken a couple of classes in the computer science major. The classes are Introduction to Java and course that covered computers from transistors to programming in C including programming in Assembly and the circuitry of computers. In addition to analytical skills, I have learned and used a lot of design and prototyping skills both in and out of the classroom. My work with the Invention Studio Maker Space and Georgia Tech Off Road develops and hones my engineering acuity.