TechBlog

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

Navigating Career Dissatisfaction: A Guide for Tech Professionals

Published: July 10, 2024 Reading time: 13 min

Career dissatisfaction among developers is a common issue that can arise from various factors, including stagnation, lack of recognition, or misalignment with personal goals. Understanding the root causes and taking proactive steps to address them can help navigate these challenges effectively. This comprehensive guide will explore what developers should do for personal development, what they should expect from their employers, and how to foster a satisfying career. Identifying the Problem Signs of career dissatisfaction can include a lack of motivation, decreased productivity, and a sense of disengagement from work. If you find yourself questioning your career choices, it’s essential to reflect on your feelings and identify whether your dissatisfaction stems from personal issues, workplace environment, or a combination of both. Differentiating between these factors can help you take the appropriate steps toward resolution. ...

Continue Reading

From Concept to Reality: Launching a Tech Startup in 2024

Published: July 8, 2024 Reading time: 6 min

Launching a tech startup is an exhilarating journey, filled with moments of inspiration, innovation, and challenge. In 2024, the landscape of entrepreneurship is as dynamic and promising as ever, offering vast opportunities for those willing to dive in and create something remarkable. This comprehensive guide aims to provide aspiring tech entrepreneurs with a roadmap from ideation to scaling their startup. We’ll cover essential steps such as ideation, market research, MVP development, securing funding, and scaling your business. ...

Continue Reading

Chaos Engineering for Backend and Infrastructure

Published: July 7, 2024 Reading time: 15 min

Backend chaos engineering assumes you control the runtime — VMs, containers, networks, managed databases — which makes fault injection precise. You choose exactly which pod, zone, or dependency to disrupt. This guide covers steady state for microservices, failure domains from compute to messaging, resilience patterns to validate, Chaos Mesh and Toxiproxy walkthroughs, SLO measurement, CI automation, game-day execution, and tooling. If you are new to the discipline, start with Chaos Engineering: Principles and Practice for the experiment loop, blast-radius controls, and game-day concepts. For how the same mindset applies in the browser, see Chaos Engineering for Frontend Applications. ...

Continue Reading