Cityspan

Cityspan is a software development firm for public agencies, nonprofits and foundations.

May 2022 - Transitioned to Senior in Jul 2022 - Jul 2023 ยท 1y 3mo

Cityspan Technologies, Inc

What is Cityspan?

Cityspan is a small company providing bespoke web development services for public agencies, nonprofits, and foundations. They specialize specifically in client tracking and grants management. They aim to support companies in tracking and building automated reports for all sorts of data.

Overview

  • Created a migration tool that automated detailed XML match and replace logic, saving time for the migration team who previously hand-wrote these changes.
  • Built an open-source library for managing XML in a type-safe and idiomatic manner
  • Designed and built a prototype replacement for an internal database querying and display tool.
  • Contributed directly to the client websites by building and deploying requested modifications

Migration Tool

Cityspan had a bespoke component-based xml-based language they used to build customer websites. They were migrating from an older to a newer version of their component library, and needed a tool to automate the transition from the older to newer nodes. I independently lead and completed the tool, developing a first-pass migration tool, saving time in otherwise manual work.

Open-Source XML Library

To facilitate the complex syntax tree walking and validation of their bespoke XML-based language, I built typed-xml, an open-source library designed to make validating and interacting with XML-based data trivial in javascript. It uses a class-based representation of a node, where each XML node has a javascript class associated with it.

Prototype querying tool

Cityspan had an internal website for internal management of customer data. This website did not scale well with some of Cityspan's larger customers, causing significant lag when accessing certain customers. The site also did not contain built-in support for many operations that administrators would want to do, to remedy both of these issues I prototyped a replacement tool. This tool was not deployed due to it being deemed not worth the time investment

Contributing to client websites

Clients would send in tickets requesting changes to their websites. Everything from as simple as a change to a string to a complex relational or behavioral change to a field or set of fields. I was a part of the team responsible for developing these changes and closing the tickets. Working with other members of the team, I would implement the requested changes, test them, and deploy them to the customer.