DEV Community

Cover image for Dev Wrap 2024
Ďēv Šhãh 🥑
Ďēv Šhãh 🥑

Posted on • Edited on

Dev Wrap 2024

Introduction

Whats up everyone! This blog is about the technologies I learnt and activities I did this year. It is kind of a year in review, developer version 2024. The whole blog is divided into three parts. Each part contains the review of 4 months because I was still a student till this year. Therefore, it is easy to put my learnings per semester. Hence, I learnt most of the skills as part of my school courses.


TL;DR

I did the following this year. I,

  • learnt 80%-90% technical skills that I currently have
  • worked at the following places:
    • Lab Assistant, Seneca Polytechnic
    • Software Developer, Seneca Applied Research
    • Web Developer Intern, Three of Cups
  • graduated from Seneca Polytechnic with an Advanced Diploma in Computer Programming and Analysis
  • started blogging at Dev.to and creating tech videos on YouTube
  • started attending tech events in Toronto
  • started learning Retrieval-Augmented Generation
  • got active on Twitter

January to April

I started the year by learning Test Driven Development, followed by building CI/CD Pipelines, Docker, Docker Compose, Container Registry and various AWS Services including AWS Cognito, EC2 Instance, ECS, ECR, DynamoDB and S3 Bucket through the course Cloud Computing for Programmers. Additionally, I challenged myself to complete most of the coding for this course using vim. Simultaneously, in the course Application Development, I learnt, Java, JavaFX, FXML and built several desktop application using these technologies and Eclipse. Besides, in the same semester, I learnt Bash through the course UNIX Bash Scripting. Further, I used this skill to add automations for several workflows of my projects.

Moreover, it was also the starting of the year, when I started my 2nd tech job after my co-op. I started working as a Software Developer for Seneca Applied Research. The job was started for 20 hours per week. Apart from being a Software Developer, I also started working as Lab Assistant for IPC 144, that is, Introduction to programming using C for School of Computer Programming and Analysis at Seneca Polytechnic. I use to assistant professor in teaching students C by solving student’s queries, evaluating their quiz performance and finally providing them with the right answer along with the logical explanation. I only chose 1 lab session; hence, I use to work 1.75 hours per week as a Lab Assistant. Lastly, I published my first blog on Dev.to on 18th Jan 2024 and then I kept writing.

In April, I also got an offer to working on MVP project by a startup, Three of Cups for few weeks as an intern with a good enough compensation. My primary responsibility was to work on Frontend of the application.


May to August

Firstly, in May, I moved to a personal room which helped me explore a lot of things in peace. Plus, for the very first time, I got a three monitor display for myself. Before this I only had a two monitor display.

Desk Setup

As a result of this provacy, I also started a YouTube channel, with the name Dev The Dev, where I create tech related videos and as of now (23rd December 2024; 12:53 PM), I have uploaded 15 videos.

Moving forward to the last semester of my program, it started with learning Azure services through the course Introduction to Microsoft Technologies. This course is designed to prepare students for AZ 900. Therefore, everything about it was taught including hands on labs including creating several VMs. The final project was to create a Load Balancer using Azure services. Following is the video to the project, in case you want to check that out.

Furthermore, for the first time, I studied mobile application development through a course. It was a cross platform app development course; hence it taught technologies like C# with Xamarin and Ionic with Angular. I also build several mobile applications as part of the assignment of this course.

Apart from school projects, I also developed a couple of Terminal based projects like, static and interactive. For the static resume, you can write curl -Ls cli.shahtech.info in your terminal and it returns my resume content. Besides, for the interactive one, you can write bash <(curl -Ls bash.shahtech.info) in your terminal and it starts in interactive, Linux like terminal in which you can enter commands to walk through various sections of my resume. Here is a video demonstration of how it works.

Since, I was going to graduate soon, was looking for a job and was not getting any interviews, a friend recommended my to learn Flutter. Hence, I tried learning the basics of Flutter and also wrote a couple of blogs explaining Flutter from a Web Developer's POV. However; after working on a couple of projects, to be honest, it did not spiked my interest. Therefore, naturally, I did not feel to continue. Nonetheless, because of the learning, I can still work on Flutter if required.

Also, this was the time when I installed and started using my first Linux distro that was Ubuntu as my side Operating System. I use to make sure that I use Ubuntu for daily operations; nonetheless, I could not kept doing it because, when in an online meeting and sharing screen, it use to lag for the viewers. Plus there was a course for which the software required, did not support Linux. But overall, it is always a great experience using Linux distros as it becomes easy to use Linux commands directly into the terminal; besides having a clean layout.

Lastly, if you remember that I started working at Seneca Applied Research for 20 hours per week; but they were increased to 24 hours per week from May. This was also one of the reason that I could not work as a Lab Assistant this semester because Seneca has a rule that in total you cannot work for more than 24 hours on campus; which is fair because this gives everyone equal opportunity to work on campus.

Finally, by the end of this semester, I started attending tech events and meet ups happening in Toronto. The first event which I attended was a talk on LangChain by Rishab organized by Google Developers Group Toronto. This ended up to be a good decision because this triggered the curiousness in me to learn more about AI related technologies. After that, I attended more such events organized by Microsoft Reactor, TorontoJS, GDG Toronto etc.

Since it was my last semester, I graduated in August with Advanced Diploma in Computer Programming and Analysis from Seneca Polytechnic with honors and 3.8 GPA. This was my 2nd diploma after Diploma in Electrical Engineering from The Maharaja Sayajirao University of Baroda.


September to December

After I graduated, while I was still looking for Full Time opportunities, Seneca Applied Research was kind enough to offer me to work for 2 months months for 35 hours per week. Thus, I got 2 more months to get the job. While working at Seneca, my work did not need me to go to the office. However, I still tried to go to Seneca's employee lounge to work and it was really great experience. I use to sit at a bright desk and have coffee and protein bars all the day. Working for these really helped me increase my productivity. Plus, I use to talk to Seneca from my place.

It was hard to say good bye to Seneca Applied Research in October. But they gave me a great experience working on a POC. I use to apply all the good practices I learnt at school, on the project. Due to this, I got hands on practices with various technologies like TDD, CI/CD, Docker etc. Besides, I had a wonderful team to work with.

In the last week of October, I also had my convocation which was awesome. Everyone were asking same question to one another, that is, "Did you get a job?", 99.99% of the replies were "No!!" with a huge sadness and so was I.

Although I was applying for jobs online, I also started attending more tech events and meet up to expand my network. Besides, I also got to learn more about AI related technologies. This was the time when I participated in my very first hackathon which was organized by Twilio and Microsoft Reactor where we had to develop project leveraging AI functionalities. There was a project plan but due to some reasons, I was not able to implement the project. However, as I said before that the LangChain talk which I attended triggered my interest in AI related technologies, I already had an application, 'Content Driven LLM APIs', which can generated knowledge-based responses leveraging existing LLM models.

Hence, I decided to present that application. Of course, I did not win, but a great thing happened on that day was that I got to present my application in front of audience at Microsoft Canada headquarters. Due to this I got the confidence in public speaking. I realized that I could present and speak about the project if the project is something that fascinates me vs school project presentation. I always wanted to do this, that is, present or deliver a talk at meetups about the trending technology. This hackathon helped me get confidence for it.

Nevertheless, by this time I was still using Node.js, LLM's API and PostgreSQL to develop this project. I still never touched LangChain, Vector DB, etc. During this time, I saw Nvidia's course on Retrieval Augmented Generation. Although I know a few things about RAG, I still decided to do the course. It was a right decision to do so, since I learnt about procedures involved in RAG, more in depth. Further, as a reflection to this course and some of my personal learnings, I wrote a series of blog posts on Exploring RAG which contains 7 blogs, covering various areas of RAG.

Later on, I realized that if I want to keep working on such AI application and learn more about them in detail, I should start building them using Python instead of sticking with JavaScript. Besides, a few posting which I saw for such technologies, had Python as their primary requirements. Therefore, I started working on RAG applications using Python. Initially, I saw a couple of tutorials from FreeCodeCamp's YouTube channel to learn about it. Later on, I started developing applications on my own which included technologies like LangChain, OpenAI's API, Gemini's API, FAISS, pgvector etc. I also worked on updating the application 'Content Driven LLM APIs' which was initially using Node.js, Gemini's API and PostgreSQL to using Flask, LangChain, Gemini's API and PGVector.

Content Driven LLM API's System Design

Besides this application, I am also developing other LLM powered applications like LLM-Powered Resume Optimizer and YouTuber's Assistant.

Moreover, as you would have observed, by this time I started using twitter/X actively, where I use to twitter about my projects, videos, experiences and trending technologies. Additionally, I also got more than 2000 total views on my blogs. As of now (23rd December 2024; 12:53 PM), I have total 2305 views and 27 blogs published.

I also uploaded a very first tutorial video on my YouTube channel which teaches how to integrate pgvector's docker image with langchain project.

By the end of the November, I was still looking for the job, when I was again contacted by Three of Cups as they were looking for a Full Stack Developer. Since I already worked with them and was also in contact with them, they approached me for the opportunity. Further, in couple of days I was interviewed and they offered me to work with them. Although, this was not a Permanent Full Time opportunity, but 1 month of Contract Part Time work, I was really excited to get on board again because I already knew the product and it involved Blockchain and Web 3 related technologies. I really felt grateful for the opportunity and started working with the amazing team from 2nd of December 2024.


Final Words

In conclusion, if I look back, this year I learnt 80 to 90% skills that I currently have. Looking back myself to last year, I feel so dumb because I only knew frontend perfectly, especially React. I had no signification work in the area of backend. If I go back to last year's Dev and tell him that next year, you would be attending various tech events, creating tech content, leveraging AI functionalities in your applications, he would not have believed this. Someone told me that if you dont feel dumb looking yourself a year back, you have not progressed.

Hence, I guess this year was a significant learning curve for me. I wish that next year's Dev feels that this year's Dev is dumb too. Let me know if you feel the same way, looking yourself a year back.

Lastly, here is the tech I am focusing on next year!

Top comments (0)