About


Passionate and results-driven mechanical engineer with 4 years of experience in consumer electronics, specializing in product design and manufacturing. I thrive at the intersection of innovation and practicality, turning ideas into high-quality, manufacturable products that make a real impact.

Outside of engineering, I love lifting weights, playing volleyball, and eating good food.

Contact info:

Phone: 562-395-8689
Email: makdderrick@gmail.com

Projects

simplehuman Shredder

Compact, silent shredder designed for use on a desktop or hanging on a simplehuman trash can

simplehuman Sensor Can

Voice and motion activated sensor trash can with built-in liner compartment

Robotics Outreach Project: Mechanical Arm

A undergraduate senior design project aiming to develop a robotics kit for underrepresented middle and high school students in STEM.

Donkeycar: Open Source DIY Self-Driving Platform

An open source project that incorporates a 1/16th scale RC car, raspberry pi 3b+, and python in order to create a self-driving car that can be trained on different tracks.

Robot Simulation and Controller Competition

This project was a part of the MAE 106 coursework at UCI where students built controllers and competed against each other in an online game called Agar.io.

Self-balancing Robot

A personal project using an arduino nano, IMU, H-Bridge motor driver, and two dc motors.

Workout Data Analysis

A personal project which I undertook in order to get a better look at my weightlifting progress as well as to better understand how to work with data.

Agario Controller

This project was an accumulation of the variety of topics learned in UCI's MAE 106
Mechanical Systems Lab course and had two main parts: designing/modeling a hopper car and creating a controller which would control a simulation of the car. In groups of three, we designed a car based off of three major sections: chassis, propulsion, and steering. I aided with chassis and propulsion, but I was primarily responsible for developing the steering system in which I chose a rack and piston steering system which utilized Ackermann steering geometry. I chose this steering system for its ease of implementation in relation to its effectiveness based off of the parts we had.

The controller was the second part of the project in which students were told to create a controller to control a computer mouse and steer a blob resembling the car in a game called agar.io.

I personally chose to use a proportional controller with a high gain rate to allow for simple yet responsive steering based off of the value of the left potentiometer shown above. The right potentiometer above served to control the speed of the car which varied the distance the mouse traveled in front of the blob in the game. I created a three speed system which would allow me to carefully control the amount of air expended so that I could outlast the other students in our competitions held at the end of the course. Due my design choices and a bit of luck, I managed to place 6th out of over 200 students.

Using MATLAB, I plotted the simulation steering torque with different gain rates and ended up using a gain of 100. This was due to the fact that when actually using the controller to play agar.io, the overcompensations from the large gain allowed me to reach my desired angle much quicker without too much oscillation.


The code can be found here: https://github.com/makdderrick/MAE-106-Final-Project

Workout Data

This is a personal project of mine which I undertook in order to better understand my progress in my hobby of weightlifting. I imported the data from a workout tracker app in the form of a CSV file and manipulated the data such that I could visualize and organize certain aspects of particular exercises. I came up with several functions that displayed important information relevant to lifting weights such as one rep maxes and volume.


The chart above displays the estimated one rep maxes for a given lift based on the Epley formula. This chart was made through three different functions: one to create a data frame of the exercise name, weight, and rep count, another to estimate the rep max, and a third to plot the data. In the data frame function, I calculate the rep max for each set in a day's workout and take the highest per day which gets appended to a list and returned.


The chart above displays the percentage increase of my one rep maxes from the first rep max estimate. It was done in a similar fashion to the chart prior but with the addition of the minor calculation of dividing the rep maxes by the first given max.


This chart above displays the daily volume for a certain exercise where volume is equal to the reps x sets x weight. This is a measure used in weightlifting to see how much work is being done within a training cycle. This was accomplished through creating a data frame of weight and reps and the summing the total per day which is then added to a list.


Lastly, the graph shows the total number of sets for the most popular exercises above a certain set count which in this case was 150 sets.


The code can be found here: https://github.com/makdderrick/Workout_Analysis

Donkeycar


This is my donkeycar which was built using a standard 1/16th RC car (Exceed RC Blaze), a raspberry pi 3b+, and a donkeycar kit which contained the servo driver, camera, and 3D printed parts. After collecting data from the camera, Keras was utilized to create a self-driving model and traffic sign classification.


Above are videos of the car in autopilot mode (left) and what the car saw through the RPI camera (right).

The two charts above are of two different sets of data from the same track. I collected data by driving the donkeycar around the track about 15 times for each dataset using a playstation 3 controller. The chart on the left shows my first attempt at collecting data which was admittedly poor and caused the autopilot to crash frequently. However, on the second try I collected much better data which resulted in the car driving smoothly within the bounds of the track. Using the data from the second attempt, I trained different models including linear, 3D, RNN, categorical, and latent in which the latent model performed the best.

The video above shows a side project using the donkeycar's camera, ROS, yolov3, and Keras. The traffic sign detection and classification models were created by modifying and merging code from two different people, Murtaza Hassan and Sergio from Pysource (links at bottom). Then I implemented ROS to relay information from the camera by subscribing to the raspicam_node topic. I intended to then use ROS to implement low level control for the car based off the specific traffic signs being seen, however, the framerate from the camera was far too low for it to be us

Sources

Balance Bot

This is a small robot that can balance on two wheels using an arduino nano and an MPU6050 IMU. I built this robot by following a guide and using spare parts I had from past projects which included everything except the chassis and the IMU. I designed the chassis in Solidworks and then 3D printed it. After soldering all the necessary pieces and assembling the electronics onto the chassis, I calibrated the IMU and uploaded the sketch given by the guide. From there, I manually tuned the PID values using a systematic and straightforward approach which involved: setting all the gains to zero, increasing P until oscillations were occurring, increasing D to minimize those oscillations, and increasing I to reduce the time to reach stabilization.

Overall, this was a fun and simple project that helped me to learn more about designing 3D printed parts and physically seeing the effects changing PID values.

Source: https://github.com/kurimawxx00/arduino-self-balancing-robot

Robotics Outreach Project

This is a 4 DOF arm with a gripper end effector designed to be placed on top of an RC car to pick up tennis balls. I was responsible for designing the arm structure including the base, the first linkage, and the second linkage. I designed this structure in SolidWorks with my main design considerations being safety, due to the future users being middle and high school students, and simplicity for the same reason.

The main challenge I faced with this project was maintaining the simplicity of the structure while being able to properly manage cables that came from the gripper, camera, and servos. These factors heavily shaped the design, and it taught me a lot about how certain requirements can control a large portion of the design work.

While in this project, I also played a part in developing a MATLAB simulation that would represent the team's control strategy for moving the end effector. This control strategy involved having a user input certain keys to move or rotate the end effector a set distance in a certain direction. Then using that desired end effector position, inverse kinematics would be used to relay information on how to rotate each of the linkage joints.

Shredder

During my role as lead mechanical engineer at simplehuman, I led the mechanical design of the simplehuman shredder, guiding the product from early concept through to full-scale production. Throughout development, I drove iterative design efforts, sourcing prototype components from local and overseas vendors, assembling and testing prototypes, and collaborating closely with hardware engineers, software engineers, quality engineers, industrial designers, and product leads to refine the design and user experience.

As the design neared finalization, I focused on Design for Manufacturing (DFM) and Design for Assembly (DFA), working directly with overseas manufacturers to ensure a seamless transition to production. I traveled internationally for pre-production and production trials to verify product functionality, optimize assembly efficiency, and resolve any last-minute manufacturing challenges.

This experience enhanced my capabilities as both a mechanical engineer and project leader, particularly in:

1. Hands-on prototyping
2. Mechanical design
3. Cross-functional team communication
4. DFM/DFA for plastic injection molding and sheet metal
5. UL regulation compliance

I took a hands-on approach to prototyping, utilizing in-house SLA/FDM 3D printers, laser cutters, and general shop tools for rapid iteration while sourcing CNC and sheet metal parts externally. By meticulously documenting and analyzing prototype issues, I distinguished between design-related and prototype-related flaws, allowing for targeted refinements. Through functional testing, I ensured the product met all performance requirements before advancing to the next stage.

By combining hands-on prototyping with iterative design improvements, I developed an intuitive understanding of how mechanical components interact in real-world conditions. This allowed me to identify potential design flaws before they became costly manufacturing issues. I also ensured that the final design was optimized for ease of assembly, reducing complexity while maintaining functionality and aesthetics.

Working closely with firmware, electrical, industrial design, and quality teams, I ensured that mechanical design decisions aligned with broader product requirements. Given the electromechanical nature of the product, I prioritized concise and proactive communication, keeping all stakeholders aligned before implementing design changes. Regular touchpoints and structured updates helped maintain momentum and prevent misalignment between teams.

As the product neared production, I collaborated with overseas manufacturers to refine plastic injection-molded and sheet metal components for scalable production. I worked closely with vendors to improve manufacturability while preserving product aesthetics and user experience. During pre-production trials, I verified part tolerances, assembly efficiency, and production consistency, addressing any issues that arose before full-scale manufacturing.

Finally, I learned how to navigate the UL certification process by collaborating with compliance consultants to review, test, and adjust the design to meet mechanical and electrical safety standards. I ensured all regulatory requirements were met for a seamless certification process.

Sensor Can

During my role as lead mechanical engineer at simplehuman, I led the mechanical design of the next-generation simplehuman sensor can, a complete revamp of the previous model aimed at enhancing product reliability and user experience. This redesign introduced new sensor technologies that had not yet been implemented in other simplehuman products, requiring extensive iterative testing and validation. I collaborated closely with software and hardware engineers to integrate these technologies while maintaining seamless functionality. Additionally, I worked with industrial designers, quality engineers, and external vendors to ensure mechanical improvements positively impacted both reliability and user interaction.

This project strengthened my expertise as both a mechanical engineer and project leader, particularly in:

1. Mechanical validation and testing
2. Mechanical design
3. Vendor communication
4. DFM/DFA for plastic injection molding and sheet metal

A key focus of the redesign was improving drive mechanism reliability while refining the lid's user interaction. In the previous model, if the lid opened under a desk, it would slam shut abruptly due to the lower strength of the internal mechanism. In contrast, the new design introduces a controlled soft-close in most standard user scenarios, only slamming if the user applies sufficient force. Though seemingly minor, this change required modifications to nearly every mechanical component within the drive mechanism.

1. For OTS components, I conducted technical discussions with suppliers to review our application, ensuring proposed modifications were both cost-effective and time-sensitive. Solutions often required coordinated design adjustments on both sides to meet reliability and performance targets.

2. For custom-designed parts, I collaborated with contract manufacturers to determine whether failures stemmed from design limitations or manufacturing inconsistencies. I then implemented targeted design updates or adjusted manufacturing parameters accordingly.

Throughout the refinement process, I worked alongside quality engineers, electrical engineers, and product leads to source, assemble, and test updated prototypes. Each iteration was subjected to rigorous lifecycle testing to ensure the changes met our high standards for durability and long-term reliability.

Elements

Text

This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.


Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6

Blockquote

Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.

Preformatted

i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;
    deck.shuffle();
    i++;
}

print 'It took ' + i + ' iterations to sort the deck.';

Lists

Unordered

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Alternate

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Ordered

  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.

Icons

Actions

Table

Default

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Alternate

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Buttons

  • Disabled
  • Disabled

Form