While I have been involved in a countless number of interesting projects over the years, here are some that stand out.
Stale Proctor Tool
Company:Indeed
Tech:Node.JS, Koa, Typescript, Docker
To enable easier cleanup of stale A/B tests in production, I developed an endpoint that took arugments for repo name, module(s) name, and associated Jira projects. I took this data and queried our A/B testing system to get the metadata of the test, check SourceGraph to see if the test is still referenced in production, and check Jira to see if there are any tickets referencing the test. From there it checked the age of the test then generated and returned a .csv file formatted to import into Google Sheets that provides teams with all of the data needed to easily clean up the stale tests. This tool has been used by teams to reduce clutter in our A/B testing system and improve overall efficiency.
A11y Ticket Generator
Company:Indeed
Tech:Node.JS, Koa, Typescript, Docker
To enure that teams were not introducing accessibility issues into production, I developed a tool that would catch accessibility violations in QA and create Jira tickets for teams to resolve them. Our QA environment has a series of accessibility tools running in the background that reports violations to our in-house logging system. My tool runs daily and queries this logging system for new violations, formats this data stripping dynamically generated properties from the HTML elements and generates a hash to identify the violation, checks a Mongo collection to see if a ticket has already been created for the issue, then uses the Jira API to create a ticket if one does not exist. This tool has been running for over 2 years and has created thousands of tickets that have been resolved by teams.
Internal Hub Tenancy
Company:Indeed
Tech:Node.JS, Koa, Typescript, React, styled components, federated modules
Indeed has a hub where teams to create internal apps and sites, but teams would have to open an MR that had to be reviewed and merged to add a new app to the internal hub. To solve this, I worked with another developer to create an internal app that presents a series of forms regarding ownership, metadata, module info, and GitLab repo. The tool takes that data and dynamically adds the needed infomation to a database that is used to dynamically generate the routing for the internal hub. This allows teams to use the forms to add their new apps or sites and manage their own permissions without the platform team being required to constantly review and merge MRs from other teams.
UX Quality Scorecard
Company:Indeed
Tech:Node.JS, Koa, Typescript, React, styled components, federated modules
To enforce better UX quality standards, I worked with a tooling team to create the concept of a UX Quality Scorecard. The idea was to run a job daily that scans repos to ensure that all repos have the Indeed linters installed and have no rules turned off, query Jira for accessibility tickets related to those repos, query our internal ownership API to link repos and tickets to teams and products, then generate a score based on the information that was gathered. We created a scorecard app that allowed teams to search based on scope, Jira project, and repo. Additionally, we added a condensed version that appears in our tools panel when in the QA environment that gives and overview of the score with a link to the main app.
Layout Editor
Company:R4 Technologies
Tech:Typescript, in-house front-end framework
R4 wanted to experiment with creating a system that used their in-house front-end framework and allowed users to create their own dashboards with a drag and drop editor. Another developer and I built a front-end that had a collection of generic containers, visualizations, and widgets that could be dragged into a dashboard. Once a widget was dragged in, the user was presented with a small form enabling them to add labels and specific data points. While we did migrate our code bases to Angular not long after creating this tool, it was a very interesting project to tackle and our prototype functioned fairly well so I was proud of the result.
PDF and Excel Report Generator
Company:Kapsch TrafficCom
Tech:Node.JS, Express, PhantomJS, Multer, jQuery, Materialize
Kapsch had a reporting system that generated PDFs and Excel files for reports, but the issue was that it required a change to be made to the generator every time the report data structure changed. To resolve this overhead, I created a new report generator that would dynamically generate the PDF and Excel files in a much cleaner and better formatted manner. When the files were generated, the user was presented with a dialog to download their files. Once downloaded, the files on the server were deleted for the sake of data security. This tool removed the need to always change the report file generation every time new data was added or changed.
Mopac Express Lane Dashboard
Company:Kapsch TrafficCom
Tech:Angular.JS, JavaScript, D3.js, Kendo UI
If you have ever drive in Austin, TX, you are likely to be aware of the Mopac expressway. A portion of that expressway has some express lanes which are basically single lane tolls allowing drivers to essentially pay to bypass traffic. Kapsch did the hardware installation on those lanes, and I worked on the dashboard allowing the governing authority to monitor these lanes and set the prices. This was an Angular.JS application full of forms, individual camera feed, and even a screen with a map of Mopac that uses geoJSON data to show the locations of all the equipment and preset a traffic map similar to how Google Maps shows traffic.
Admin Rights Tool
Company:IBM Global Services
Tech:VBScript, HTA, Windows API, Active Directory
There was a common situation that played out while I worked for IBM where a manager was allowed to be given admin rights to their own machines temporarily. The biggest problem that result from this situation was that the IBM tech had to make a trip back to the manager's office to revoke those rights, and that sometime involved a commute. I created a tool that would allow an IBM tech to grant or remove admin rights for a specific machine and a specific user, and it even had the option to automatically remove the admin rights after a specified amount of time. I additionally added the ability to check if a user had admin rights to a specific machine as a way to ensure that the rights were remotely removed.