Studying CS @ University of Maryland

Evh prototyping Evh buoys Evh internals Evh sensors Evh deployment Evh deployment2 Evh map Evh chart

Setting up the waterproof box during the prototyping stage.

Attaching the buoys to the waterproof box.

A close up view of the inside of the box just before deployment.

A close up view of the sensors on the underside of the box.

Deployment of the device. We deployed just downstream of a USGS water site to verify the accuracy of our device.

Close up of the device after deployment.

Map of locations with public water data (third party data integration).

Chart visualizing data recording from the device after deployment. The device lasted for 47 hours before running out of battery.


EnviroHub is an IoT platform for environmental data (water quality, air quality, etc). Users can register an environmental logging device, and start collecting, storing and analyzing data using the service.


I led the development of the server on a team of 4 and co-led the development of the hardware device. There were two other teams of 4, responsible for visualization and 3rd-party data integration. Read more about the project on the about page.

Storyboard 1 9 nodesc Storyboard 2 9 nodesc Storyboard 3 9 nodesc Storyboard 4 9 nodesc Storyboard 5 9 nodesc Storyboard 6 9 nodesc Storyboard 7 9 nodesc Storyboard 8 9 nodesc Storyboard 9 9 nodesc

Rain falls on the roof of a home.

Rain flows down the side of the roof, and into the gutters. The rain-flow gate forces water into the barrel.

The rain barrel measures the volume of water collected (via the load sensor) and its quality and logs the data to the micro-controller.

The micro-controller and network module send data to cloud servers.

A user navigates to the service using the internet, loading statistics and data collected from sensors on the rain barrel.

Landing Page. Visual of barrel with current water level, as well as current % of barrel capacity in use and water quality.

Interaction #1. User mouses over water in barrel. A tooltip appears with further details on water quality and volume.

Interaction #2. Person mouses over barrel filter. Tooltip appears telling how many gallons have passed through filter, and how long until it should be replaced.

Interaction #3. App alerts person of important and relevant information, such as to replace filter or the state of water quality, when the information is relevant.


RainSense is a web platform for collecting data about rainbarrels (water quality, water level, etc), allowing rainbarrel owners to install wifi-capable sensors to collect and send rainbarrel data to the platform and visualized in real-time. The service also allows you to analyze water usage, water quality, amount of rainfall, and other metrics


I developed the visual design, the database relations, the API endpoints and the application logic. My teammates developed the hardware (wifi-capable Arduino micro with pH, temperature and electrical conductivity sensors) as well as the rainbarrel. This was a project that came out of CMSC434 (an HCI class), so the design and usability of the website was the primary focus.


Login with:
password: cmsc434

It is not getting real-time data anymore, but if you wanted to run a few simulations to see the scenarios, you can request the following URLs:

  • (go to water quality page to see this better)

Feature analyze 2 Feature build workout

An interactive graph depicts load volume over the past few weeks. You can hover over each of the graph bars to view further workout details.

Dynamic forms let you customize workout and exercise data, including the number of exercises, sets, weights and reps, rest periods and time.

Build workouts from over 74 exercises, search specific exercises or filter by skill level, category and other metrics, and then save them as planned workouts.

DESCRIPTION is the best way to achieve your strength training goals. Set custom challenges, then "workout" your way to completing them. We make that simple: plan workouts by choosing from over 74 exercises, then view it as a reference on your mobile phone during workouts. Once saved, let strengthify analyze your progress and share your hard work with fellow strengthifyers.


My primary role has been as a generalist developer. This includes front- end design (layout, themes, graphs, icons, logos and interactivity) and back-end engineering (object associations, SQL queries, dynamic forms and data extraction, input and optimal storage).

Technologies: Postgres 9.2.4, SQL, RoR4, HTML, CSS3, SASS, SVG, JQuery UI/Ajax, Javascript, D3.js, Git, Heroku.
Techniques: Responsive design, OOCSS + SASS, modularity + metaprogramming
Design patterns: MVC