Community

MagmaConf ’14 LiveBlogging: Jesse Tooth – Rewriting critical parts of your application using… Science!


Jesse Tooth

Jesse is part of a team in GitHub called 'Abilibuddies'. This team creates the code that controls the access to repositories, teams and organizations.

The first permission filter was pretty straight-forward since it only involved collaborators but, when they introduced organizations, they had separate ways of granting permissions living side-by-side (access as contributor or as a member of an organization).

At this point, they were lots of bugs involving some transitions related to edge cases.

Later on, they decided to make organizations more flexible and added teams to the organizations.

This was getting complex, so they started to rewrite the way it works to make it easier to maintain.

Since teams started to grow, performance started to became an issue.

Test coverage was less than ideal, so they started adding test to make the rewrite and the refactor easier.

The first step was conditionally execute refactored code paths in the orgs API so they could verify if the refactored code was providing the same output as the current code. If both outputs matched, they had more confidence that the new refactored code was working as expected.

Then Science came out. Science is a tool that helped them to make this experiments easier.

Once they implemented Science successfully for this code transition, they wanted to apply this tool to mostly everything.

The next step was gathering the data to verify stats of the refactoring done such improvement on the execution speed.

In order to support this tool, they also created Analysis: a tool to obtain the candidate and control metrics and compare them.

Both, Science and Analysis are open source projects and can be found in their respectively GitHub repos.

About the speaker

Jesse Tooth @jesseplusplus

Jesse is an engineer at GitHub, where she spends most of her time doing backend Ruby and Rails work. When she's not opening pull requests, she enjoys doing yoga, hiking, and traveling.

Best Practices
De Código, Café y Cervezas – Clean Code
Best Practices
De Código, Café y Cervezas – Clean Code 2da Parte
Community
My experience as a MagmaHacker