Career Timeline

Note that this starts with my first relevant job and goes to the present. I have had a few jobs before this which are not relevant to my current career path.

Professional Projects

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.

My Future Plans

We all make plans, but they don't always work out. That's okay! It's part of life. What matters is how we adapt and move forward. Here are some of my future plans that I would like to see realized:

New Opportunities

I've been 100% path-through-level at Indeed for over 2 years now, but the climate is such that Indeed is not promoting engineers to the next level very often. That said, due to a lack of upward mobility and job security lately, I would like to get a new remote role at a different company that essentially gets me that level promotion and room to continue to grow my career.

Career Progression

It has always been a plan of mine to work my way into a leadership role, whether that be technical or personnel related. As much as a truly love solving problems and building interesting things with code, I also feel as if I have gained the knowledge and experience necessary to lead others in a technical capacity and would potentially be a greater asset to a company by doing so.

Income Streams

I would like to create some personal projects that create somewhat passive income. I've had plans to finish a site that is an information source about area events and I plan to sell ads on that site. Afterward, I have been planning the development of an indie video game. In short, any side project that I find interesting and could make a somewhat passive income stream to help me retire some day is a project I plan to pursue.