Case Study: PerformX Incentive Platform

The 'Platform' is a web based software appliction that creates and manages employee incentive programs. I worked across three main verticals as a front end developer as well as manager of several off-shore developers.

I mastered, and then trained multiple people in a proprietary coding language.

Theoritically this was a full-stack web application, built with Agile teams using a variety of technologies. It was already 2 years old when I first joined the team. Our 'stack' consisted of HTML, SASS, YAML, JQuery, Handlebars, Foundation by ZURB, Material Design, Kendo Inputs and Grids, Node, Gulp, Typescript, .NET, .NET CORE, SQL and I'm sure some other database bits I never even saw, and finally META-PARTIALS!

Behold the platform! Also my sketches to try and make it better.

Actual Meta-Partial*

Meta piece not shown

Meta-Partials you say?

Instead of using an established development language, like React, Angular, or Vue, the company decided to create their own, ultimately named 'meta-partials' (by me). A meta-partial is a reusable element of code that consists of at least 2 separate files, an HTML 'partial' and a separate 'meta' piece that describes the partial and what is should display and how it should ultimately connect to the rest of the application.

While injecting dynamic data into partials using handlebars is nothing ground breaking, the way these were implemented was unique to the application. One major caveat is that they needed to be backwards compatible with the previous versions of the platform.

Essentially every input on a page is described by the meta which in turn defines the partial and creates the component.

Forms, Inputs, and Grids, oh my!

Platforom Inputs and Grid Sample Screen
KT plan and schedule Screen shot of knowlege transfer session

Sounds painful.

At first it was. But I am a fast learner, and refuse to give in to any programming language or code base.

One difficulty in using proprietary code, like meta-partials, is finding additional resources when you need them. There is no pool of people out there with already existing knowledge, so on boarding becomes a rather lengthy process and undertaking. In order to move from one of the brand specific builds to the core project, which the other main FE dev and I had been trying to do for years, I had to train my replacement.

Once I was on the core team I was asked to train more even people in the wonders of meta-partials. Working with both local and offshore managers I created a curriculum, a knowledge transfer plan, and held daily 1 hour (planned, we often went longer) remote video sessions with my new coworkers.

As one of the only meta-partials SMEs on the planet, I had to ensure that the training encompassed all elements the team would need to be able to work independently.

How did that work out?

I would say both exceptionally well and catastrophically bad.

Exceptionally well, as far as my teammates and the knowledge transfer was concerned. They asked great questions, which meant they were absorbing the content, and we formed a kinship during our time together, banded together against the 'logic' of meta-partials. They were able to take on JIRA tasks and complete them with little to no input from me after a few weeks.

For myself however, I essentially trained myself out of a job. The company had already shifted me and several other coworkers to contract positions in order to save money. Now that they had 4 new resources, fully trained in meta-partials, they decided that I was no longer needed.

Coworker enjoying my knowledge transfer

I can't say I didn't see it coming, but there was hope that they might transition me to help manage the resources I trained.

    From this project and company I learned the following:
  • I can master a new, and more made up than most, programming language in a few months.
  • Training others as an SME is actually quite fun, and rewarding.
  • I enjoyed the responsibility of managing abilities, assignments, and reviews of my students.
  • it's possible to do TOO good of a job at something.