Blog

Welcome to my blog. I write about web development, engineering challenges, and my journey building software. I learn by building, and I use this space to document the technical hurdles I overcome along the way.

3 min read

React at its Core: Components, State, and the Re-render

When you first learn React, the ecosystem feels overwhelming. You immediately hear about custom hooks, context providers, the virtual DOM, and strict mode. But if you strip all the complex jargon away, React is actually incredibly simple.

ReactJavaScriptWeb DevelopmentFrontend DevelopmentProgramming
4 min read

HTTP Status Codes: Exactly What to Return and When

I used to just use two status codes for my website, which were 200 and 500. If the request worked, I sent a 200. If my code crashed, I sent a 500. But later, I realized the importance of using correct status codes.

Web DevelopmentProgrammingSoftware EngineeringBackendAPI
3 min read

Statically Typed vs. Dynamically Typed: What is the Difference?

If you learned to code with JavaScript or Python, you are used to creating variables without thinking too much about what kind of data they hold. If you started with Java or C++, you know you have to declare exactly what type of data every single variable will store before you even run the code.

Computer ScienceProgrammingTypescriptJavaScriptSoftware Engineering
4 min read

Compiled, Interpreted, and Just-In-Time: How Code Runs

Everyone learns the basic difference between compiled and interpreted languages early on. I understood that part fine, but I was always confused about where Just-In-Time (JIT) compilation fit in. I used to think a JIT was just a slightly faster interpreter, and I thought JavaScript was purely interpreted.

JavaScriptProgrammingWeb DevelopmentNodejsSoftware Engineering
5 min read

JS Concepts Part 1: Synchronous vs Asynchronous JavaScript

Web development has moved far beyond simple static pages, and mastering asynchronous JavaScript is the reason why modern applications feel so fast. Because JavaScript is naturally single-threaded, it can only execute one command at a time.

JavaScriptWeb DevelopmentFront End DevelopmentNodejsProgramming
5 min read

JS Concepts Part 2: Closures and Lexical Scope

Web development has grown more complex than just writing simple scripts, and mastering closures is a big reason why large-scale applications can manage data securely. Learn how lexical scope works and how to handle private variables.

Web DevelopmentJavaScriptFront End DevelopmentNodejsProgramming
3 min read

JS Concepts Part 3: Fetch vs. Axios

Every time you build a web application, you have to get data from a backend server. In JavaScript, you usually have two choices to do this. You can use the native fetch API that comes with the browser, or you can install a third-party package called Axios.

JavaScriptWeb DevelopmentProgrammingFront End DevelopmentReact
3 min read

Your website is boring and AI is to blame

If you spend any time looking at new startups or portfolios lately, you probably noticed something really annoying. Every single website looks exactly the same. AI is doing all the heavy lifting for web design now, and it's killing creativity on the internet.

AIWeb DevelopmentUISoftware EngineeringFront End Development
2 min read

Confused by Breakpoints? A Junior Dev’s Guide to Tailwind CSS

Responsive design always seemed simple to me until I started using Tailwind seriously and unprefixed classes felt messy. Here is a breakdown of how sm, md, and lg actually work, and how to master the mobile-first approach.

Web DevelopmentTailwind CssFrontend DevelopmentCSSResponsive Design

More articles coming soon...