Matthew Short code, math, mentorship

I'm a full stack developer with a background in mathematics. I love cracking the kind of problems that take a lot of research and many nights of idea-building sleep. I'm a former math teacher with experience in curriculum design. I love sharing the things I'm excited about with others. I'm currently looking to develop, whether it be web applications, people, or your business.

Things I've Done

  • Rails
  • Angular
  • Javascript
  • Ruby
  • Educational
  • About Me

Choose Thy Own Adventure (GitHub)

Most of us have read Choose Your Own Adventure books. If you haven't each page has a few choices at the end which allows you to determine which section to read next. Good choices lead to good endings, and bad choices lead to disaster.

Choose Thy Own Adventure brings the thrill of playing an adventure together with the fun of creating one for your friends. After signing up you can create a maze, populate it with twists and turns, and then publish it for all the world to play.

Chess (with curses)

This is a pretty standard command-line interpretation of Chess. I implemented the Curses library to allow the users to traverse the board with arrow keys, and allows highlighting of valid moves once a piece is selected, as pictured.


Video Poker

Writing a poker program is a terrific chance to stretch your skills - representing cards efficiently, determining winning hands, and building a decent user interface all require a bit of slick code. I implemented a video poker variant, which allows you to play against yourself, winning more on better hands.


Active Record Lite

This is one of two projects which implements some of the main features of Rails, in Ruby. Here is an implementation of Active Record in Ruby with mysql. It's test driven, and implements Active Record's has_many, belongs_to and has_one :through.


thompson's Group F

Thompson's Group F is a infinite group of functions on the unit interval satisfying some interesting condtions with many interesting properties. This project was part of pre-dissertation work allowing for exploration of properties via Ruby.

Asteroids (GitHub)

This is a version of the classic asteroids game implemented using HTML5 Canvas and featuring modular design, event delegation, and objected oriented code. The underscore library was leveraged to allow classes to inherit behavior, making it easy to extend the game with additional features.


Snake (GitHub)

This is your usual implementation of the classic game of Snake, with a few twists. The board has no borders, rather the snake speeds up as it consumes birds making the game harder as you get further. Additionaly, there are two orange portals that allow the snake to hop around the board quickly. The portals change position after each use.


LightsOut (Github)

LightsOut was written in collaboration with Candace Schenk.

LightsOut is about turing the lights out. Primarly an exercise in jQuery, this game features board creation which means that every game is solvable. When you click a square, it and the four cardinal adjacent squares all swap lighting. See if you can turn them all off.


Todo UI (Github Tutorial & Code)

Written as a tutorial for people learning jQuery. The point is to write a fluid and intuitive interface for a standard Todo Application. Features jQuery and jQueryUI to increase usability.

Zombies Ate My Class (formerly Zombie Attack)

Zombies Ate My Class was a very successful attempt at gamifying the classroom experience for my Calc and Precalc students. It took three sections of students who were nearly failing to having an overall class average of over 80% thanks to an emphasis on group work, daily incremental learning, and interesting gameplay.


How to Train Your Robot

How to Train Your Robot was created to introduce programming concepts to grade school children in Houston. It featured simple commands that students would string together to achieve incrementally harder goals, introducing the concepts of looping, conditionals, and general program flow.

Sketchpad (GitHub)

I taught myself a combination of SVG and Angular to make an interactive sketching tool, dedicated to exploring geometry.

Create points, lines and circles, divide segments into multiple equal parts, and drag points around to see how the figure changes!