I am looking for a position as a software engineer. I enjoy solving problems and learning new things. I am looking to join a team that is passionate about building software. A progressive and innovative working environment is more important to me than the particular technologies in use.
I have a solid understanding of and several years of practical experience with all phases of software development: design, implementation, testing, deployment, and maintenance. I’m particularly interested in building RESTful Web services, APIs, and other back end components/tools.
Languages, Frameworks, Tools, &c
|Python||CSS||Mercurial||Linux||Supervisor||Google Maps API|
A resource oriented Web framework for Python 3.3+. Project site.
byCycle.org is a bicycle trip planner that was popular from 2005-2009 or so. It has partially succumbed to entropy since, e.g., Google Maps v2 is no longer supported, etc. So I’m rebuilding it on top of Tangled Web/Python 3.3 and updating it to use modern libraries like jQuery 2 and Bootstrap 3.
CartLogic is a Web-based e-commerce platform.
Software Engineer — December 2012 to October 2013
- Initiated switch from in-house fork of Pylons Web framework to Pyramid
- Worked on analytics tool; in particular, built a Redis backend for logging
- Improved and deployed in-house (Web) session framework (replaced Beaker)
- Implemented initial version of theming framework (mobile, desktop, other based on user agent or user preference)
- Added automated build/deployment script (Fabric)
- Optimized SQL queries (SQLAlchemy)
- Various refactorings and cleanups
Public transit agency in the Portland, OR, metro region.
Software Engineer — September 2008 to June 2012
- Design and implementation of framework for internal Web applications, including tools for automated testing and deployment
- Design and implementation of RESTful Web services
- Design and implementation of Web applications (Pylons/Pyramid, SQLAlchemy, Mako, ExtJS)
- Design, implementation, and deployment of internal-facing tools (e.g., ETL tools)
- Server configuration, including Apache/mod_wsgi, nginx/uWSGI, Mercurial, and Jenkins
- Many suggestions and improvements regarding best practices and shared libraries
Design and build Web applications and sites. Main client during this period was Ace Hotel (acehotel.com).
Software & Web Developer – March 2008 to September 2008
- Pylons (Python/WSGI) Web framework
- Custom content management system
- Progressive enhancement
- Applied TDD
- Interfaced with multiple 3rd-party hotel reservation Web Services (SOAP, Hotel Concepts, SynXis)
Electrical Distributing Inc, Portland, OR
Local distributor of home electronics and appliances. ~100 employees.
IT Guy – June 2007 to March 2008
Responsible for all network resources, servers, PCs, printers, and phone systems.
- Worked with executive level management to determine the company’s ongoing and future IT requirements and created strategies to implement those requirements.
- Made recommendations regarding hardware and software.
- Purchased new hardware, software, and equipment as needed.
- Created and maintained systems documentation.
- Administered various Linux servers (ERP, mail, file, print, DNS, intranet, Web).
- Administered Cisco routers at an intermediate level (VPN users, NAT).
- Administered phone systems.
- Monitored network security.
- Implemented and maintained a backup solution for all servers.
- Provided desktop support for ~100 Windows XP/Vista users.
byCycle.org, Portland, OR
A not-for-profit project to create an online bicycle trip planner (“Google Maps for Bikes”).
Founder/Lead Developer — November 2004 to July 2007
Responsible for all aspects of this project, from the back end to the front end to the business end.
- Created system architecture with back end core separate from UI. Back end implemented as a set of services with a well-defined interface.
- Wrote code to implement address parsing and normalization, geocoding, and routing.
- Wrote test suite to ensure correctness of code and make sure code meets requirements after refactoring.
- Built Web front end using the Pylons framework; standards-based XHTML and CSS; DHMTL and AJAX with Prototype; custom widgets.
- Used Google Maps API used to provide base map (note that Google services were not used for address lookup, geocoding, or routing).
- Wrote ETL scripts to extract delivered GIS data from shapefiles, transform the data into the byCycle schema, and load it into a PostGIS-enabled PostgreSQL database.
- Worked with Metro in the Portland, OR, area and the Bicycle Federation of Wisconsin to create a suitable GIS data format and build the first publicly usable versions of the trip planner.
- Fielded inquiries from interested Cities and people around the country.
Freelance — 2004
- Updated artist portfolio Flash site: mkimn.com (prior to current version).
- Worked on a previous version of jyte.com (back when Jyte was a newsreader).
- Built simple PHP gallery for local artist: johnmacnabfineart.com.
- Helped an Oregonian employee learn the basics of HTML and putting together Web sites.
University of Oregon Information Technology Centers, Eugene, OR
Computer labs in the University’s libraries.
Computer Lab Assistant — November 2000 to December 2003
- Desktop and printer support for a PC and Mac environment of 75 computers.
University of Oregon, Eugene, OR
Computer and Information Science, Graduated Dec 2003, BS