Thursday 26 November 2020

Forty-eight hours with Red Airship

This is about the time I spent forty-eight hours with the company known as Red Airship.

OK, nothing quite that dramatic. But I did commit myself to a two-day tryout as a developer.

Here's some backstory...

Early this year, my contract with my then-company was running out in a few months, after nearly three years at the job. And not being one to take anything for granted, I did what I always do when not guaranteed stable employment - look for jobs. As it happened, an ex-colleague on LinkedIn posted a want ad for a developer. I got in contact, and secured an interview.

Red Airship was a startup in Pasir Panjang and they were looking for someone to join a team in Tampines. Friggin' Tampines, all the way at the other end of the island. It was certainly off-putting, but distance never stopped me before. Then again, I was never forty-two years old before, either. Still, as a matter of principle, I showed up and did my best. The CTO Ryan Tan put me through two hours of what felt less like an interview and more like an informal chat.

Pleased to meet you.

At the end of the interview, we agreed to put all talks of employment on hold and just enjoy the upcoming Chinese New Year first. He also posed me a challenge - to learn as much about ReactJS as I could in the meantime. As it happened, I had been dabbling. (What else is new, right?) One of the things I had been dabbling in, was ReactJS, mostly because it seemed to be the go-to requirement of every other tech job ad out there.

Over the next few months, I kept in touch with Ryan, occasionally showing him stuff I'd made in ReactJS, and soliciting feedback. The agreement to discuss employment opportunities at a later date never happened. COVID-19 got in the way and it was a huge mess for everyone. I ended up joining some other company, but we still kept in touch.

Back to Red Airship

My experience in my new company did not turn out the way I expected, and within months I was seeking new employment. This led me to speak to Ryan again, and he proposed a two-day tryout at Red Airship. Due to the COVID-19 situation, this would be done remotely, through video conferencing. I would have to take two days' leave. This wasn't actually such a big deal. COVID-19 was still out there; what else was I gonna do with two days' leave - take a vacation overseas? Pfft.

No more vacations.

Besides, at that point I was experiencing some serious dissatisfaction with my current company. Never mind two days, I would have happily quit my job and tried out for two weeks. Free of charge.

The First Day

The weekend was spent watching YouTube tutorials on Redux and TypeScript, and installing the necessary software. When the day arrived, I hoped I was ready.

Via a video call, Ryan introduced me to the rest of Red Airship's team. I can't recall their names and certainly not their faces. There was some lady whose husband had served in the Singapore Navy, like myself. There was a guy who loved watching movies. And a bookish-looking dude whom I suspect I might have physically resembled thirty years ago. The last one I remember because it was his code that I was going to be working on later.

What happened next was nothing I'd ever seen before.

Something like this!

The image of a wheel-spinning script, with all our names on the wheel, was shared on-screen. When the wheel was spun, it would point to one of the names, and the corresponding member of the meeting would then proceed to talk about his or her weekend. It's precisely that kind of frivolity that reminds me why I stayed so long in this industry. Because code can be fun.

I suppose this was what counted for team-bonding in Red Airship. Seemed legit, I guess. The intention was certainly there. To be honest, I couldn't help but space out after an hour of this. Hopefully, it wasn't extremely noticeable.

From there, Ryan took me aside and informed me that what had just transpired was all about selling myself to the team - because after this they would put it to the vote and they would decide if they wanted to work with me. Again, this was a new concept, and I like it - it adds a new dimension to every team member's input. Usually, new hires are at the sole discretion of Management. Allowing team members to have a say wasn't something I encountered often.

Next, Ryan showed me an existing app that had been written by one of the guys. I had to ask questions about the code. Cool; my very first professionally-written ReactJS app. All I'd ever seen up to this point were examples on tutorial sites and StackOverflow. I was introduced to certain concepts in ReactJS, and certain concepts particular to ECMAScript, which, to my chagrin, I was supposed to have learned years ago but never used.

The day ended early, with Ryan telling me to go through the entire app and pick out questions I had about the code. I had plenty; and wrote them all down. However, it also occurred to me I could just as easily Google the answers myself. And that certainly worked for a few of those questions. Later that evening, I went out for a movie with the wife, and by the time I returned, through no real conscious effort on my part, I'd figured out the answers to a few more.

The Second Day

The second day began with Ryan going through the list of questions I'd prepared in a document. After a bit of clarification, it was time to test how much I'd absorbed. I was tasked to make changes to the code in order to cater to new requirements. And in this respect, Ryan was like a drill sergeant, battering me with searching questions (which I recognized as a form of didactic questioning due to my stint in the Institute of Lifelong Learning) instead of answering my questions directly. It had a very frantic feel.

Ryan told me he wasn't trying to be tough on me, but he expected his engineers to have the initiative to question and search for answers. That's fair. Though I wonder why exactly he thought he was being "tough". I've seen "tough". This wasn't even close.

Damn, I'm lost.

To be honest, my thought processes was slowing down somewhat and I was getting a bit lost, especially when it came to tests. Later in the evening (probably a bit too late by then), it occurred to me that I should have adjusted tests with every change I made, so I wouldn't lose track of what I'd done. And, ideally, committed the code. Commit early, commit often, I always say.

As it was, I was making alterations to the code with every new requirement, so when the time came to produce tests for those changes, I'd already forgotten what exactly I did earlier. Which, admittedly, didn't exactly leave a good impression. At one point, Ryan remarked that seeing me struggle was "painful", and I had to agree with that assessment. Where ReactJS was concerned, I'm primarily a hobbyist. Enthusiasm on its own doesn't translate to proficiency without proper direction.

And boy, was I getting that direction today.

Somehow or other, we managed to make it work. Tests were now running properly, and things were falling into place. Ryan got me to commit the code, and that was when I realized that these were real scenarios - he wasn't asking me to make those changes purely for the heck of it. I was actually doing work for Red Airship. Some might complain that it's a cheap way to get work for free, but I disagree. Had Ryan passed this on to one of his engineers to handle, it wouldn't have taken two days. All I'd done was put in some work for all the tutelage I'd received. And it wasn't even that much.

Then it was time for the post-mortem. Ryan thanked me for my time, but let's be real here: I was even more thankful than he was. I had everything to gain from this experience, and nothing to lose. If I didn't get a job with Red Airship, I would still have had the benefit of two entire days of training from actual ReactJS professionals. On their part, if Red Airship found me unsuitable for the job, they would have wasted two days.

Epilogue

I didn't get the job with Red Airship. Ryan informed me that the team "didn't feel the chemistry". Which is fine; I hadn't really expected to impress anyone on the back of that showing.

A month from those two days, my company and I parted ways and I joined another outfit.

Final Thoughts

Red Airship's method of fostering a bond between team-mates is interesting.

Personally, while I'm all for the concept, my experience with team-bonding has tended to be somewhat more organic, and less company-mandated. Usually, my colleagues and I start off with being cautiously polite, and perhaps within a month, we're getting on like a house on fire... regardless of nationality, age or gender. I pride myself on being rather more sociable than the stereotypical tech geek. Thus, I found myself ambivalent to Red Airship's approach, but I'm sure it works for them.

I appreciate the fact that Red Airship took a full two days to show me the ropes despite the fact that there was a very real chance that they would end up with very little to show for it. There's the culture of sharing right there.

On my part, this experience was valuable. Sure, I didn't get the job, but that was always secondary. I gained real insight into how to develop a ReactJS app, and to this day that sample code is in my possession. I'm still studying it, modelling my practices on it, and I've identified certain glaring gaps in my knowledge that I can plug, and work processes that I can refine.

I gained way more from Red Airship in these two days than they did from me, and that's a fact that deserves recognition. From developer to developer, I offer heartfelt thanks.

Fly high, airship.
T___T

No comments:

Post a Comment