Marty Kane - Project Portfolio

Wolfram
Wolfram|Alpha
Project Role: Full Stack Web Developer
Original Wolfram Alpha Home Page

I was part of the small team that built, deployed and maintained the Wolfram|Alpha web site. I worked on it as a full-stack web developer for a little over a year before launch, and helped maintain it for a few years after launch. I built back-end code in Java and JSP, and used HTML, CSS, and JavaScript on the front-end. The site launched in May of 2009. I also built many ancillary web sites in the Wolfram|Alpha space, many of which involved Java back-ends and MySQL databases.


Wolfram Alpha Sketches Home Page

In 2013 I implemented the "sketches" home page of Wolfram|Alpha.com, which included example queries the user could click, illustrated by sketches that would "glow" when hovered over. There is also a sweep animation on page load to hint to the user that the sketches are interactive. I was the only developer, working closely with a designer. This involved lots of JavaScript, and I had to partition the space to optimize finding the hovered icon. Click the screenshot to see an archived (but still working) version at the Wayback Machine.

Wolfram|Alpha API
Project Role: Full Stack Web Developer
Wolfram|Alpha API Home Page

I spent a couple of years as lead developer and maintainer of the Wolfram|Alpha API, which at the timed served millions of requests a day to clients such as Siri, Samsung, and Bing Search, and Blackberry. This was written in Java and Mathematica and also involved an extensive replicated MySQL setup.

Wolfram|Alpha Widget Builder
Project Role: Lead Developer

I was lead developer on a multi-year Wolfram|Alpha project to build a Developer Portal. The main feature of the portal was an interactive "widget builder" to let users parameterize queries and turn them into embeddable calculators. The site was built in Java and JSP, with Adobe Flex for the interactive builder. A beta release launched in 2010 and was followed up with a gallery and improved embedding, as well as the ability to customize the embeds. I worked on a JS-only builder to replace the Flash version with one built in Backbone.js and Mustache, but it was never completed.

Pixo
Symfony Apps
Project Role: Full Stack Web Developer

While at Pixo I was a full stack developer on multiple web apps built in Symfony which were internal business systems for clients. These were built circa 2015, so they used PHP 5.4, Symfony 2 and 3, and MySQL databases. Some projects involved rendering pages with twig and enhancing with occasional small bits of JavaScript, and others involved a complete Angular front-end with Symfony only exposing a REST API. (No links available since they are internal apps).

CARLI Selection System
Project Role: Lead Developer
CARLI Software Architecture

I was a lead developer on this effort to build a system that supports vendors offering hundreds of e-licence products and over a hundred library customers. This was an extensive multi-year project to build a suite of three Angular applications, a Node middleware in Express.js, and a distributed CouchDB setup. I was a full stack developer, working on the database, back-end, and front-end components. We also practiced strict pair-programming discipline and followed Clean Code principles as well as Agile team organization and routines.

This is an internal app requiring logins so there isn't much to see publicly, but the source code itself is available on github.

Architecture: CouchDB is the central data store, and is also used for authentication. By default, the client-side Angular apps talk to couch directly. A NodeJS express app was added to aggregate queries and to perform operations that require elevated couch privileges.

All entities are handled via plain JavaScript repositories. These modules contain business logic as well, and are thoroughly unit tested. There is a build process to bundle up the modules with Browserify, which includes browser-specific functionality. The same modules are used in the Node middleware (with server-side dependencies) which means there is minimal logic in the Angular app. This design keeps CouchDB nicely separated from Angular and the critical business rules decoupled from both.

University of Illinois Research IT Portal
Project Role: Tech Lead / Software Architect

UIUC Research IT Portal - a custom system to gather IT resources for researchers at the University of Illinois in one central place.

Architecture: A fairly typical Symfony back-end which uses a Postgres database and provides an administrative section to manage data. A regular process pushes the data from the symfony database to a data warehouse, which is queried via a REST API to display the user-facing front-end.

Quality Assurance/Science Activity Centre – Americas
Project Role: Software Architect

Architecture: This project was a rebuild of an old site originally built in a Drupal 6, which had hit its end of life and then had security risks. A complete rewrite was not feasible, so the client was left needing a solution that would keep their workflows running and address the security concern. I came up with a multi-step approach which essentially followed Martin Fowler's "Strangler Pattern".

We first built a database migration job which could convert the existing database into a more general-purpose schema, and then came up with a generic data model based on the user's domain and turned that into Symfony entities. From there we built a minimal REST API to expose the data for reporting and display. The public web site was rebuilt in a few stages, using the REST API as its source, which hid the old Drupal site from most public traffic. Eventually a set of Symfony forms was written to replace the old administrative back-end. Finally, the old site was decommissioned and then new visualizations and additional tools were added, taking advantage of data from the API and modern web technology.

A piece I built was this "Bias Analysis" tool, which is a React component that gets data from the API and provides an interactive chart.

Applied Health Sciences at UIC
Project Role: Tech Lead and Full Stack Web Developer

Architecture: This project was a complex WordPress multi-site to enable the various departments within the college to manage their own parts of the web site. The typical WordPress theme system was not used, and instead a custom front-end was built and populated by data from the WordPress REST API. A lot of custom PHP and database logic was also written to aggregate data from across the departments and to provide custom API queries needed by the front-end.

Red Multisite
Project Role: Tech Lead and Full Stack Web Developer

Red is a highly customized WordPress multisite meant to provide a common platform and brand across the entire campus, providing a service like SquareSpace to departments that don't have dedicated web staff. The traditional WordPress theme was not used, and a custom PHP system was introduced to decoupled WordPress from the rendering of the front-end. I also introduced design by contract and unit testing.

UIC Red
CME Innovation Center
Reporting Systems
Project Role: Tech Lead and Architect

Various projects involving data analysis and visualization. Provided high-level design and code structure. Code reviewed feature branches and ensured proper unit test coverage and adherence to clean code.

Web Apps
Project Role: Tech Lead and Project Manager

Multiple different webapps, some with NodeJS back-ends some with Python back-ends. Architected with a use-case-driven approach and Domain Driven Design to keep the business logic decoupled from the persistence mechanisms and the web frameworks.