Joe @ Fair Answers

Who I am

I’m an experienced software developer. I’ve done full-stack development, but I concentrate the back end processes and API development.

What I do

Fundamentally, I solve problems and help people. Specifically, I work mostly in Java, but I’ve also used ruby, python, unix scripts, and a variety of proprietary platforms.

What I’ve done

At Level 3, we implemented a custom workflow engine for handling network alarms. It would analyze each alarm and either throw it out, send an email/text, or open a ticket in our ticketing system. It was scalable, distributed, and highly reliable. We also implemented a graphical component to easily see the status of an alarm. This replaced 6 proprietary network monitoring systems with and today saves the company is about $7 million dollars a month.

At the FAA, I automated the release process, saving about 4 hours of work per week and ensured the repeatability of our builds. Then, I automated testing increase coverage from about 10 cases (compared by hand) to over 2,000. We ran tests every night to for tight feedback loops during development, and eventually reduced user wait time from 3 minutes to 10 seconds.

At Corporate Express I was tasked to find the differences between two customer databases so we would know when we need to run the re-sync process. This was important because the process required the company to be down for 24 hours. My monitoring script pulled data from both databases and pointed out any differences. Once that was working, I added the ability to fix those differences in whichever database was out of date. In the end we ran the script daily, which took about 10 minutes, and obviated the need for the 24 hour process.

Some of the problems I solve aren’t computer problems. I once delivered a 4 hour class on a proprietary project with only a day’s notice. That weekend I mentored the 20 or so students as they pitched in and helped meet our deadline. I also started a study group for Java certifications, and each member that took the test passed. We all learned new features of Java and broadened our knowledge.

For a personal project, I wrote a scheduling app for a volunteer organization. They needed to coordinate 250 volunteers each weekend and keep records of who did what. The old process to remind the volunteers, make sure everything was covered, and make the reports took the better part of 3 days per week. The new system sent email reminders automatically, volunteers could confirm or decline with one click, reports were generated, and the total time commitment went to 4 hours a week.

One of my strengths is documentation. I started a troubleshooting wiki page for an existing product with more tribal knowledge than documentation. For several months I added any problems I found and solutions I came up with, then started pointing people to that page when questions arose. Over 2 years later, it was our primary source for debugging and had over 500 updates from several members.

Another of my strengths is my desire for automation. I like to use small programs to automate common tasks like looking up version info for deployed apps, making common database/api queries, or combining multi-step processes into one. I also like desktop automation tools like AutoHotKey and TextExpander for making it easy to get things done with less typing.