Dev Retro 2022: Year for grabbing opportunities
The year made me from a shy to a confident developer. Grabbed opportunities for internships and made the most of them. Learned a ton of stuff.
Introduction
Well, what a year! If 2021 was a start, 2022 was a year to convert a start into a goal. From collaborating on open-source projects to getting an internship, it was an exciting year! Created a couple dozen of projects(not finished as usual), wrote 40+ articles, did a couple of streams, learned the basics of golang, and spend 6 months as a backend dev intern at Solarlabs, just a year that was awaited for the hard work over the span of 2 years.
This was a year, where I did things that were above my expectations, did an internship with college side by side for 6 months, started to stream on twitch(2 streams :),
Some technical things I did and learned in 2022:
Markata and blog revamp
Learned basics of Docker
Django Rest Framework Project and Django Basics completed 4 articles
Podevcast(hashnode/netlify hackathon)
Web App from scratch - django collaboration with mark gibney
Daily.dev hackathon - bookmark CLI runner up
100 days of golang init 13 articles in April
Django deployment (Heroku, railway, nixpacks) articles
Switched from Windows 7 to Ubuntu
Bought meetgor.com and started applying for an internship
Ding 3 rounds of interviews got in at SolarLabs!
Learned Flask, pytests, drf, in the process of internship assignments at other companies
Switched to Lua config in Neovim with LSP
Created lots of projects(vacation) dj-notes, aptui, rattlesnake, django mermaid
HTMX with django, golang learning with Graphql, and REST API
Picking up with neovim plugins for django, markrunner, black snipper
deepgram and steampipe contribution at hacktoberfest
Djankata, pykyll and some other contributions to golang
Revamped APTUI with textual 2.0
Devjournal with pykyll (bare bones ssg in python)
All in all, golang and python deep dives this year with tons of projects and django huge learning experience at the internship.
How did it start?
The start was exciting and full of expectations due to a great start in 2021. I wrote around 80 articles starting almost halfway through the year. Also started to learn Django and shell scripting. With that knowledge, I created dozens of projects like web apps for silly games, portfolios, newsletters, and shell scripts for web scrapping and framework setups. I kept on with the pace and wrote articles and made projects.
I got a collaboration on an awesome open-source project [web-app-from-scratch](https://github.com/no-gravity/web_app_from_scratch) for a docker image for setting up Django from scratch. That was a great learning experience as I didn't know docker and in February 2022 was using Windows 7 back then, bad old days. I researched and got docker up and running on a cloud instance and learned the basics of docker.
Switch from Windows to Linux
In May came a turning point for good, had to forcefully switch to Linux! I was under a ransomware attack due to the security vulnerability of windows 7 and had messed up all the files on the system. I had to completely wipe out the system and installed fresh ubuntu 22.04 on 14th May. Things changed and I was happy than ever to use my system. Thanks to that virus(xcvf ransomware virus) and natural instincts.
I loved to code in the terminal, I have been using termux in lockdown which is a Linux-like terminal emulator for android. I learned the basics of bash and Linux commands with that and it was becoming my second nature to use Linux commands, so using windows was really frustrating. The incident happened at a good time and was able to switch from windows 7 to ubuntu.
Setup Vim, tmux, and custom aliases was a great productive environment for me compared to windows. It changed the speed and mindset of my programming world.
Started learning golang
I started to learn golang at the end of March and created a 100-day golang series on April 1st. It was not consecutive days you know, so it still looms around 25 days. It looks a lot less than I expected. Still, I feel really confident in writing golang, so much so that I decided to do the advent of code in golang this year.
I completed around 13 articles in the month of April and then due to end-semester things getting in the way, was not able to keep a consecutive streak. Still, each week, I tried to write an article. And I have just 25 articles till now. It does not mean I did not learn golang, without writing any articles, I have a couple of projects on golang for creating bare-bones REST APIs and also a bit of GraphQL with DB connections. I haven't got a good amount of time to write detailed articles about them in a while, so maybe January is the time. I would like to complete 100 articles in the first quarter of 2023 that's the plan or at least the basics of web development with golang(backend of course).
It was a fantastic learning experience by creating examples, and snippets and playing with some low-level stuff in the language.
Applied for internships
At the end of May, that is when my exams were ending, I started to apply for internships targeting a backend(Django stack) for maybe 3-6 months. And it was a sad time in the first few weeks. I got a few offers talking but ended in rejection as I was not able to work full-time :( That hurts after doing some assignments and an interview.
TheSolarLabs Internship
It all went on for 3 weeks, until the morning on 27 June, I read the application as "Rejected" to SolarLabs. Anyone would have lost hope there, and so did I. And to anyone's surprise or credit for their blunder, I got a call from them for scheduling an interview! I am not making this up, the portal still says "rejected" and in the chats, it asks for a resume! Some nervous times.
After 3 days of interviews, I finally got the offer letter of confirmation. For 6 months and a good bit of stipend. It was my preferred Django stack, with some unknown grounds of the Django rest framework. I realized rather quickly in the first interview itself, I need to get some DRF stuff up! There was a lot of stuff to learn that I didn't know existed, I was baffled by how great was DRF then. That's the first bit of learning from the interview itself, it showed, how much there is to learn.
Soon after the onboarding process and getting a bit familiar with the designing product, I was presented with the code repository and time to get familiarity and set up the system (python3.7, postman, editor, etc). There came the first task soon in the following week. it looked doable and indeed just a matter of time to get familiarity with the problem statement. it was a task for fetching some data from weather API and store in a specific format.
As the days passed, I was introduced to the tech scrum, like a daily update for the tas done yesterday and todo today. It was really new to me, I have never heard of such systems but realized it might be a development process. Soon college started and it was a mess thereafter. had to balance college attendance and attend scrum with clashing times sometimes. But to date got off with the semesters.
Key takeaways from the internship
I don't want to get into all the details of the internship tasks but here's a summary of what I learned in a gist.
Django Rest Framework viewsets, routers, and actions
Django Signals, Admin section, API designs in a better way
Azure (some specific things like function deployment, config, sas tokens, pipelines, python SDK, etc.)
SQL ( got some good practice on joins and nested queries)
ERP technology(erpnext and python setup)
JWT tokens set up in Django
Process for designing API from scratch for a given feature
Cashfree and Stripe integration in Django
Dockerfile and buildkit specific features
Learning Constantly
Currently in a hope of continuing the internship as I have thoroughly enjoyed working here and it has been a great learning experience. But one thing was really important this year again, to not stop learning and building. Don't mind if the idea is small or useless, just building the project and overcoming the entry barrier for learning the technology has been the quote for everything in my developer journey.
When your mind feels lost, letting it free and driving new places strikes a inspriation for another take off, don't run, enjoy the walk, it's a marathon not a sprint.
Building projects which are useless or not making sense to anybody might be a different thing but what it means to yourself matters the most. There might be instances where you might be failing, not having any ideas, burnout, imposter syndrome, and some other fuzzy words in tech. These situations are meant to improve you in one or the other way, If you run out of ideas, just take a break, look at your personal state and hobbies besides programming and get some inspiration from other fields and apply them in the programming world were some lessons I learned in some rough times during the year.
There will be or rather should be times when you feel down or lose inspiration, these times drive the minds in different directions as programming can be a bit draining and one can quickly lose motivation if there are no results straight away.
Hard work takes time to turn into results, patience and actions are the key.
I had a hobby for writing, I had written a novel(maybe not a novel it's not that big) when I was in 8th grade, and had a ton of ideas for stories but was stuck with the hypothetical thing called the perfection of time, plot, and ideas. I watched a youtube video about writing and it just fascinated me to write again, and it began. I started to write my novel which is handwritten into an ebook. I was consistent for a few days but things got wild and were moved away from it. The new year will be the perfect free time to go for it and at least have one fiction novel to my name.
I am also reading fantasy novels, I have read Elantris and am in mid of reading Mistborn. I have been enjoying reading and writing as a programmer, but want to get into fantasy as well. It is so exciting and fascinating as a human to fly with creativity. I am grateful to have eyes and a healthy mind to read and see the beauty of the world.
Hits and Misses in 2022
There were a few pullbacks in 2022 for me, if there are good times, one must be prepared for bad ones it seemed. The worst thing about bad times is that you sometimes don't realize that you are in one. I had almost the same count of articles compared to the previous year comparing a whole year to half the year(I started blogging in June 2022).
Unable to write out words
Feeling exhausted and anxious sometimes
Not able to communicate properly with mentors
Sometimes, college and working on internship tasks clash badly
addicted to solving a problem and can't focus on other things(maybe a good thing sometimes)
Tech list for 2023
Golang deep dive with projects and open-source contributions
Machine Learning (Tensorflow python and Keras)
Kafka
Kubernetes and Microservices
AoC with Rust
So, these are some of the technologies I will try to learn in 2023. I have a basic knowledge of golang, but I will like to get into the specific things golang is used for like concurrency and channels. I have been wanting to learn machine learning with projects, and this year I am serious about it, I have a couple of ideas for web apps with ML, and will try to get it up and rolling.
Some specific technologies I want to learn to include Kafka for data pipelines and streams. Some deployment tools like Kubernetes but before that, I will be learning a bit more about docker networking.
This year I did AoC with golang, to complete all 25 days, but did around 12 days. Still will be trying to solve this over the month. Next year, I will be trying AoC in Rust. I love low-level programming languages, go is great but rust is extreme.
Conclusion
So, that's a wrap for 2022. A great year for learning a lot of stuff. Hopefully, the next year will be a better one. More collaboration and more opportunities. I am grateful to so many people who came into my life and have played important roles for me to develop into a backend developer and even a human. My mentors and colleagues, real-life and Twitter friends, and GitHub collaborators. I would have not reached here if I would have not met any one of them. Thank you. May you too have a great year and life ahead full of opportunities and success.
Happy New Year, Happy Coding :)