Hi, I'm Michael!

I’m an Information Technology professional and masters student at Boston University who is focused on delivering solutions to users, as well as constantly learning/implementing new technologies. I have strong understanding of networking, security, and database design principles via my educational background and self-study for several IT certification tracks. My prior work in web development also helps me appreciate the more technical side of interpreting application design and troubleshooting. In my free time, I love rock climbing, traveling, and taking on new woodworking furniture projects! If you’d like to chat about any of the above, or just say hi, please email me at michael.m.bates@gmail.com.

A Few of my Skills


Windows 10











The Projects I'm most proud of



A full-stack gardening and harvesting app

I've always been interested in the idea of self-sustainability to reduce our collective ecological footprint. To that point I decided to make a gardening web-app so users (including myself) can easily track/care for plants in their garden, harvest plants when they are ready to eat, and eventually find recipes using those plants.

Upon signing up, users are automatically signed in and directed to a landing page. Either by using the navbar or clicking through the index doorway, they can add plants with category, name, quantity and care note attributes. They can also specify the date they were planted to get the number of days since planting, the date they can be potentially harvested to get the number of days until then, and their zip code if they want a brief weather forecast to know whether or not they need to water in the next few days.

After adding a plant, users can add more or view their plants by category along with the above mentioned attributes. If they need to update information for any of the attributes they can do so, or delete the plant if it dies or they mistakenly entered it. Once it is ready to harvest, they can click harvest to send it to their harvested plants page. Later in development users will be able to search for recipes based on the plants they've harvested recently, but that feature isn't fully renderable in the browser yet.

The front-end of this app uses Ember.js, HTMLbars, CSS/SASS, and Bootstrap

The back-end was built on Ruby on Rails



A full-stack web app for indoor climbing training

There are countless awesome apps out there for tracking the results of more generalized workouts and some good ones for specific activies, but as far as I've found, very few to none for rock climbing. So, I decided to make one.

The app is an indoor climbing training resource for identifying difficult movements and improving at executing them. Users can input the results of their climbing sessions by adding the gym they climbed in and traits of climbs they fell on. They can then see a list of these climbs to pick out trends that they can work on improving. If they want personalized training suggestions, they can request to see the holds that they fall on most frequently along with advice on how to target muscle groups that are required for more efficient use of those holds.

This app was created using the following:

Front End: Javascript, HTML/CSS/SASS, Bootstrap, Handlebars.js

Back End: Ruby on Rails



A full-stack e-commerce web app

Nozama is a secure e-commerce web app that offers users an assortment of videogame inspired wares. It was coded in a group setting with two other developers using optimal git workflow techniques to foster a productive work enivronment and minimize conflicting code.

Upon creating an account and signing in, users can view the range of products available. From these, they can add the products they want to their cart. If they change their mind prior to checkout, they can update item quantities in their cart or delete items entirely. To check out, users must provide credit card information via stripe which is processed in a secure environment. Upon verification of their payment, the user's cart is reset and the items they have purchased are displayed in their previous orders.

To prevent merge conflicts, we communicated frequently about which task we were currently working on so as to avoid overlapping on each others' code. We also took advantage of each others' expertise and insights via pair-programming as much as possible.

The front-end of this app uses JavaScript, HTML, CSS/SASS, Bootstrap, jQuery, AJAX, and Handlebars.

The back-end is built on Mongo and Express

BTC Mining Applications

Bitcoin Mining Applications

Talk given for WDI conference 2016

I was invited to participate in General Assembly's WDI software engineering conference. I decided to give a talk on Bitcoin and more specifically Bitcoin mining to help other developers see some parallels between bitcoin mining networks and cs data structures, know where to find starter code for integrating bitcoin payments into projects, and mine sample bitcoins via the command line in a sandbox p2p environment.

The lab function of this talk used the CLI interface of Bitcoind and Bitcoin Core's regression test mode

Tic Tac Toe

Tic Tac Toe

A simple front-end browser game

For my first app as a web developer, I created the front end for a Tic Tac Toe browser game that consumes a provided API. The game logic engine is build on an 8 index array to represent a tic tac toe board. Win conditions exist for each orientation of player moves(horizontal, diagonal, vertical), and each player's win total is updated on the provided server when a win condition is met.

This app uses Javascript, jQuery, Ajax, HTML, CSS/SASS, and Bootstrap

The Tools at my Disposal


I've developed projects using several RESTful API frameworks and databases. I'm perhaps most well versed in Ruby on Rails and Express but am always learning others.


Comfort with contemporary languages and frameworks such as Bootstrap and SASS allows me to express my creative visions as I see fit and generate visually rich/interactive products.


I always write code using industry-standard practices:
DRY, frequent commits, and consistently refactoring/commenting.


Ensuring the protection of user data is of paramount importance to me, which is why I employ strict authentication parameters for all CRUD actions.

Keep in Touch with me

Michael Bates
(617) 407 - 0588