My two weeks of working remotely all on my own came to an end today, when everyone came back into the office for the first time this year. Although I enjoyed my time out of the office, it was nice to be back and get back into the swing on things. Right off the bat though, I had to walk my colleagues through all the code that I had written for the last two weeks. Being the only engineer working over the holidays, I didn't work on any new stories, but instead was tasked to do pretty much whatever I wanted.
I decided to use this freedom to undertake an unstructured learning opportunity and see how much refactoring I could do. Along the way I ended up reading a bunch of blog posts and stack overflow answers, as well as watching about 40 hours of tutorials and tech talks (sped up at about 1.5x, so I only spent 30 hours). By immersing myself in this hyper focused learning mode, and immediately applying my newly found knowledge in our codebase, I was able to achieve incredible results.
In the end, I was able to take one of our application's giant "God" models, and break it up into 8 smaller models, as well as a undertake a host of other improvements such as removing all the logic in our views for this model. I became extremely comfortable implementing concepts such as the Single Responsibility Principle, Dependency Injection, and the Law of Demeter - all of which I previously only knew about in the abstract.
When the senior engineer at my company was able to digest every thing I had explained to him, he was very impressed. He was simply floored at how much I was able to learn in such a short period of time. He was so impressed that he even told me that at this point, I had as much to teach him as he had to teach me, which kind of blew my mind.
This lead to a fun discussion about how we can incorporate this kind of burst learning into our engineering culture. The conclusion we came to was to try and use our 'Investment Fridays' to do this kind of learning, which I think is a great idea. Having a full day each week to go into full out learning mode, I can probably expect to learn about as much in a month as I did in these last two weeks. I can't even imagine how much better at coding I can become in a few months or a year of this, and am very excited to see how this all plays out.