james.bliss@astro73.com

James Bliss

Portfolio

I first began programming over 10 years ago. Since then, I have become fluent in a variety of languages and technologies. Here is a collection of my work.

DataThing (mixed)

Internet of Things product to collect, warehouse, and analyze data from industrial processes, made as easy as possible. Making use of Arduino, Protocol Buffers, Python, CouchDB, and other technologies.

HypChat (Python)

API for HipChat's v2 REST API.

GitHub

Minecraft server plugins (Java)

Working in a high performance environment with a relatively large amount of data, within a diverse and dynamic ecosystem.

GroupLink Watcher (JavaScript, HTML, CSS, Chrome)

A Chrome extension to help me keep an eye on the ticket pool. Connected to an undocumented JSON endpoint in the web based software.

GitHub

BoutiqueWeek (Python, Google App Engine)

Web site for a start up. Created a geo-spatial index of participating boutiques, indexable by location, within Google's non-relational database.

PyInput (Python, SWIG)

A library to allow Python to work with the Linux input subsystem. Had to encapsulate and expose low-level C structures and streams to a high-level language.

GitHub

BotSteve (Python)

An IRC bot. Wrote a file based datastore and connected the bot to Freenode's services.

GitHub

tisc (Python, CouchDB)

A tool to generate IRC statistics. Used a CouchDB document store and used Map/Reduce queries to generate the statistics.

GitHub

Cropper (Python, GTK)

A GUI tool to slice up images. Had to balance attractive interfaces and ease of use against features and internal complexity.

WebsiteGitHub

SubIM (Python, GTK)

A small chat client based on IP multicasting. Simple interface, minimum infrastructure, and effective.

GitHub

ResTracker (Python, HTML, PostgreSQL)

For a databases class. Worked with two other people on a web application to handle room reservations. Wrote a web framework and used PostgreSQL.

GitHub

PyReg (Python)

Connects Python to the Windows registry. Wrapped a handle-based API within an object-oriented one.

GitHub

Technologies

I have many skills in a wide array of applications, from embedded work to full websites. Below are listed a selection of the particulars.

Python

Over five years of experience with Python over a wide range of uses.

  • PyGTK: Using Python and GTK+ to build desktop apps
  • Django: an MVC web framework
  • Flask: A light-weight web framework
  • WSGI: wrote a small web framework
  • Twisted, asyncio: Python asyncronous/event frameworks.
  • HipChat: Wrote an API library for the HipChat v2 JSON/HTTP API.
  • Windows: Wrote PyReg, a friendlier interface to the Windows registry.

JavaScript

Used JavaScript and JavaScript frameworks in several web instances.

  • jQuery: Developed interactive web pages
  • Polymer: Google's Web Component library
  • Chrome: Wrote Chrome extensions for security and usability
  • Firefox: Have written developer tools for Firefox

PHP

Have used PHP since version 4, including several large pieces of software.

  • MediaWiki: Have run instances of, contributed patches to, and have made deep changes to MediaWiki, the software behind Wikipedia.
  • WordPress: Have administered and integrated with WordPress installations
  • Laravel: Have developed ecommerce websites in Laravel.

Databases

I have used a variety of databases for a variety of purposes.

  • PostgreSQL
  • CouchDB
  • MongoDB
  • MySQL
  • Google App Engine
  • Custom flat-file JSON store

Other Web

All of the HTML and CSS on this site is custom-tailored.

  • HTML5, including new tags and new technologies
  • CSS3
  • Web Components

Embedded

Programmed in both Microchip's PIC C for the PIC18 series, for the MSP430, and Atmel AVR in the form of Arduino in embedded applications.

  • Arduino: Used Arduino libraries in the development of networked data acquisition hardware.
  • PIC C: Lead programmer to develop robotics control software.

Others

Not listed above are a variety of technologies that are lesser known or, that I am less familiar with. This includes Java, desktop C/C++, Scheme, Ruby, Perl, NQC, Visual Basic 6, Lua, Bash, Powershell, and C#.

I am also familiar with several of the associated tools that are not programming but are a necessary part of the development process.

  • GNU Make
  • git: a distributed version-control system
  • Subversion: a centralized version-control system
  • CVS: similar to Subversion
  • SWIG: A bindings generator
  • Debian software packaging
  • Google Protocol Buffers

Education & Experience

Education

Grand Rapids Community College Spring 2010, Fall 2011–Fall 2012
Worcester Polytechnic Institute: Computer Science 2007–2009
Forest Hills Central High School 2003–2007

Profesional Experience

Jimmy John's: Driver August–December 2015

Delivered food by car to customers. Worked as part of a team in a fast-paced environment.

ServiScreen: Product Developer August 2014–November 2014

Hardware, software, and business developer of an R&D deptartment/internal start-up. Worked with Python, Arduino, CouchDB, Protocol Buffers, Flask, and a variety of other technologies.

Rider's Discount: Software Developer May 2013–January 2014

Web, backend, and utility developer for small eCommerce group. Worked with Python, MongoDB, PostgreSQL, PHP, Laravel, Django, and a variety of other technologies.

GRCC IT: Customer Support January 2012–December 2012

Front line phone and in-person support for students and staff. Working with ActiveDirectory, System Center, Novell ZenWorks, BlackBoard, and a collection of other software.

RGIS: Retail Merchandiser July–August 2011

Remodeled both Family Dollar and Jo-Ann Fabric and Craft stores. Responsibilities included arranging merchandise, moving shelves, cleaning up, and a variety of other tasks.

Boutique Week: Webmaster January–May 2011

Rebuilt website from the ground up to the client's specifications. Utilized Google App Engine, Django, jQuery, and other technologies. Worked closely with a graphic designer.

Employment Group: Light Industrial Temp October 2010–Febuary 2011

Manpower: Access Business Group:
Light Industrial Temp
July–August 2008,
June–October 2009

WPI M.E. Department: Lab Monitor September 2007–April 2008

Attended a computer lab, alerted the appropriate people of problems, enforced rules, and ensured things ran smoothly.

Other Experience

School: Theatre Crew March–April 2008,
October–November 2008

Involved in the backstage work of two productions. Worked under the direction of the master carpenter in construction of set and as part of the run crew under the stage manager during the show.

RBE 1001: Introduction to Robotics September–December 2007

Worked with two other people to build a small robot to compete against other teams in a game designed for this purpose.

FIRST Robotics Competition: Robot Operator 2007 Season

The robot operator on team 904. Worked under stress, strategized in groups of about 6 to 9 on a changing basis, worked very closely with others.

FIRST Robotics Competition: Lead Programmer 2004–2007 Seasons

The sole programmer on teams 1227 (2004-2006) and 904 (2007). Involved embedded programming in C on a restricted system under extreme time constraints.