We’ll Keep Moving On

The title of this blog post as well as the song within this post, was inspired by the layoffs that were happening at BlackBerry. The marketing campaign slogan at the time was “Keep Moving“. So, during the dark times of layoffs, this song was born out of uncertainty, but knowing that if something were to happen, we would just keep moving on. Little did I know, I would be singing this to myself one day. However, today it goes far beyond BlackBerry and the layoff. It speaks to me about rising up from among my shattered hopes and dreams and walking away from them, carrying all my scars, towards a new dream with renewed hope.

You might be wondering what prompted this blog post. Quite simply, a couple of job opportunities, out of the over 300+ applications sent out to date, that I had hoped would produce an offer. You can guess that they did not, and it was quite the discouraging way to start the week. Admittedly, I was crushed. The ones that I felt would be exciting to work for at the time said no thanks to me. It felt as if my hopes got shattered. Sometimes, it got me to the point where I didn’t want to continue. Honestly, I would throw my hands up in the air and be asking God, “why?“ or even wondering if He’s listening because here I was believing that I had found the job opportunity that I was looking for, and it felt like the rug was pulled out from underneath. As one might guess, it was pretty difficult to go through the week.

Blessing in Disguise

I have often said this phrase: it is difficult to see clearly when you are staring down the eye of a hurricane. This was certainly no exception. While everything at the time seemed like a giant storm, at the end of it, I would see that this happened for a very good reason. If there is one thing that I’ve been doing during this season of unemployment, it has been a lot of soul searching. Just like in my recent blog post of discovering why I became a software developer, this time I discovered recently how I want to develop software and provide solutions.

It all started with another company issued me a coding challenge that was to be done in Java shortly after receiving the news. At first, when I looked at the problem, it didn’t really hit me. All I saw was a jumbled pile of data layered in a certain order. I can say that it was hard to see any coherence because I was still looking through the eye of the hurricane. However, after putting it to rest for the night, it wasn’t until I woke up the next morning when the answer hit me. I woke up going “it’s a tree”. Sure enough, when I looked at the output data format, I saw the pattern. It was the most familiar pattern that I used for almost 15 years. This was the beginning of the re-awakening that was happening inside of me. I then proceeded to answer this challenge in my most favourite manner of programming: test driven development. When I was done, I had a not only answered the challenge for the company, but also had my own answer: this is how I want to be programming. I felt that when I was doing this, the code was almost writing itself because of all of the tests that I had written for it. When I had submitted the challenge, I was told that it held out throughout all of their test cases. I don’t think it would have done so we’re not for all of the unit tests that I put in place. I would have my confirmation a couple of days later when I took another test and I failed to use the same methodologies that I did when I did the Java challenge. It didn’t take much to realize that this was my coding style. Of course, to test this, I decided to redo those failed challenges privately, and do them in the identical development manner. Again, not only did I solve the challenge, but they held up in every test situation. When I ran out of failed assessments, I turned to the Internet to find more challenges to apply my re-awakened problem solving methodology. I was now applying it to every technology I was touching, and not just Java. It was re-awakened with the language, but is now alive again as a practice and principle, and is a huge revelation to myself that I am far more happy when I code in this manner.

This has also made me far more aware of the companies that I am interviewing with. It has made me ask better questions to the technical teams regarding their development practices. I will admit that I am very leery of joining a team that does not share the same practices as I do, as I fear this will lead to frustration and discouragement. Having re-awakened this joy of coding style, I do not want to bury it again in practices I do not believe in.

In Retrospect

About a dozen challenges and a handful of assessments later, I have found not only my strengths when it comes to programming, but more of that reawakened joy of programming. I honestly don’t think that this could have happened the way it did if I would have taken that position at that time. If anything, I was still discovering myself. I won’t deny that this period has been one of the more stressful times, and Nichole often reminds me that I have been through a whole lot worse, and she is right. But I will go as far as to say that this period has not been for nothing. All it took was that one Java assessment the day after that made me realize just how much I enjoy solving problems using test-driven development.

As stressful as this time has been, it has also been a time of healing and rehabilitation. I can liken it to the physical healing and rehabilitation that I had to go through after tearing my quadricep off of my knee, after not being able to walk properly for 10 years. In a way, I can liken getting let go from my job as the “tearing away” after years of not engaging in the coding practices I so much enjoy. The coding assessments and online challenges were my rehabilitation to problem solving using test driven development. Just as I work out in order to never letting my knee go back to what it was before, I am probably going to want to do the same with my coding in order not to repeat the last couple of years.

So, while this letdown was disappointing and discouraging at the time, it was not in vain. As I learned more about myself then, I will learn more as time goes on. But as I do, the words near the end of my song start to ring true when I am finding myself knocked down:

It feels the world has fallen down
As the people turn away, ignoring all our cries.

But if you put your hand in mine,
We will get up one more time,
As we sing one final song.
Yes, we’ll sing that final song…

And we’ll keep moving on!

Where I Go From here

I have always grown up with the belief that everything happens for a reason. Getting let go from my last job is not an exception to this belief. Considering everything that I have learned about myself during this time, I might even argue that this could be one of the better things that happened to me. I believe that this is something we call “a blessing in disguise“. After being knocked off kilter for the past four years, I sort of felt this time, despite the stress, somewhat refreshing. It has been a time of discovery, dedication, and renewal. It has also been a time to determine the direction that I want to take myself, in regards to my software development career. Having been given the gift of rediscovering who I am and what made me, it is now time to get up and move forward, taking that identity with me.

What Got Me Here

I’ve discovered that in order to determine where I’m going, I needed to figure out how I got here. Not in some cosmic “meaning of life“ type of discovery, but more or less the things that I have done and the mistakes that I have made which have brought me to this point at which I am writing this. What I discovered from my last blog post, was not only that I love to code, but why I have this love of coding. I discovered what gets me really excited when it comes to coding. I have been using my down time to sharpen my skills and broaden my toolsets, such as working with Node.js and Angular, which I found gave me a deeper passion for code. I was even able to put that love of coding into creating some useful music utilities, in the form of pattern generators based on Euclidean geometric algorithms, during this down time.

So, with all that said, how did I wind up in the position that I’m in? Well, looking at all of the things that I have discovered about myself, I think the reason that I got in this position is very simple: I wasn’t really coding. Yes, I was writing code, but almost all of that code was more maintenance in one form or another. To me, that’s not really coding, in the software development sense of the word. Yes, I was finding challenges patching some major security holes, but it wasn’t really an execution of that daring to dream type of code. The consequences of it was that I felt a certain detachment from the rest of the team. So, honestly, I wouldn’t be surprised if I was mentally checking out long before this happened. I had experienced it before. It was one of the main drivers that caused me to leave BlackBerry. I had stopped being a programmer, and was more of a juggler and a bug fixer. If anything, I was repeating history. The last few weeks had me being more creative than I have been in the last few years. As simple, or as complex, that the code that I had written for Logic Pro X was, I was being creative and filling a need, I was also answer my own code challenge. It was challenging me to think. More importantly, it was challenging me to visualize data in a more creative fashion. It taught me to see beyond the numbers within the algorithms, and use my Asperger strengths and recognize patterns and how to program them. Between all of the coding challenge is that I have done for prospective employers, and the coding challenges that I came up with myself it was very obvious to me that the type of coding that I wanted to be doing, I was not doing in the past few years. So yes, well this time is very stressful, I am grateful that it has given me the period of self-rediscovery and has allowed me to reignite my passion for programming. As hard as it is at the moment, in a way I have become far better for it.

My Direction

Knowing what I know, it’s now time for me to be determining where I am going with all of this information. I certainly have no desire to repeat history for a third time. That would not be a good use of everything that I have learned. This has taught me to be more diligent of the questions that I ask prospective employers during the interview process. If anything, I found myself being able to walk away from certain interviews with a sense of satisfaction, and from other interviews that made me wonder if I was going to be jumping from the frying pan into the fire. This to me is a good thing, because not only is a company interviewing me, but I am also interviewing the company. While they’re looking to see if I will be a good fit for their team, I’m also looking to see if their team is a good fit for me. I am looking for a company that will keep me engaged, feed my passions for programming and challenge me to dare to dream.

The bottom line is this, the reason that I am rather anxious to get back to work is more because I want to code. And knowing what I know now, I am certain that once I am in that place, you can probably bet that I won’t be in this place again!