Persevering Through Trials and Tribulations as a Developer: Dev Retro 2022
Persevering Through Trials and Tribulations as a Developer in Dev Retro 2022: Dev Retro 2022
10 min read
Ahh, it's that time of the year again.
Many will make new year's resolutions, few will start them and even fewer people will follow through.
We can't predict the future. However, we can learn from the past and that's what we'll do in this article.
So let's start #DevRetro2022
Start of the year
The start of the year was stressful, to say the least, and this is not the last time I was gonna experience it.
As months went by the job only got tougher. However, we'll talk about them in the next few sections. For now, let's concentrate on the starting few months.
Life never gets easier, you just learn and adapt.
I got my first job offer when I was in college and joined the organization I'm currently working for in June of 2021. June 14th, 2021 to be more precise. Like any beginner, I was excited to learn and leave my mark.
The client I'm currently working for was assigned to me in mid-December 2021, and in the first couple of weeks, I was doing just local setup(installing necessary software) and watching some Knowledge Transfer(KT) videos.
In the last week of December 2021, I got my first task which was to simply add some regex to form input(backend and frontend). I dragged this task to the first or second week of January(I don't remember the exact timeline LOL).
It wasn't because I was dumb or their system was something out of the world. I was just completely new and didn't know how to search for the right field in the huge codebase.
At this point, I was genuinely stressed. I mean who wouldn't be?
I learned two things from this experience
With time, you'll solve the problem. (A lesson which I keep relearning now and then)
Ask for help if you're stuck for too long.
I never expected a simple regex problem to give me so much stress or teach me such important lessons which now seem very obvious.
I got a few more tasks after this but they were very trivial like changing the text on the front end or changing the content of tables on the front end. For this brief period, I wasn't stressed at all.
My first exciting and challenging task
After spending a few weeks, now it was time to pick up some actual challenging work. I had to build a new module for managing data related to different branches of a bank.
This was probably my favorite task out of all tasks I've completed for my current client. I got to work with some nice frameworks and got to learn something new.
Below is the list of technologies I used
AngularJS ( Not to be confused with Angular)
Play framework (Using java language)
MongoDB for storing data
ElasticDB for search
I had experience with the MEAN(MongoDB - ExpressJS - Angular - NodeJS) stack and I had studied JS in lockdown before starting my job. I even have a playlist of some videos related to JS on my YouTube channel which you can find here.
However, I had never worked with AnguarJS or Play or Elastic for that matter. By the way, AngularJS is not Angular and I have an article relating to it here. So it was challenging to pick up a new framework on the go.
Play wasn't much hard because at the end of the day I was writing java code and it had a familiar structure. MongoDB wasn't a challenge because it was nothing new and ElasticDB was a bit confusing but I referred to old queries and didn't need to do much.
The biggest challenge was AngularJS. In the beginning, it felt so different from anything I've ever worked with. I gave it some time and after a week or so it started feeling somewhat familiar. I guess that's the advantage of working with vanilla JS and knowing some basics of others frameworks/libraries.
More than anything this experience truly taught me that knowing the basics of a language is crucial to understanding and working with the framework.
First office experience
One day my manager asked me to join a google meet. It was to inform me that I had to go to the client's office. I had to start going to the office from 1st week of May. I was going to my client's client's office(two clients isn't a typo btw). Whenever I say bank just assume it to be the client's client.
Since I was hired during the Pandemic, I didn't have any experience working from the office. However, I had a few expectations like getting to wear anything we want and maybe free food. I didn't get any of that but I did get to meet two of my colleagues for the first time. I had never even seen the face of anyone I've worked with because of the Pandemic.
Now that I was working directly with stakeholders, the work stress was even greater. I was still relatively new with only 3-4 months of experience. I kept missing deadlines but didn't give up. Shoutout to my colleagues who helped me in the initial days.
With time, I learned more about the system. I became better at debugging the code. I started understanding how different microservices related to each other. More importantly, I learned to give more realistic timelines for tasks. I'd say giving proper timelines for tasks is one of the toughest parts of any job.
One valuable lesson here is that even if you're the most tech-savvy person in the room it's important to understand the current system and business requirements.
Knowing how to do something is pretty pointless if you don't know what to do.
I don't think my technical competence was the issue in task delays but rather a combination of a few points listed below
Not asking for help sooner.
Sometimes, not trying hard enough.
Giving unrealistic timelines for my skill level.
I was scrolling through Instagram someday and there was a post saying
Hard times don't last, people do.
I don't remember who posted this or when I read this but I think this is a great quote.
Hybrid work experience
After four months, I was called back to work with the client and not for the bank. When I was going to the bank it was a completely different experience and I had to go to the office every day. The work didn't change much but the workplace did and it did make a difference.
Now I was finally wearing casual clothes at work for the first time. I know for many people it's not that big of a deal but I always wanted to look like a stereotypical programmer just for fun and little comfort.
I had to go to the office just 2 days instead of 5 days a week. The office was even closer than the previous one. All in all, it was definitely better for me personally. The best thing was meeting more people I work with.
Technologies I learned this year...
This was a rather weird year for me personally but I did try some new technologies so let's talk about them.
This is one technology that I had never touched in my life and now I'm fairly confident in writing code for AngularJS. I wouldn't recommend using it and considering how it's outdated for a long time now, I don't think anyone will.
I don't think this specific technology would help me a lot going forward if I ever switch projects but it definitely taught me that I can pick up any JS framework and be productive in it.
More than the technology itself, I think learning about how important basics are was the best thing I got out of AngularJS.
This is one technology that is very exciting to me.
It does something different than MongoDB and traditional SQL databases (DBs). It has a different use case and it's very good at searching data.
I still have a lot to learn about it and I promise I will.
Maybe I'll even write an article series or make youtube videos about ElasticSearch next year. Depends on a lot of factors but it's definitely a possibility.
Ever since I made a basic android application, I was hearing about Kotlin and how it was now Google's first choice for building native android applications.
I always wanted to try it but because of trying to learn/improve other language skills I never got to it during the pandemic.
I solved a few leetcode questions using Kotlin and really loved the syntax but after that, I didn't use it for a while. However, I recently started a Spring Boot project in Kotlin and have a basic skeleton ready. I have paused that project for now because I want to finish other pending tasks first but I'll 100% complete at least a basic version of it.
It may take some time to get to it but hopefully, I can get to it soon enough.
Blockchain / Web3
The biggest buzzwords of 2022 were Web3 and Blockchain.
I think the above meme sums up the Blockchain situation pretty accurately. I did read some articles about it and got some fundamental understanding but never dived too deep.
I would definitely love to learn about all the technologies related to Web3 but for now, I think I have enough gaps in my Web2 knowledge to chase the trend of Web3.
At the end of the day, the web is web. 2, 3, or 5 are just numbers. If you have good basics and core Computer Science knowledge, that's what matters the most.
Personally, I would've loved to learn more technologies but due to work and my laziness, I definitely learned less than I could've.
I think this article would be incomplete without talking about my leetcode profile.
I have solved 167 questions in total till now(25th Dec 2022)
I have 336 submissions
I know, I could've done much better but a small break turned into a huge one. My leetcode skills need a lot of work and hopefully, when I'll be writing #DevRetro2023 I'll have a much better record to share with you guys.
Even the 167 questions, I have solved wasn't solved on my own. That's one more thing I would love to improve. Do leave any tips you may have specific to my situation, would love to hear from you guys.
However, this is what I have for the year 2022.
My Portfolio Site
I wanted to build a personal portfolio website for so long and I finally did. I started and completed it in the April of 2022.
You can visit the site here and I promise it's beautiful.
I didn't have time to build it out completely on my own and make it mobile-responsive so I took the help of a YouTube video. Here's the link for that video.
Just yesterday(24th Nov 2022) I bought a new domain for the first in my life so it was exciting. Before that my portfolio was hosted on the netlifys subdomain and my blog was hosted on the hashnodes subdomain.
It was a little confusing to figure out how to use the domain I bought but in the end, I figured it out. It was both fun and exciting.
URL for my portfolio - https://www.jayeshkarli.dev/
URL for my blog - https://blog.jayeshkarli.dev/
Now both are hosted on my personal domain which feels pretty good, to be honest.
Just as this year was about to end we got ChatGPT. The AI program was developed to take over the jobs of developers around the world or may be a glorified search engine for some people.
I would love to learn more about your opinion in the comments.
I panicked a little but for now, I don't think it's any threat to my job. By the time, it takes our jobs I think there'll be some alternatives or maybe Universal Basic Income(UBI).
I'm quite curious about how fast it'll progress and how it will change our society but I guess only time will answer that question.
For now, all we can do is upskill ourselves and hope for the best.
Now that the year has almost ended, I have mixed feelings about 2023. However, I'll just focus on the positive ones for now and go into the future with hope and optimism.
Happy new year and Merry Christmas to all my friends reading this blog. I hope you enjoy your holidays to the fullest and come back with fresh energy to fight the demons of 2023.
Thank you for reading the blog, if you could relate to any point in my Dev Retro 2022 please do share your experience in the comments.
Did you find this article valuable?
Support Jayesh Karli by becoming a sponsor. Any amount is appreciated!