What's AnuRock.dev?
It is a platform where I share my expertise, insights, and experiences as a software engineer. The goal is to help fellow developers enhance their productivity, learn effective methods, and grow in their careers.
This website serves as my digital garden where I cultivate ideas, share educational content, and connect with the developer community.
Humble beginnings
I have been creating software professionally for more than 15 years. But my development journey goes back at least four more years.
The first software I wrote was, if memory serves me well, a website I created for my dad's business in 2005, the year I started college. I hosted it on a free subdomain/webspace I had earned as an active member of a community forum.
What got me really hooked to web development was KDE's gallery generator (built into its file explorer) that took in a bunch of selected image files and spit out a beautiful HTML file complete with the necessary CSS and JavaScript. The unlikliest of sources of inspiration, I know. But CSS and JS were a game changer for me.

I am a generalist
I've worked with a good deal of programming languages, frameworks, and libraries. I am easily excited and find it difficult to resist the urge to try new technologies.
During my college days, I started a Linux distribution to channel my overflowing enthusiasm for open-source. But mostly to go deeper in computer operating systems. Other than OSes, that experience taught me a hell lot about DevOps, PHP, and, importantly, solopreneurship.
I started my career as a .NET developer cranking out Microsoft Office add-ins and ASP.NET websites. My love for open-source soon saw me spearhead Java and PHP projects in a very .NET environment (a proprietary walled garden back then). These were the languages I was more comfortable in, stuff I had picked up during my student days. At the dawn of full-stack JavaScript, I fully embraced JS as a first-class programming language and became its advocate.
When Ionic Framework was still in its infancy, I was spinning out mobile apps for internal clients. Migrating a fully-functional web app from AngularJS to Angular 2 (beta) was an adventure of a lifetime! Less than a year after React was publicly released, with a state management pattern called Flux, I was teaching a class full of college graduates to build an enterprise CRM end-to-end in JS (React + Node.js).
I became a Flutter fan early on and established a center of excellence at a large digital consulting firm to promote it as a viable mobile SDK. This website was first created as a weekend project in Astro the day it turned v1.
I've also dabbled in Ruby, Rails (my first love in the world of opinionated frameworks), and Python.
All that to say my profession is not defined by a particular language or tech stack.
My software development philosophy
I subscribe to the jack of all trades (and master of [n]one) philosophy. Some people call it the T-shaped profile. I strongly believe that to succeed in the ever-changing tech landscape of today, a software developer must constantly learn and unlearn skills as demanded by work at hand.
Languages and frameworks are spanners and pliers in an ever-evolving toolkit. There's no point tying your self-worth to a specific tool. Let that sink in.
My mantra to learn rapidly and effectively is to master the 20% of a skill that will account for 80% of my application's codebase (Pareto Principle).
By applying the 20% method of learning, I can be productive in any skill in less than a week. Time gained by focusing on fewer (but important) concepts allows me to jump into development early. Mastering best practices takes time, so I remain consciously curious about aspects like performance, security, and automated testing from day 1.
This approach has enabled me to quickly adapt to new technologies and projects throughout my career, making me effective across different domains.
The key lesson of software engineering
Software engineering is much bigger and harder than coding.
Wait! Aren't coding, programming, development, and engineering one and the same? They are not.
Software engineering is programming integrated over time. If you accept this distinction, it also becomes clear that we might need to delineate between programming tasks (development) and software engineering tasks (development, modificiation, maintenance). - Software Engineering at Google
What does it mean for you as a software developer?
It means that writing code is just the first step toward creating a software that works.
To create a software that will work for years to come, itβs imperitive to widen your view of engineering to encompass other equally important aspects like automated tests, code reviews, version control, code style, and security.
These are things that a shockingly vast majority of us do not care about, have not been exposed to, or simply take for granted. "Oh, somebody else will surely take care of them. My job is to write code, fast." Sorry to disappoint: that somebody is you.
My Work
Throughout my career, I've worked on a diverse range of projects and shared my knowledge through various mediums:
Software Development
Building scalable, maintainable applications across different technology stacks and domains.
Videos
Educational content that covers programming concepts, productivity tips, and career advice.
Blog
Articles, tutorials, and insights on software development, productivity, and learning.
Mentoring
Helping other developers grow through coaching, feedback, and knowledge sharing.
Connect with Me
I'm always interested in connecting with fellow developers, sharing knowledge, and collaborating on interesting projects.