Reel Matt

This blog started as my movie marathon — watching a movie a day for a whole year — and has continued as a place for me to write reviews about movies, TV, and various other items.

About

Blog

Oscar Predictions

Projects

This is still a work in progress as I migrate from my old platform at Tumblr. For now, you can still access the whole backlog of posts there at http://reelmatt.tumblr.com

Projects

I graduated from Emerson College in 2015 with a degree in video post production and have worked since then creating online video content for clinical translational scientists at Harvard Catalyst. Many of my early short films can be found on my Vimeo page and some of the educational courses I have worked on can be found through the Harvard Catalyst ‘Train’ page including a promo video for Comparative Effectiveness Research.

Along the way, I developed a passion for programming, writing small tools to help simplify repetitive tasks in my workflow. I started classes at the Harvard Extension School to further my knowledge and expertise and applied for the Masters degree program, which I completed in 2020.

Below is a brief summary of some of the courses and projects I worked on during my Masters degree. Some links are to private GitHub repositories; if you would like access to them, shoot me an email.

Capstone project—PyWorkflow

Languages used: Python, Javascript/Typescript

Frameworks used: Django, React

Packages used: pandas, NetworkX

PyWorkflow was a group capstone project I worked on to finish my Masters degree. As the project’s README mentions, the quick summary of the project is:

PyWorkflow is a visual programming application for building data science pipelines and workflows

My responsibilities included most of the backend design and implementation. Some highlights include:

Harvard Catalyst Tools (Private repo)

The goal of these tools is to help simplify common tasks for myself and colleagues at my day job. The main tools that are part of this repository are:

I started writing these tools early on in my Masters degree and have evolved them as I have learned new skills, techniques, and languages. Some started as simple shell scripts, then deployed on a Digital Ocean server, and now feature a semi-CI/CD pipeline to deploy on Heroku.

As my main job is to film, edit, and produce our online courses, some of the code and documentation has gotten a bit stale and out-of-date. My recent work towards these tools has been to shift from a performing actions through a web-app to serving a REST API that can be used with Airtable’s new Scripting and Custom Blocks. These blocks would enable myself and others to perform actions from within Airtable itself and through a few button clicks.

Class assignments

Dynamic Web Applications

This class was a great introduction to writing web applications and version control. Laravel was a great framework to introduce me to the model-view-controller pattern later seen in Flask and Django. The tip calculator project was also my first experience with a single-page application.

Languages used: HTML, CSS, PHP

Frameworks used: Laravel

Database experience: MySQL

Introduction to C/Unix/CGI Programming

Languages used: C

Perhaps the greatest skill I learned in this course was the benefit for writing small, modular code that adheres to the UNIX ethos of “do one thing well.” The assignments for this course covered a lot of ground and are not as easily grouped into bullets as other classes. A few highlights are:

Unix System Programming

Languages used: C

This class was the “sequel” to the Intro to C course and was one of my favorite classes at the Extension School. Many of the assignments were to recreate parts of existing command-line tools, and in the process of doing so, I learned a lot about the underlying UNIX system architecture. For the later assignments, culminating with the web server, I learned about internet protocols.

Web Application Development using Node.js

Languages used: HTML, CSS, Javascript (Node.js)

Frameworks used: Express, Angular

Database experience: MongoDB

This course expanded upon my web application skills from Dynamic Web Applications. Instead of PHP/Laravel, this course focused on Node.js/Express and also added Angular to create a more dynamic frontend experience.

There were seven assignments in this course that mostly built off of each other. One of the first assignments was to create a simple file-server using Node.js. Then, assignments 3-7 all focused on a film logging application that used the OMDB API. Some key milestones in the development process were:

Web Programming with Python and JavaScript

Languages used: HTML, CSS, Python, Javascript

Frameworks used: Sass, Flask, Django

Database experience: SQL, SQLite

Cloud DevOps: Basics and Modern Techniques

Services used: Amazon AWS, Google Cloud Platform

Tools used: Jenkins, Ansible, Terraform, Docker

I learned some basics about cloud devops with Amazon AWS and the Google Cloud Platform. The assignments for this class included learning the following techniques:

Software Design: Principles, Models and Patterns

Languages used: Java

This was one of my final classes before the capstone project. The focus was primarily on software design—creating UML diagrams and class dictionaries to guide the implementation. I then took these concepts and implemented the designs for the first four assignments to create a Store 24X7 service, an autonomous store design akin to Amazon Go. During design and implementation, there was a requirement to incorporate several Java design patterns like the Command, Observer, and Singleton.