- 1 PDF download and contact
- 2 Summary
- 3 Other Accomplishments
- 4 History
- 5 More detail on accomplishments
PDF download and contact
Like what you see? Interested in employment opportunities?
Two years in software engineering at a startup company gives experience in various programming environments, interface design and quality control while developing products for the health care industry. Seeking an opportunity to develop small video games and tools that entertain.
- Modelled and programmed Sword Draw, an arcade dungeon crawler.
- Programmed a pedometer to count steps taken and transmit totals to the company server.
- Designed and implemented features to the display to make the pedometer less obtrusive to users.
A flexible engineer who works best in teams with loosely defined roles, with opportunities to learn new disciplines. Enjoys working on direct applications to users.
- Experience programming with: C++, C, AVR Assembly, Ruby, Python, Linux, Simple Directmedia Layer, git
- Specified process to reduce in-house pedometer preparation time by one-third and greatly reduce identification errors to a single point of failure.
- Created a framework for the administrator website to add users to the Pedometer system without directly manipulating the database.
- Built prototype testing program for MIT's 2004 Robocraft Artificial Intelligence contest with a group of three.
- Implemented video filter to place emphasis on a given section in a picture using C++ as part of a final class project.
- Cambridge, MA (2007-2009)
- Software Engineer
Startup company developed wellness and fitness applications for corporations. Developed a pedometer called StepTracker and the corresponding website FitAware to reduce health care costs and keep people healthy. Worked with a group of 3 in engineering.
- Cambridge, MA (2001-2007)
Worked the front desk for self-support while programming hobby games at MIT's head library.
- Cambridge, MA
- Bachelor's Degree in Computer Science 2005
Relevant Courses include:
- User Interface Design and Implementation
- Software Engineering
- Computer Graphics
- Computer System Engineering
More detail on accomplishments
This project has been on and off for the last seven years. It has taught Chad several lessons in organizing objects, creating the least amount of complexity while maximizing flexibility, and helped generate design ideas. Currently working on in Python for easier access to debugging tools and memory cleanup.
Working with AWare Technologies, programmed the state machine for a device. The senior engineer had hooks to read and analyze the accelerometer into the number of steps taken. Also had hooks to use the built in radio to contact a receiver and listen for a reply. Chad Serrant programmed a state machine to count the steps taken, store into a journal entry, and send the entry to the receiver every few hours. The device was a ATMega-132 processor with a Nordic radio attached and optimized for low power consumption. The model is not rechargeable and sealed so the pedometer had to last for about 4-6 months.
There is a single LED used for user feedback. It can blink red or green for any period of time. The default behavior was to blink green once every ten seconds unless the battery is low, in which case it blinks red. Some users complained they were unable to sleep unless they covered the LED. Some complained their animals were upset by the light. Those with Red-green color blindness didn't notice the low battery warning. Chad Serrant changed the behavior so it would stop blinking after 15 minutes of inactivity. If the battery is low, it will blink red twice every ten seconds, ignoring the 15 minute shut off. It also blinked both lights if the device did not upload a journal within the last 24 hours. Users complained less after the change, and users found it easier to notice the low battery warning.
When selling devices, we must record the correct serial number and assign it to the correct person. We must also add the correct serial number-person pairing to the website database. This method was slow and error-prone, due to manually copying device numbers. A simple misprint or mixup ruins two people's startup process and takes a day to fix. Chad Serrant created an information flow to quickly share information between the 3 people involved in matching devices and people. Directly copy the serial number from the computer terminal and print the barcode onto an envelope. Put the device into the envelope and write the owner's name on top. This way the people can easily scan the barcode and read the envelope to assign accounts. The process greatly reduced preparation time and reduced errors to a single possible point.
Administrator account for FitAware
To add or edit users and devices, the senior engineer had to directly interact with the database. He was the only person with permissions and thus the amount we could edit was limited. Chad Serrant began planning on an administrator website, using Ruby on Rails and MySql. The framework was written out, but there was not enough time to implement it before financial difficulties forced Chad Serrant away from this project.
Beginning with Quick Basic on his first computer in 1996, Chad Serrant learned how to program as a way to develop computer games. C++ soon became his language of choice thanks to its ubiquity in game programs and its basic concepts like memory management and object oriented programming. C comes with C++, although memory management is often a larger issue. Linux offered a cheaper and more flexible programming environment, so he learned gcc and emacs as well as bash. Simple Directmedia Layer, or SDL, offers a multi-platform game engine, offering many layers of abstraction and an ideal library to use.
Version control became important while trying new ideas or needing to backpedal to previous versions. Chad Serrant started learning cvs but eventually switched to git, thanks to its safer commit/push system that doesn't ruin other coders' branches.
At AWare Technologies, we used C and AVR Assembly to program for the processors in the ActionTracker. We also used git for version control. For the FitAware website, we programmed in Ruby on Rails. This reinforced Chad Serrant's C programming, and it taught him some AVR Assembly as well as Ruby. He learned a little bit of Ruby on Rails but not enough to feel truly confident in it.
At MIT, he learned enough of Java to pass the various classes but not enough to feel truly confident in it.
Robocraft, now called Battlecode, is an artificial programming contest where contestants program intelligence for an automated computer team. Any errors that are not caught will cause the team to be removed from play, so contestants needed a better testing interface to check for errors, to read unit traces and state.
The contest organizers asked Chad Serrant and two others to program a testing interface. Chad Serrant worked on the timer to allow users to pause, step and rewind progress. This was programmed in Java.
MIT requires all Bachelor of Computer Science candidates to produce a final project. Chad Serrant researched a filter that blurs itself based on nearby colors and distance. Colors that are similar but close blur it out, but colors that are far off give little influence. The weight of the influence is based on a given greyscale focus picture. You can create a focus effect by giving heavy influence to all pixels except whatever the focus should be on. This was programmed in C++.