My open-source journey and working remotely

10 September 2020

Opensource helped me in learning many things and at the same time gave an oppurtunity to land in my first remote job.

My open-source journey and working remotely
Image from Unsplash, by @_ferh97

At the time of writing this blog, I am completing my first 6 months at @teleportHQio. Honestly, this is one of the best places and teams that I have ever had a chance to work with. What I enjoy the most about this team is, we are trying to "bend the technology for humans". So we don't have boundaries in terms of thinking. We often keep this in mind and try to think of scenarios in making life a little easier.

We have a suit of open-source (OSS) repos on our GitHub and a playground which works in sync with them. We are creating technologies, that not only allows us to acheive this, but by open sourcing the core elemnets of the technology, we are paving ways for future teams exploring this path.

Introduction!!

Let me the share the story of how it all started (skip introduction and go to takeaways here). I was always a motivated individual, but used to fiddle around on how to channel the motivation in the right away. A huge thanks to my friend @iamAnushree who introducted me to "tech twitter". Initially I wasn't aware of how powerful "tech twitter" is, if you use it right. This helped me get into track initially.

Fast-forward into the future, I didn't pay much attention to OSS until Hacktober Fest 2018. I started digging into the world of open source more and made my first PR to @mattermost.

For those of you wondering, yes, I wanted the "Hacktober Fest tee-shirt"!

And again, I abandoned OSS for a while, being busy in office and other things. Phew!

Realising the potential

I enjoy reverse engineering more than the actual development phase. Yes, initially it was always a concern for me. "How we can dive into a code that is written by someone else". But now I can answer: Over time, we will get the hang of it. Then i started contributing to some other projects here and there, and every-time my PR gets merged, I am all above the sky :)

Twitter screenshot for a tweet regarding code-generators from TeleportHQ
Yup, a screenshot. Not interested in loading all the twitter embed bloat to a static blog

Coming across teleportHQio

A couple of years ago, I had no idea about teleportHQio and what is the technology powering all the wizardry. While on an overnight journey, I came across this tweet.

Tweet Link

I quickly visited their GitHub repository. I realised that the whole source code is open. But one thing constantly bugged me that night: "How is this even possible? How could machines write such clear code like humans."

I forked their repository and started going through the code in my free time. The best way to get a hand of any repository is to pick a good first issue and try fixing it. At the time, they were looking for a change-log and versioning setup, and as a person with interest in infrastructure. I started to look at options, suggested a few and did a initial implementation. You can view my first PR

It was a small one, but my current colleagues @alexnmoldovan, @agilius and @Utwoo, who were maintainers at the time helped me to figure things out. Yeah, I was dead scared to ask anything at that time :D

Keeping up with the consistency

This time, I didn't want it to happen as my previous instances. I kept looking at issues and fixing them and keeping up my consistency in contributing to various other projects at the same time. I feel a little happy for myself now, I was able to reach 95 PR's today to the same repository.

Over the time, I got to know the team well. I reached them via twitter and we exchanged some video calls too :D.

Next, we wanted to migrate the current setup to a mono-repo based packages setup. To expand the eco-system and bring in plug-in system to the generators. This was the time, when I buried my mind inside and was able to revamp the architecture to a lerna based mono-repo.

Onboarding :)

After a couple of days, I received a text from @alexnmoldovan saying that I was officially invited to come onboard the team. I couldn't sleep that night with all the excitement!

A series of discussions followed and we decided the date and the process of onboarding. In March 2020, I joined the team.

TeleportHQ team
TeleportHQ team

Working remotely

I was working full time in an office environment until then, and entering into a remote life took a couple of days for me. But at the same time, we started to face lockdowns everywhere. This made the adaption a little more complicated for me, but the team was very supportive. I almost never actually felt the transition, it went so smooth. I sometimes feel "Did i really switch to a new company!" :)

Apart from work, we have Tech Tuesdays, coffee breaks and some games where we try to understand each other and get some time off from work. We keep our discussion off the work during these times strictly, since we want to extend the virtual human interaction apart from work. I never felt like I miss working in an office environment.

Key take-aways so far

  • Do I miss the office commute?

    My answer for this is, "I don't know." ;). Maybe I started working remotely and at the same time everyone else started to "work from home" due to lockdowns. So, I did not find the difference between "working remotely" and my other friends "working from home".

  • What would you suggest for someone who wants to start working remotely?

    I would suggest not to swing around in making the decision for the switch. It's definitely worth the path to explore. But there are few things that I will suggest which I learned over the time of working and adjusting myself to the new workflow.

    • Have a dedicated work station for yourself. You don't need a fancy work station. But a dedicated space for working, mainly a table and chair for yourself, helps a lot.

    • If you can have a dedicated room, it would take the experience up a notch. I personally suggest this. If we can separate the room where we work from the other places. Where we eat and have some entertainment it helps in zoning out from all the non-work thoughts. This gets you into the mood for work.

    • Have a proper work schedule. Most remote workers tend to either underwork or overwork, depending on the type of the day. In a proper office environment, we have fixed time slots for lunch, coffee or going back home. But this needs to be properly monitored for a remote job. Often we will be different timezones. So, this plays a very important role. @alexnmoldovan always emphasised on this and I make sure that I keep it in practice.

    • You can use wakatime, to keep track of your work hours. This helps you implement the previous point. Infact the first thing I install in my IDE when I started working remotely.

    • Tools like Miro, Excalidraw are super useful. They help in visualising what's in our mind, at the same time conveying those ideas to other members of the team.

    • The most important one. Communication is the key when the team is distributed. Always try to be clear on what's on your mind and what you are conveying to the team. Don't hesitate to ask or to raise a discussion when something is not clear.

    • Plan your meetings properly and do homework on what to discuss or what you want to ask before joining a call. In a traditional office environment, you can have adhoc discussions with anyone on the floor. Sometimes may be when you eat or have coffee together. But when you are remote, you need to have a scheduled meetings when you want to have some discussions. We need to consider the persons timezone, availability and meetings scheduled and not to interrupt their workflow.

  • Why we need to consider contributing to OSS

    This is one of the most asked question for me, when I suggest someone to work in OSS. The answers are simple for me.

    • You get to work on multiple projects with different backgrounds and architectures. It helps in gaining, quick adaption nature which helps when you want to work with a new project.

    • You get to work with some of the best people who are always willing to help, and at the same time evaluate code and feedback for improvement.

    • It helps in understanding the whole eco-systems and the development trends a lot better. This personally helped me in quickly evaluating my implementations with the existing solutions and iterate on them at a much faster pace.

    • And finally, contributing to OSS is not only code contributions. You can do financial contributions too. This is particularly very important and less spoken about. Often we take the hard work from the authors as granted. I personally started to financially contribute to a couple of projects gradually at a pace where I can manage.

Conclusion

So far, the past 6 months was an amazing experience for me. I want to thank everyone who helped me in the journey and mainly @alexnmoldovan and team, for having faith in me and onboarding me. I learned a lot, and helped in improving the technology we had and still in the process of exploring. If you have any further doubts, hit me up at @askjkrishna.