Hello, I'm Mike Tasota.

I am interested in discrete structures, programming, and other intangible things.


Undergraduate Degree

  • Slippery Rock University
  • GPA: 4.00/4.00

Selected Courses List

  • Graph Theory
  • Combinatorics
  • Math Fundamentals for Robotics (Graduate Course, Robotics Institute)
  • Intro to Computer and Network Security and Applied Cryptography

  • Mathematical Statistics I/II
  • Theory of Numbers
  • Abstract Algebra I/II
  • Theory of Computation
  • Compiler Design & Implementation

Academic Honors, Clubs & Recognitions

  • April 2013
  • Slippery Rock University, Math Department
  • National Mathematics Honors Society
  • Slippery Rock University Chapter
  • National Computer Science Honors Society
  • Slippery Rock University Chapter

  • President (Spring 2013)

Work Experience

Research Experience

Technical Skills

Programming/Scripting Languages

Hover over the graph

Hover over the graph to get more details about my experience in each language.


Initially, I only used Ruby for the Rails applications that I had managed and been developing for when I started working as a Systems Software Engineer at the CMU CREATE Lab. However, through this, I have gained a stronger appreciation for the language itself and the philosophy behind it: putting a strong emphasis on readability for its users.

These days, if you ask me to write a quick script for something, I will most likely prefer to use Ruby and would be most agile with Ruby.


Through my years of experience in unix-like environments, I have become fairly comfortable navigating in bash/sh as well as writing shell scripts. It can be immensely convenient in situations where a simple operation is needed on a file, such as sorting lists or extracting values from comma-separated lists.

As a sysadmin and as a desktop user, bash is my preferred system and file navigator/manager.


I used a fair amount of C as an upper-classman in undergrad. I also used C during my time as a student researcher at PSC and for the SC12 student cluster competition. Most recently, I had to use C programming concepts to reverse-engineer compiled C code and find exploits as part of my course in Computer Security at CMU.

There isn't much that I would use C for these days. Despite this, I actually enjoy using C whenever I have the need for it.


Some of my oldest forms of programming have its roots in JavaScript (primarily Flash's ActionScript). Looking back, it's hard for me to pinpoint when I started using a lot of JavaScript, which is probably indicative of my experience with it. I tend to only run into javascript when it is needed on a webpage. I also have a small amount of experience with nodeJS.


Java was the first real programming language that I had learned as an undergraduate and had used it throughout that time. I see it as a crutch for me as I learned other languages at that time; letting garbage collection handle your variables can be pretty convenient when you don't want to worry about memory management. The project I worked on as an undergraduate was also written in Java.

I recently picked Java back up when I started doing work with Android development.


I picked up Objective-C when I started working on the MessageFromMe iPad app at the CREATE Lab. At first glance, Objective-C seems pretty obfuscated with its message passing scheme. However, once one sees Objective-C as just an extension to the C programming language, things become much simpler to understand. That was the case for me, at least. Despite having an upper hand with C knowledge, there are still a lot of aspects of Objective-C that I am unfamiliar with, primarily with NSClass-specific functions. Also, I am still somewhat of a novice when it comes to the iOS SDK.

As expected, I use Objective-C strictly for iOS development. Its memory management with ARC is pretty slick as well, though.


This was the first scripting language I started experimenting with. My experience with Python has been pretty sporadic. I wrote a few scripts for the SC12 Student Cluster Competition and also implemented Convex Hull and Motion Planning algorithms in the Math Fundamentals for Robotics graduate course in Fall 2014.

I typically use python when I want to do simple calculator-type arithmetic in the terminal, as these are the Python functions I am most familiar with. However, from a personal standpoint, I prefer Ruby over Python as a scripting language for its readability.


I used Matlab in my Math Fundamentals for Robotics course at CMU. This was really the first time that I had used Matlab, though I knew about it for awhile. Although I only used it for one semester, it was used quite exhaustively.


Maple homework was assigned to me in a couple of my undergraduate math courses.


Markup Languages

Hover over the graph

Hover over the graph to get more details about my experience in each language.


I have used HTML since I was in middle school. I still have to use web references when I get stuck or forget the exact name of an HTML element, but for the most part using HTML has become second nature for me.


I have had the chance to use LaTeX in a couple of math classes that I have taken. Like most markup languages, it isn't too difficult to pick up, and anything that I don't know off the top of my head can be easily looked up.


Most of my experience with XMPP has been from setting up ejabberd servers. I also used XMPP in javascript (strophe.js library) in an interactive multi-user grid web app which sent commands between users and the server through XMPP.


Operating Systems

Debian, Windows, CentOS, Mac OSX


Below are some of my main hobbies.


I have always had an appreciation for music. My appreciation only grew after I started playing music in my latter years of high school. This opened a new world of curiosity for me, both in listening to music and playing music. I enjoy writing tracks on my computer as well. My two main instruments that I enjoy playing are the accordion and the ukulele.

Coding & Computers

Currently, I am lucky to have a job where I get to do something that I enjoy. And outside of work, I sometimes find myself playing around with configuring servers and websites. When I was young, I yearned to understand how to program so I could make my own videogames. Since then, I have managed to work on a few small videogame projects. However, most of my recent projects have been motivated by other personal needs.


Language is something that I have always had an interest in. Unfortunately, I can remember many situations in the past where my communication with another person was restricted simply because we did not share a common language. I had four years of studying Spanish in high school. After finishing undergrad, I decided to start practicing Italian and Japanese as well as brush up on my Spanish again. There are so many great sources out there to learn from, and there is much to be learned.