Reflecting on my first pair programming interview

For those who don’t know what is pair programming, it is basically a software development technique where two developers/software engineers work together on the same machine. At any one time, one would be doing the actual programming and the other would be reviewing the written code. In both cases, communication between the two developers/engineers is very important.

Pair programming is usually done at some companies who want shipped codes or software that has fewer defects. After all, defects on shipped code could mean higher cost in terms of quality checks and troubleshooting.

And for some companies pair programming is also done as one of the interview stages. One of the purpose is the interviewer to figure out if you are suitable for the position. Interviewees are judged on their soft skills such as communication, ability to problem solve, plan and think critically, and technical capabilities. Another purpose would be to determine if the interviewee is able to work with other developers in the company.

Pair programming interviews are also there for the interviewees to understand who they are working with and how they may have to work in the company. It’s a good chance to find out if he or she is suitable for the applied role.

For me, despite working as a software engineer for five years now, I have never done pair programming. Most of the time, I work alone or in a team. And when it comes to interviews, the toughest kind I get are those where you have to do technical quizzes, solve programming challenges or do whiteboard problem solving.

So having to do a pair programming interview for the first time is both exciting and scary. And sad to say, I didn’t pass the interview.

Towards the end of the interview, the interviewer gave some really honest and constructive feedbacks that are helpful for my personal growth. I thank him for that and for the time he spent on me.

At the same time, I feel really shitty about the interview failure, which is expected. But my mood is now about to fall off the cliff. For some context, I have been struggling with burnout for months, depression and forms of anxiety for the last four. My mood was only just stabilising after three weeks of anti-depressants.

Don’t get me wrong, I’m not looking for any sympathy nor trying to guilt trip anyone. I’m just sharing what I am feeling and have been through.

So what went wrong and could be better?

Low to average technical skills

My JavaScript fundamentals are weak. I was having issues with lambda and anonymous functions as well as some other fundamentals like passing of data. It prevented me from figuring out the solutions to some of the problems I encountered. The last time I did any decent amount of JavaScript was two years ago and even then, I only used the surface of what the language is capable of.

Making matters worse, I had to work with ReactJS, which is a JavaScript framework for developing UI. I also have to work with Redux, which is another JavaScript framework for state management. And it was no fault of the interviewer. I indicated that I want to do frontend development with ReactJS during the previous interview with one of the company’s employee.

At the end, a couple of hours spent every night for the past four days to learn ReactJS and Redux simply isn’t going to cut it.

But it doesn’t change anything. If I still want to be a frontend developer and be good with ReactJS/Redux, I have to keep learning and practice. And develop some apps using those frameworks along the way.

Failure to comprehend actual requirements

This is really on me. I was given the chance to read about the requirements and end goal of the exercise. The key focus areas were listed down in the document. But for some reason, I didn’t realise that I hadn’t really read and understand the whole thing before jumping in to come up with a solution. I could only attribute it to stress and anxiety.

Due to that, the solution I came up with was half-baked and caused major problems further down the development process.

Therefore, I really have to work on improving my resilience to stress and directing the brain to focus better. This is the only way for me to be able to understand future situations more clearly and come up with a better solution.

Overengineering

In software development, there are three principles that all developers should follow for higher productivity. They are:

  1. DRY => “Don’t repeat yourself”
  2. YAGNI => “You aren’t going to need it”
  3. KISS => “Keep it stupid simple or “keep it simple, stupid”

And because of my failure to comprehend the actual problem, my half-baked solutions caused me to violate principle 2 and 3. There were additional React components that I created that weren’t necessary and made the codebase more complex.

I’ll admit that I violated those two principles a lot of time during my five years of software development experience. It is because I like to provision for future uses. Breaking those principles served me well so far because I have experienced scope creep that requires components or functionalities that I thought of in advance and had implemented. That means, I didn’t need to spend extra effort to develop and refactor my code later.

Going forward, I really need to train myself on going for the simplest and fastest solution to any problem.

Took too long and prevented successful gauge of my skills

Because of overengineering, it took me more than twenty minutes to develop the application foundation. After which, I had to redo some of my codes in order to support certain functionalities that I have overlooked because of my failure to read and comprehend the requirements. More time was wasted.

Therefore, I was unable to implement the other features of the application that would have allowed the interviewer to determine my understanding of ReactJS and Redux.

Final thoughts

Self-awareness is actually a very important skill to have. With it, you might be able to determine if you are suitable for a given role or job.

In my case, the combination of my highly-sensitive nature, under-developed stress resilience, highly self-critical and low self-esteem meant that I hadn’t really been able to function at the level required for a so-called experienced software engineer who’s been at this job for at least five years. I’m simply not ready yet to take on roles that require me to be a consultant or a quick thinker.

The other thing that I figured out was that the number of years of experience isn’t really a good gauge of your skills. The interviewer did point out that despite my years of experience, I still wasn’t able to grasp ReactJS even after 24 hours (spread over four days) of reading and practice. He implied that he was able to pick up the framework within two days instead of four.

With that, it could mean that either my fundamentals are very weak or that I’m simply not smart enough to pick up something fast. Or maybe both. For the former, I could work on it by going to read and study the fundamentals again. For the latter, well, I can only work harder than most to achieve the same skill level.

Either way, I’m just glad that I’ve been through it and knows what’s out there. There are valuable lessons to be learnt here, which is all that matters.

The well has dried up but it’s okay

You have just finished work and arrived home. In a bid to make yourself healthier again, you decided to reset your workout routine. And you thought, Monday is a good day to mark the start of your new workout routine. A quick run around your neighbourhood seemed to be the right choice.

After you’re home, had your shower and dinner, you realised you are doing everything else but the one thing you should be doing. Maybe you have to paint a piece of art. Maybe you have to prepare a new set of musical beats for your upcoming song. Or maybe you have to write an essay.

Not wanting to feel like a failure, you tried to get yourself to do that one thing. Seconds went by. Then minutes. Then hours. As midnight draws closer, you recognised the futility of the effort. There was simply nothing you can draw on from inside of you to do it.

And you know what? It’s ok.

Maybe you are really mentally exhausted and couldn’t do it. Or maybe you are really out of ideas. Whatever the situation or issue maybe, it’s important not to blame yourself for this failure. Trust yourself to deliver. After all, you have been doing it for a long time, right? The skills are there. You need to be kind to yourself and catch yourself before you go deep into that “I hate myself” speech.

And what you probably need also is a change up in the environment to put yourself in the right frame of mind to continue. In my case, it was as simple as going out of my room to get a cup of cold water, switched on the air-conditioning in my room and sit back down.

That’s how I break free from my initial writer’s block and write this. It may not seem much but I hope this help anyone who’s suffering some kind of creative block.

Be fearless about who you are

People who have an outward personality may not have the issue of showing the whole world who they are. They may come across as loud spoken, confident and sometimes just plain irritating. And there will be people who doesn’t mind having them as friends. For some of us, the more reserved, quiet and highly sensitive people, you can’t help but want to run away from these kind of people.

And it’s perfectly all right to do that.

What is not all right is when these reserved, quiet and highly sensitive people keep to themselves even when other people are insulting them, making snide remarks, or step all over them metaphorically.

It’s also understandable because these kind and nice souls didn’t want to hurt another person’s feeling or simply want to keep the peace. Another reason could be they are lacking the confidence or are just too self-conscious.

I’m like that too. Always hated bringing attention to myself. And didn’t quite like challenging people more senior than me. I’m highly sensitive and is an INFP.

But I’ve learnt that it’s important to stand up for yourself and speak up.

It’s only by speaking up and setting expectations, other people will know where you stand. If they respect you as a person, they will accept those expectations and leave you be. If they don’t, then it’s not your problem if they choose to keep picking a fight with you. You can either make your stance even firmer or find someone who can help you resolve the issue.

Admittedly, there are times when I utterly failed to set expectations or make my stances clear because of my fear of disappointing people.

And I remember quite vividly about how I actually ignore how another person saw me and make my stances clear. It was with my first two jobs that I actually made it clear about what I will do when it comes to my job and I don’t work weekends or late. I didn’t know why I said those things but somehow those words just came out. But of course the end result was pretty different. One respects it while the other kind of use it as a weapon against you.

Looking back now, I think I did good then.

But when it came my third job, I didn’t quite assert myself because I felt like I should be like my new colleagues. More proactive, hardworking, etc. And after having encounter people using what you said as a weapon against you, well, I didn’t want to feel the same way again.

But what happened was my boss then got very confused as to who I am because I stop asserting and being myself. Hell, even I became confused as to who I am. That time of my life was a complete mess.

And now at my fourth full-time job, I went at it differently. I sprinkled a little of what I will do and what I will not do every now and then. And there is no holding hold back when it comes to showing my emotions or attitude to certain things. So much so, I can come across as an asshole.

But you know what?

It actually made me happier overall. People also know where I stand on certain things as well as my strengths and weakness. This meant that when tasks are assigned to me, it fits me. Not only that, I’m perfectly fine with people pointing out my weakness or certain things I don’t do right. For example, if someone is upset that I don’t give a shit about certain things, I really don’t care. After all, if it’s something I don’t give a shit about, why should I give a shit about what you think or feel about me. But it doesn’t mean I don’t respect you as a person.

And by being fearless about who I am, I have come to acknowledge my strengths and weaknesses. I know that certain aspect of my personality give me certain strengths that others don’t have. And it’s far more effective to be doubling and tripling down on my strengths than attempting to fix my weakness. My strengths are what give me the ability to do the kind of work others can’t do.

With that being said, I’d also prefer my colleagues tell me they don’t do certain things too. The reason is simple. It’s so that everyone knows where everyone stands. And now I come to see for myself how it allows all of us to find ways to workaround the limitations and still deliver the end product.

So don’t be ashamed of who you are even amongst your friends and family. They may be mad at you for certain things you do but if they have truly accepted your flaws and can focus on your strengths, they will still be around. If they aren’t, then obviously they aren’t supposed to be part of your life.

Knowing your why reduce odds of depression

Making goals in life is a very human thing. A goal is something that allows one to live a better life than before or to be happy. It could be as simple as, “I want to make x amount of money by x”

However, what most people failed to realise is that a goal is finite. It’s temporary. Most people don’t ask themselves what would they do next after they reached their goal. As a result, when they finally achieved it, they feel like there’s nothing else in life for them to do. They are lost. This is when the people lose hope and slipped into depression.

But it’s important not to confuse this kind of depression with clinical depression. This is a situational depression. And yes, the symptoms are alike but the point of origin is different. You can get out of situational depression by reevaluating what you are doing with your life and taking actions to redirect yourself without relying on medication.

For me, I have been diagnosed with depression. Now I know it had always been situational and not clinical. I’m grateful that I never went on medication nor was I prescribed any. I managed to get out of those episodes by changing my perspective of things in life with the help of friends and family.

And you know what?

I can’t guarantee that situation depression won’t strike again. What I do know is I can minimise my chances of suffering from it in the future.

It is by knowing my “why”. To know why I exist in the world. To know what’s my purpose and my vision of the world. You may be wondering how does those help with minimising situational depression. Well, you have to know what’s the difference between a vision vs a goal? Having a vision and working towards it is a form of infinite goal. You don’t win the vision because the things you need to do is never one time deal. Sometimes you will fall short in terms of results and sometimes you will achieve better results than previously. But you will always have something to look forward to.

It’s like life. You have a finite lifespan. You probably would die anytime between now and one hundred and twenty-five. But you have to live an infinite life. Life still goes on despite whatever happen. Right? There’s no winning life. And when you lose life? It simply means you are dead. Or in other words, drop out of the game.

So now, do you see?

By playing the infinite game of life and knowing your vision for the world, you reduce the odds of suffering from situational depression. It’s all because there’s always something for you to do to achieve that vision of yours. You don’t lose hope nor purpose of life.

I’m sure you will be wondering how the hell do I know my “why”? Or know what’s your vision. I also didn’t know my why for a very long time. All I know is I was happy when I’m left alone to do my own thing, to create something for another person that make them happy. But I always forget about that specific aspect of myself when life hits me hard. As a result, I’m always making short term goals to feel good.

It wasn’t until I discovered the book called, Start With Why, written by Simon Sinek that I found out what’s my “why” and have been actively to keep it in focus while I navigate life.

Here’s one video that I have watched which I hope can help you to figure out your “why”.

In addition, I would recommend that you check out the book, Find Your Why, written by Simon Sinek, David Mead and Peter Docker, after you are done with the first book.

When you neglect your body, everything else suffers

The market moves very fast because of technology. It has given people access to things almost instantly. In the past, they had to wait for days if not weeks before getting their hands on it.

Because of that, as a creator, you find yourself working almost non-stop just so that you don’t get drown out by the market.

Or maybe that isn’t even the real reason or excuse. It could be the fact that you are just lazy and couldn’t be bother.

In either case, the one thing that gets neglected is the body. You eat junk food because it’s cheaper and faster to get. You don’t exercise because it requires a lot of willpower for you to get out of that chair, couch or bed.

Over time, the body becomes weaker, prone to sickness and pains. Not only that, it gains more weight. With more fats, the body becomes inflamed. Before long, your body is fighting off infections and inflammation. And that affects your brain and mental health. You get depressed easily. You can’t tolerate work and life-related stresses well anymore. Tiredness and sleepiness also become very common.

And making things even worse is age. By the time you get to your thirties, your metabolism drops even more, compounding the weight problem. And failure to take care of your body leads to even more problems.

I know because I’m dealing with them now.

My lack of physical activities the past few months (especially ever since I turned 29) has given me a ton of allergies. My tummy and overall body size have become rounder and bigger. I get tired more easily. My body aches and hurts like there’s no end because of the amount of time I spend in front of a computer or a digital device. And it’s nobody’s fault but mine.

With those issues, I find myself sometimes unable to concentrate on my tasks, lacking excitement in what I do and I just want to sleep more. Now even my fiction writing also grind somewhat into a halt because my brain just isn’t able to work efficiently.

And I know now it’s not the holiday season that’s making me so lazy. Being overweight and lacking physical activity is what make me lazy and sick more often. It’s a vicious cycle really.

So what I have to do is exercise more. Get out more.

And it’s important to set goals that are more sustainable.

So my goal won’t be about losing certain amount of weight by certain time. And I know that alone isn’t sustainable for me because I tried. My goal now is that I want to feel better about myself in terms of energy level and overall health so that I can do my best work.

Now you see, don’t ever neglect your body. Treat it well and treat it right. In turn, it will treat you good.

P.S. I’m actually using the lump that is my tummy to prop up the laptop I’m using to write while I’m lying down on my bed because my back, especially the neck, is hurting. It’s embarrassing really.