Resume
- Email: exodist7@gmail.com
- Github: https://github.com/exodist and https://github.com/Test-more
- CPAN: https://metacpan.org/author/EXODIST
- LinkedIn: https://www.linkedin.com/in/chad-granum-52b18317/
About Me
I am a senior software developer specializing in maintaining and improving crufty legacy codebases. I specialize in Perl, but have experience in several other languages as well. I enjoy learning new technologies and applying them to my work.
As a senior developer I have experience gathering requirements and architecting new projects. I also have experience mentoring junior developers, bringing them up to speed on existing code, and helping them to apply good practices when writing new code.
I pride myself in my ability to communicate, both in person, and in writing. I try to understand everyone's point of view and make sure everyone is on the same page. I try to find the root of any problem and help others to understand that root so that we can find the best solution. If someone has difficulty understanding part of the problem, I can explain it clearly and concisely.
I have released, and continue to maintain, several popular Open Source projects, primarily in the Perl community. I help to maintain parts of the Perl core libraries, and am involved in community discussions and decision making.
I am a tool builder by nature; if there is a way to make solving the problem easier, I will find it and implement it. I especially enjoy writing tools that make unit testing more pleasant.
I am skilled enough to work effectively without AI/LLM tools. However, I also see their value and have developed the skills to use AI/LLM tools effectively, and apply these skills both at work and in personal projects.
Work History
Grant Street Group - Senior Software Developer: May 2020 → Present
At Grant Street Group I work as a senior software developer with a focus on testing and on writing tools that help other developers do their jobs better. While at Grant Street Group I also work on AI tooling and integration.
ZipRecruiter - Senior Software Developer: May 2017 → Mar. 2020
At ZipRecruiter I worked on what could be best described as the "Tech Debt" team. My job largely consisted of taking working, but terrible and untested code, and refactoring it to be clean, understandable, and well tested code. I also built tools that helped other developers to do their jobs better.
I also helped improve test performance. The ZipRecruiter test suite took 1.5 hours on a 46 core machine, and I reduced it to 20 minutes using the YATH testing harness. I also built the YATH-UI tool for drilling in and understanding test failures when they occurred.
DreamHost - Senior Software Developer: Nov. 2012 → Mar. 2017
At DreamHost I was responsible for maintaining and improving a 16 year old Perl codebase using technology that was many years out of date. While in this position I was able to upgrade the system to the latest stable version of Perl, as well as the libraries we depended on. I was also able to introduce a new testing framework that greatly expanded overall test coverage.
While at DreamHost I also architected and spearheaded a project to revitalize the DreamHost customer panel with a new Vue.js based front-end using our existing Perl codebase as a backend via a JSON-RPC API.
Xerox - Software Developer: Oct. 2010 → Nov. 2012
At Xerox I was tasked with maintaining and improving a legacy Perl codebase. Among my accomplishments in this position are a conversion from svn to git, a migration from mod_perl to Plack, greater unit test coverage, and a Javascript based store locator tool.
Rentrak - Software Developer: Feb 2010 → Oct. 2010
At Rentrak I was part of a small team that developed new products. My team worked on a mix of very old and very new technologies. I worked with very large sets of data that required significant performance tuning.
Open Sourcery - Software Developer: Oct. 2007 → Feb. 2010
At Open Sourcery I built a ticket management system for a large data center using Request Tracker. I also maintained eleMental Clinic, software for mental health professionals. And I planned and developed multiple Drupal sites for clients, including custom plugins.
ArtTech - Instructional Aid III: Aug 2006 → Oct. 2007
At ArtTech I was responsible for teaching 4 classes a day to 15 high school students at a time. Among the classes I taught were Perl Programming, Javascript Programming, HTML, and Video Game Programming using the Unreal Engine. I was also responsible for maintaining the small school's computer systems.
Gary McKelvey Architect AIA: Oct. 2001 → Oct. 2007
At Gary McKelvey's office I was a jack of all trades. I worked as a network administrator, software developer, and AutoCad draftsman. In my time in Gary's office I wrote a challenge/response spam filter to help Gary manage his email.
Open Source Projects
Perl Core
I was the release manager for Perl 5.25.7 and I am an active participant in the development of Perl 5. I have discovered and reported several Perl core bugs. I maintain Test-Simple which is part of perl core.
Perl Toolchain Group
I participate in discussions and policy decisions for the Perl community, particularly discussions around core modules on CPAN. I also attend the yearly Perl Toolchain Summit, an exclusive gathering of developers that maintain the essential Perl toolchain.
Test::More/Test::Simple/Test::Builder/Test2
The Test-Simple CPAN distribution has been at the heart of all perl testing for over a decade. I have been the primary maintainer of this module since January of 2014. When I picked up the project it was suffering from years of neglect. Before that neglect there had been 2 projects with the goal of revamping the distribution, both of which had stalled. After picking it up I started my own revamp, which succeeded and has gained community approval.
I’ve also worked on many other projects. See my CPAN and Github pages listed at the top of this resume.
Education
I earned an Associate of Arts in Computer Science at Lake Tahoe Community College in 2005.