My Software Journey in 2024
17/1/2024 •297 views •8 min read
Around this time last year I had published this blog which also happened to be my last blog. It contained my raw thoughts on the technologies I knew and wanted to learn in 2023.
Before starting with 2024, let's see which points/technologies I had chance to try out.
2023
-
React. This one shouldn't be a surprise, every other project uses React. Although, I did get to work with the infamous RSC for my personal projects.
-
Next.JS. Shouldn't be surprise either. Worked with the RSC and app directory.
-
Mobx. I use it every day at work for production projects. Love the simplicity.
-
Javascript/Typescript/Node. Every day at work.
-
Tailwind. My go to for styling every personal projects.
-
Nativebase. I use it every day at work for production projects.
-
Testing: Cypress and Percy. Got to work with Cypress to implement E2E flows and UI testing with Percy.
-
Go. Go wasn't in the prev list, I picked it up around Nov last year and absolutely loving it.
-
Rust. Started learning Rust around September last year. Wrote rust for solving advent of code problems.
Projects that I built in 2023:
- Added new features in the Feedly extension I made for Raycast
- Built First "Craft" using CSS
- Released "Delete shorts from YT" browser extension
- Added Chezmoi completions to oh-my-bash
- Built CX, A URL shortner in Go
- Built X, A CLI Bookmarks manager in Go
2024
This year I am more interested in learning about the paradigms, patterns, methodology, working of a technology rather than learning the frameworks themselves.
Gonna stick to 1-2 languages and their frameworks. But would be open to try out new tech stuff.
Languages:
-
Typescript/Javascript. Would continue using TS/JS without any doubt. For this year, I'd try to improve my TS types knowledge by trying Type challenges.
-
Node/Bun. Already started to switch from Bun to Node in personal projects, and started to you Bun for writing scripts.
-
Go. I really want to learn a low language this year, gave Go a try recently and I am abosultey loving it. This language is easier than Python yet packs so much. Definetly would be my go to language for backend related stuff.
-
Rust. As of now, Rust is my "advent-of-code" language, I haven't found my usecase of Rust other than building Tauri Apps. I'd probably use Rust to solve DSA-ish problems and build Tauri Apps or in a very rare case contribute to OSS project.
-
CSS. I really thought I knew CSS until I saw these tweets from Jhey, James and Nev. Trying to reproduce these effects and learning about these CSS properties would be on my list.
-
HTML. Explore the Canvas and the SVG elements more. The above CSS tweets use canvas and svg elements extensively.
-
Python. I call Python my GPT language, sure I can write scripts using python but I do not want to. The only reason I use python is to visualize charts for some data. And I'll often create a notebook and use GPT to help me achieve it.
Frontend Frameworks:
I am gonna stick with React and Svelte but open to try other frameworks.
-
React/Next.JS. Would continue to work on only because it's needed at work. Kinda lost interest in React after all the new RSC stuff.
-
Svelte/Svelte-kit. Would be my go to choice for FE from now on for personal projects.
-
Framer Motion. Really want to get into building micro/macro animations on the web using framer motion, the only other reason to continue using React.
-
React Native. The whole native ecosystem is quite overwhelming for me. I can build basic RN apps with screens and navigation, not sure if I'd try more of this stuff in this year.
Backend:
I have been interested in diving deep in the backend for a while. The backend I know as of now is to be able build a web server using Express, creating routes, middlewares and REST endpoints.
People like Hussein, Aaron, Arpit and Alex would be my go to learn BE, DB, System Design and Networking related stuff.
Do not have any particular frameworks in mind for BE. Probably gonna follow Roadmap.sh for BE.
-
Fiber. Fiber is web framework for Go inspired by Express. This would be my go to to implement any server in Go.
-
Gorm. Gorm is data modelling for Go, I'd be using it model Database schemas
Databases:
I know very little knowledge about DBs, I can write simple CRUD queries, perform joins, create basic normalized modals. But, can I write better queries, performant and fast queries? Nope.
DBs is a vast topic with dedicated Database engineers, I do not aim to be that. My aim is to be able to write and understand day-to-day topics that a typical BE engineer in a mid sized company would do.
-
SQL. PostgreSQL/MySQL, dive a bit deeper on the topics I know now and want to explore.
-
Redis. Kinda have gist of it, it's a hashmap, want to try out it's practical usecases.
-
NoSQL. I have worked with Firebase and tried Mongo. Not necessarily anything particular I am trying to look for this year.
DevOps:
Not really a devops fan. If I can automate a task by deploying it on a cloud machine, you have my attention.
- Docker. I had followed docker tutorials from YT and have a basic gist of what it's capable of. Now I want to try it out by actually dockerzing a simple project and deploying it somewhere.
AI/LLMs:
LLMs and the products that utilize them are definetly here to stay.
I am not really into training models and customizing the params. Rather, I am interested into using the existing models and creating useful tools.
Probably be on the lookout for interesting models on HuggingFace, Replicate.
System Design
Don't really know much on this, follow ByteByteGo and other SD channels to understand basic principles of building apps.
Role related things
For the more SE related things, I've already started reading this book by Gergely.
Other things
Well, I might not get to try everything I mentioned above, or I might try things that are not mentioned here. You never know.