Dev Retro 2022: My Year as a Developer in a Nutshell
Taking people through my learnings and suggestions regarding whatever I've tried and accomplished in 2022.
Since 2023 is just around the corner, Hashnode has decided to announce this event called "Dev Retro 2022" where they have requested all developers to share their journey through the everchanging technical landscape this year.
I was extremely passive about this idea, but after talking to some people and after reading the blog posts published by various other developers, thought that I should give it a shot too.
Since 2022 was an extremely happening year, I've tried to summarize all the things that I feel would be useful for the readers and also share my opinions as to what I could have done better and what I ended up learning due to the said events.
Let's get started then!
Who am I?
Well, to follow me along on my journey, you must first get to know whose journey it is you're following in the first place! Right? So I guess some introductions are required here.
My name is Anant Vijay and my online moniker is "DRAGON", currently I'm a third-year in my undergraduate course in bachelor's of technology and am from India, am also a Core Team member of the Google Developer Student Clubs (GDSC) of our institute and help organize and host technical sessions and talks on various technical topics.
In terms of my tech abilities, I'm a full-stack Web Developer that loves tinkering with Artificial Intelligence and Machine Learning, moreover, I've also recently gotten into DevOps as well. I tend to spend my free time contributing to open source projects, learning new things and teaching/helping others in tech!
I started programming a good few years back and mainly worked on creating simple games, slowly I got to know about Python, and well, that started my journey as a true developer and I've never looked back since.
I feel that is more than enough information regarding me as of now to understand what all was it that I picked up during 2022.
Context of 2022?
A lot of things that happened this year were put in motion the year prior, so time for a little revisit to understand the context of my situation at the beginning of the year. This was also the time when I had set some goals for the coming year.
Hacktoberfest and Open Source
In 2021, during Hacktoberfest, I had gotten my first taste of open-source work, I had mostly only worked on personal projects up to that point except for some projects that too were group projects that had to be submitted as assignments to our professors.
Applying my skills and abilities to others' projects that they were thankful for and had an impact on lots and lots of people just felt so exhilarating!
The thrill of making a difference on such a large scale is what pushed me to look into open source at a much deeper level, this led me to look for larger sized projects that I could contribute to, with issues that were extremely beginner friendly.
Someone I know suggested that I look into the organizations and repositories that appear in GSoC every year, as those would be a great starting point for any beginner in open source that wants to contribute on a slightly bigger level and delve deep into open source, moreover if I got selected for GSoC that would always be a plus anyways, so I had nothing to lose with this approach and hence started looking into this in December.
Goal #1: Delve deeper into open source, become an active member of the community and try to get selected in GSoC.
30 Days of Google Cloud
Apart from this, during October itself, we as the GDSC were holding the "30 Days of Google Cloud" event that aimed to teach the students about the Google Cloud Platform (GCP) and act as an entry resource for anyone interested in learning about Cloud Computing that too for free i.e. being sponsored by Google.
I too had taken part in the event and had gone through various resources and hands-on virtual training labs provided, though I wasn't able to understand a lot of the things completely, I was still able to have a basic understanding of Cloud Computing and DevOps and had gotten a bit intrigued to explore them further.
Goal #2: Further explore Cloud and DevOps, learn how they work, their need, and use cases and most importantly use them in projects and gain practical experience.
Internship
Since my internship season was right around the corner, I had also started preparing for that, I had started putting out applications to various companies and startups in hopes of getting shortlisted for interviews and in parallel was also working on improving my resume and making my projects more presentable.
Goal #3: Secure an internship for the next summer and improve my knowledge on things like OS, Networking, DBMS, DSA etc all the while improving my developer profile and projects.
Blogging
During November of that very year, I started technical blog writing as a hobby that I used to do on the side, due to my priority being shifted to other things that I had to accomplish, I wasn't consistent enough in this and ended up neglecting this completely after a while.
This had always been on my mind since then and was hoping to start over soon, though didn't know when that time would come. The only thing that I was sure of was the fact that I, no matter when, will without fail, come back to this.
Goal #4: Get started with technical content writing and stay consistent.
Navigating 2022
There were all these goals that I had on my mind when 2021 ended, and as soon as 2022 begin, so did a sequence of events that I just cannot forget and am both amazed at and grateful for!
Solution Challenge
The Solution Challenge is a yearly event organized by Google which urges developers to form teams and use their technical abilities and skills to come up with projects that aim to solve one or more of the 17 sustainable development goals set up by the UN of which the best solutions would be picked as the winners.
It aims to provide a platform for developers to use their skills and apply them to actual real-world problems that humans face to come up with feasible technical solutions that can be implemented for the betterment of mankind as a whole.
I too had formed a team for the same and had decided to come up with and submit a solution. We were given about two months to come up with an idea, implement it, and write drafts to pitch it to the reviewers as well.
My team members, due to various technical and personal reasons, had to drop out of the challenge just 2 days before the submission was due, and so far no work had been done on the project whatsoever. We hadn't even created a repository on GitHub at that point.
I knew frontend, backend, styling, hosting and ML. Thus, what you'd call a full stack developer and it was time to put my abilities to the test!
It was like a 48 hour hackathon, just constant coding, reviewing, googling and checking the time! Though it took up two whole days and cost me a lot of sleep time, I was finally able to complete implementing the ENTIRE project!
Learnings: This event taught me a lot, such as how a developer can use their technical skills to make the lives of people better outside of the corporate world. It opened my eyes to the various good things I could help people achieve. It also taught me a lot about things such as the importance of building a functional team and the importance of having proper development plans and timelines. It also gave me a huge confidence boost in terms of my abilities as a developer!
Suggestions: I would urge all developers to be a part of this challenge every year as it will seriously help improve your vision as a developer, try to take your time to come up with an idea that you can relate to and that you would be willing to use. Also, make sure to pick a team that is on the same page and make sure that they would be available for the duration of the event.
GSoC
Since I had already decided to explore open source further, I started looking at the organizations that regularly appear in GSoC.
I had been filtering through the projects and organizations and was feeling extremely overwhelmed by the sheer volume of these projects and how I felt my skills were of no match to be able to contribute to any of them.
By mistake I stumbled upon a repository which included an "Imposter Syndrome Disclaimer" which stated:
We want your help. No really, we do.
There might be a little voice inside that tells you you’re not ready; that you need to do one more tutorial, or learn another framework, or write a few more blog posts before you can help with this project.
I assure you, that’s not the case.
This document contains some contribution guidelines and best practices, but if you don’t get it right the first time we’ll try to help you fix it.
The contribution guidelines outline the process that you’ll need to follow to get a patch merged. By making expectations and process explicit, we hope it will make it easier for you to contribute.
And you don’t just have to write code. You can help out by writing documentation, tests, or even by giving feedback about this work. (And yes, that includes giving feedback about the contribution guidelines.)
If have questions or want to chat, we have a chat room where you can ask questions, or you can put them in GitHub issues too.
Thank you for contributing!
This project was "CVE-Binary-Tool" which I then decided to try and contribute to.
I had been contributing to the project for months and had gotten pretty involved with the community at that point too when the applications for GSoC contributors opened. I drafted my proposal got it checked by my mentors, made corrections and submitted it then continued contributing to the project.
Then on the day the results were due, Voila! There it was, an official mail from the GSoC team that I had been selected as a contributor! I then spent the entire summer working on the project and fixing problems under the mentorship of my amazing mentors!
If you wanna know more about my GSoC journey or how to get selected, you can find a blog on that here.
Learnings: I learnt a lot about open source during this time, how communities work, how to contribute to projects, the benefits of working with open source, how to make a career out of open source work and such. Trying to explore open source is pretty much the best decision I had made all year!
Suggestions: Don't get intimidated by open source, these projects are extremely welcoming and require help from contributors. Don't get scared of the fact that there are many repositories that you cannot contribute to due to your skill, there will ALWAYS be projects that you can contribute to no matter your skill level. So start contributing to open source today! This is the best decision you can ever take in tech!
Cloud Native
Once my GSoC period was over in September, and I had more time on my hand, I started looking into other opensource projects to contribute to, since I had also thought about exploring DevOps and Cloud as one of my goals, decided to start looking for opensource projects that belonged to these fields.
Through this, I stumbled upon the CNCF landscape, which included a huge amount of cloud native projects and organizations under its banner and then started to look into these to get started with contributing and learning more about DevOps, Cloud and container management.
I quickly realized that Golang was the native language here, hence ended up spending time learning it. Though I'm still not amazing at it, I have my fundamentals clear and have worked on some quite decent Go based projects to further improve my understanding of the language.
I then started contributing to various of these projects and it has been such an amazing learning experience so far!
Since I was already working on DevOps based tools, I decided to learn about DevOps as well, this took up a lot of time but was finally able to become comfortable with its concepts and started my chapter as a DevOps engineer as well!
If you want to start exploring DevOps as well, you could go through the blog here to get started.
Learnings: I ended up learning an entire tech stack that I had no idea about, ranging from Golang to CI/CD to K8s, the entire DevOps toolkit, or at least some of the major tools used at best. Moreover, these communities are one of the most active communities I have seen anywhere.
Suggestions: Don't try to do a lot of things at once, that way you won't be able to give much time to one single thing anyways. Also whenever learning something new in tech, make sure you place your focus on working on that thing practically. There is nothing better than learning by doing. Though the existing projects here are just humongous in size, they are pretty easy to get started with, so don't hesitate!
Internship Offer
During the summer while my GSoC contribution period was going on, I had also been applying to a large number of companies for internship offers for the summer of 2023.
Most of my applications were getting rejected and I wasn't hearing back from any high profile companies at all.
After so many rejections, at one point, I had thought that I should just stop applying at all since it wouldn't make any difference anyways, but I didn't stop.
I just don't like giving up, it doesn't matter what all I have to face, giving up on something that I have set my mind on will NEVER happen, no matter how many times I fail, I'll get up again and keep working till I get whatever it is I'm aiming at.
So I continued applying to all these companies and then one day, suddenly, out of the blue, I get the mail that I have been shortlisted in their Online Assessment (OA) round and that I had my interview scheduled two days from then!
I dropped everything I was doing and started practising DSA questions specific to that company and going over my projects as well as other topics such as OOPS, DBMS, OS, Networking etc.
Had a few rounds of interviews after which I was finally able to get the offer!
Learnings: Never give up! I don't have a problem at all if this is the only single piece of advice you take away from this blog. This knowledge is more than enough to help you achieve your dreams anyways! Also in general for interviews, I learnt a lot about how giving a high stakes interview feels like, how to handle anxiety, how to convey your thought properly in an ordered manner quickly etc. Also that it's pretty important to be versed in DSA, development as well as core topics such as OS, DBMS etc. Also learnt various other interview tips and tricks!
Suggestions: Never give up! I cannot stress this enough, this is the single most important piece of advice one can get. Other than that, be confident in your skills and practice them by solving problems and building projects. Try to give as many interviews as you can, this will help remove the anxiety you get during the interview. Don't take rejection to heart, improve yourself in those areas that you failed in.
Blogging
Since I had gotten an amazing internship offer already, I had so much more time on my plate that I was looking into productive things that I could invest my time into instead of wasting it.
The first thing that came to my mind was that I could finally start my blogging journey with proper consistency at this point!
So I started going through what would an ideal platform for writing my blogs would be, after much discussion and looking into the pros and cons I decided upon, you guessed it, Hashnode!
It's yet not been too long since I started writing on here, but I must say, for some reason that I have yet been unable to pinpoint, I love writing on here! The platform is already aimed towards technical content writers and the features it offers are all amazing to use and helpful!
A point that I've made to myself in terms of technical resources is that I aim to create resources that I WISH I had when I had started learning about that technology or tool.
Hoping to stay consistent for the time to come as well!
Learnings: I have just recently started with it so I'm still learning a lot of things, but I've mostly picked up the importance of consistency, having quality content and creating a following that finds your content worth consuming. Don't get disheartened if your content doesn't get a lot of views or such and instead, move beyond the metrics!
Suggestions: I suppose every person in tech at some point or the other should try to blog, this helps in building your network, sharing knowledge and improving your reach for various opportunities as well. Try to stay consistent, but don't ever FORCE yourself to write because you have to. It's better to not put out content than to put out content you're not satisfied with.
Hacktoberfest
I participated in Hacktoberfest again this year, but this year along with appearing as a contributor I also appeared as a maintainer of two repositories that I had set up and open sourced for beginners to work on and contribute to!
Over a month, I merged over 50 Pull Requests from new contributors of varying difficulties, of which many continued to contribute to the project even after the month was over!
Learnings: As this time I was participating more as a mentor than a contributor, I got to see a completely different side of open source, people that run these communities also need to be quite skilled in how they do it, it gets extremely hectic now and then when a lot of people are working on your project and you need to manage everything.
Suggestions: If you're interested in community management or management in general, you should try being a maintainer of a community, you might end up liking it a lot, I am more of a problem solver and hence prefer working on the project more than actually managing everyone. I suppose I won't be acting as a maintainer again but still was an amazing experience nonetheless! I still suggest everyone participate in Hacktoberfest though!
Hackathons and Events
Over the year I've also participated in various hackathons as well, the most notable one being the Smart India Hackathon (SIH) which is a yearly nationwide hackathon that is conducted under the mentorship of various technical and government based institutions in India such as Ministry of Defense, Ministry of Education, ISRO etc, it is hosted by the Government of India!
I too had participated in this prestigious hackathon with my team and was ranked first in our regionals! Though we were still rejected from the finals.
Am taking part in the Google Cloud event this year as well, this time with more focus and knowledge so much so that I'm able to learn about cloud platforms at a much better level.
Apart from that, as a Core Team member of the GDSC in our institute, I've helped organized as well as spoken at and hosted various sessions for the students and interested people ranging from events and topics like, Flutter Festivals (Dart and Flutter), DevTalks (Talk shows for developers), 30 Days of Google Cloud (GCP), Compose Camp (Jetpack Compose), Mock GSoC (GSoC mentorship program) etc.
We're also holding a DevFest in our city in the coming weeks as well!
Learnings: I learnt a lot about the power of networking, giving public talks, tech event management and managing a team that too under a lot of pressure as well as how to remove stage fright. The hackathons also taught me about picking the correct person for the job, the importance of managing time and deadlines as well as ensuring that your entire team can work together without any issues.
Suggestions: Again, I'd suggest people participate in as many hackathons as possible, they serve as a way to test your skills against others and most importantly incentivise working on projects that you can later put on your resume as well. People should also try holding and/or speaking at tech events at least once, who knows, maybe you turn out to be an amazing speaker! You'll never know until you try, and at the very least they help build your confidence a lot!
Achievements
I have pretty much completed all my goals (Goal #1 to #4) that I had set for myself last year and have also learnt a lot of other things as well!
I explored open source in depth and have become an active part of the community as well, have also transitioned to a promotor of open source as well and am looking forward to creating my community!
I have also explored DevOps in depth now, learnt Golang and various other tools and technologies, and also got involved with contributing to their open source communities as well.
Bagged an amazing internship offer for next summer that will again help me learn a lot about how the corporate tech world works and operates, along with a lot of things that you cannot learn as an individual developer.
Participated in various hackathons and challenges such as SIH and Solution Challenge that taught me just how far tech can reach, and how a developer can have an everlasting effect on the world and its residents. Also learnt about things such as how to manage a team, how to ensure timely work, have everyone work together and on the same page etc.
Finally started my blog and I hope to continue working on for the foreseeable future as well to share my knowledge with others.
Goals for 2023
A major part of my focus in the coming year would be on becoming a content creator instead of just a consumer, would also be looking at building my network and connecting with more amazing people.
Will also be focussing on bagging better career opportunity offers.
Might also consider starting freelancing as well!
As for upskilling myself, I don't ever have a goal regarding that, as that is something that I need to do anyways, it's something that I always have my eyes on and am working towards.