TechBlog

Angular Signals and Control Theory: A New Reactivity Model

Published: December 24, 2025 Reading time: 4 min

Angular Signals have changed the way we think about reactivity in the frontend. But if you step outside the world of JavaScript, the concept of a “Signal” has a much older, much deeper history in Control Theory and Electrical Engineering. When we talk about “glitch-free” execution in Angular, we are actually talking about maintaining the integrity of a signal graph. I’ll explore the connection between the physics of signals and the architecture of modern web applications. ...

Continue Reading

Jupyter, ChatGPT, Copilot (Part 3): Real-World Code Examples

Published: December 23, 2025 Reading time: 4 min

Companion resource Companion Project Explore the complete working example on GitHub. github.com/omidfarhang/example-projects/examples/jupyter-blog-starter View on GitHub In the previous parts, we discussed why Jupyter is a “thinking environment.” In this final part, we’ll walk through four concrete scenarios where a notebook outperforms a traditional IDE for a senior engineer. 1. API Archaeology: Mapping the Unknown When you’re dealing with a complex API, you don’t want to build a full client just to see what the data looks like. ...

Continue Reading

Jupyter, ChatGPT, Copilot (Part 2): The Technical Guide to Jupyter Setup

Published: December 23, 2025 Reading time: 4 min

Companion resource Companion Project Explore the complete working example on GitHub. github.com/omidfarhang/example-projects/examples/jupyter-blog-starter View on GitHub The Modern Jupyter Stack For a software engineer, the “standard” way of installing Jupyter (global pip install) is often the wrong way. It leads to dependency hell and “it works on my machine” syndrome. Here is a professional setup guide. 1. Installation & Environment Management The “UV” Way (Recommended) If you haven’t tried uv yet, it’s a lightning-fast Python package manager. It makes managing Jupyter environments trivial. ...

Continue Reading

Jupyter, ChatGPT, Copilot (Part 1): The Strategic Value of Thinking in Notebooks

Published: December 23, 2025 Reading time: 6 min

If you come from a traditional software engineering background (frontend, backend, systems), chances are you’ve seen Project Jupyter everywhere, from notebooks and extensions to cloud platforms, and thought: “This looks huge… but I don’t really see where I fit in.” I had the same confusion. Let’s look at it clearly, using roles, not buzzwords. First: What Jupyter Is Not Jupyter is not: A programming language (unlike R or Python) A replacement for IDEs like VS Code A production development environment A competitor to ChatGPT or Copilot If you try to use it as any of those, it will feel awkward. ...

Continue Reading

ViewChild Angular: Complete Guide to @ViewChild and @ContentChild

Published: September 8, 2024 Reading time: 6 min

Angular’s @ViewChild and @ContentChild decorators provide a powerful way to interact with child components, DOM elements, and projected content within a component’s template. While they are often misunderstood or used interchangeably, each has its own specific purpose and use cases. In this comprehensive guide, we’ll dive deep into both decorators, understanding their differences, use cases, and best practices. Additionally, we’ll explore advanced techniques for leveraging them in various scenarios and edge cases, complete with sample code for hands-on understanding. ...

Continue Reading

The Hidden World of Esoteric Programming Languages

Published: August 13, 2024 Reading time: 10 min

Programming languages are the backbone of the digital world, enabling us to create software that powers everything from our smartphones to space exploration. While most developers are familiar with popular languages like Python, JavaScript, and C++, there’s a fascinating and lesser-known realm of programming languages that exist outside the mainstream. These are known as esoteric programming languages, or “esolangs” for short. Esoteric programming languages are not designed for practical use or efficiency. Instead, they are created as a form of artistic expression, puzzles, or to explore unusual concepts in computer science. Some esolangs challenge the very idea of what a programming language can be, while others are designed to be intentionally difficult to use. In this post, we’ll delve into the hidden world of esoteric programming languages, exploring their history, purpose, and some of the most intriguing examples. ...

Continue Reading

Migrating from REST to GraphQL: A Step-by-Step Guide for Express.js and Angular

Published: August 7, 2024 Reading time: 6 min

In today’s rapidly evolving web development landscape, GraphQL has emerged as a powerful alternative to traditional REST APIs. This blog post will guide you through the process of migrating your Express.js backend and Angular frontend from REST to GraphQL, unlocking the benefits of a more flexible and efficient API architecture. Companion resource Companion Project Explore the complete working example on GitHub. github.com/omidfarhang/example-projects/examples/graphql-express-angular-migration View on GitHub 1. Introduction REST (Representational State Transfer) has been the go-to architectural style for building web APIs for many years. However, GraphQL, developed by Facebook, offers several advantages: ...

Continue Reading

Code Archaeology: Exploring and modernizing legacy systems

Published: July 24, 2024 Reading time: 10 min

In the fast-paced world of software development, we often find ourselves standing on the shoulders of giants – or more accurately, on top of layers upon layers of legacy code. These aging systems, some decades old, continue to power critical infrastructure in industries ranging from finance to healthcare. While they may lack the glamour of cutting-edge technologies, these legacy systems are the bedrock of many organizations, silently processing millions of transactions every day. ...

Continue Reading

Mentorship in Tech: How to Be an Effective Mentor and Mentee

Published: July 14, 2024 Reading time: 13 min

Mentorship is a cornerstone of professional growth and development, particularly in the fast-paced and ever-evolving tech industry. Whether you’re a seasoned professional or just starting your career, engaging in a mentor-mentee relationship can provide invaluable insights, support, and opportunities for both personal and professional advancement. This blog post explores the benefits of mentorship in tech and offers practical guidelines for both mentors and mentees to maximize their relationships. The Importance of Mentorship in Tech Accelerated Learning and Skill Development One of the most significant benefits of mentorship is the accelerated learning curve it provides. Mentors can share their knowledge, experience, and insights, helping mentees navigate complex technical concepts and industry trends more quickly than they might on their own. This hands-on guidance can be particularly valuable in the tech industry, where new technologies and methodologies emerge rapidly. ...

Continue Reading

Creating Dynamic Music Visualizations with Angular and the Web Audio API

Published: July 13, 2024 Reading time: 11 min

Music visualization has always been a fascinating way to enhance the auditory experience, offering a visual representation of sound that can be both mesmerizing and informative. With the power of modern web technologies like Angular and the Web Audio API, creating dynamic music visualizations is more accessible than ever. This blog post will guide you through the process of building an engaging music visualization application using Angular and the Web Audio API. ...

Continue Reading