Showing posts from software-engineering category

A Journey of Learning: From Software Engineer to Team Lead

A Journey of Learning: From Software Engineer to Team Lead

Transitioning from a senior software engineer to building and leading an internal team at Farmbetter marks a significant shift not only in my professional journey but also in the way I communicate my...

TypeScript Stage 3 Decorators: A Journey Through Setup and Usage

TypeScript Stage 3 Decorators: A Journey Through Setup and Usage

So, What Are TypeScript Decorators? In the simplest of terms, a decorator in TypeScript is like a wrapping paper. You take a function or a class and wrap it with another function that adds some extr...

JavaScript Equality Under the Lens: Enhancing React’s Dependency Checks - Part 2

JavaScript Equality Under the Lens: Enhancing React’s Dependency Checks - Part 2

In a previous blog, [JavaScript Equality Under the Lens: Enhancing React’s Dependency Checks](https://www.balysnotes.com/javascript-equality-checks), we delved into the nuances of JavaScript data typ...

Streamlining Your Next.js Project with Private GitHub/Gitlab Repositories as NPM Packages

Streamlining Your Next.js Project with Private GitHub/Gitlab Repositories as NPM Packages

### Using Private GitHub/Gitlab Repos in Your Next.js Projects Imagine this scenario: you're working on a super cool Next.js project, and you have some shared code that you'd like to use across mult...

Introduction to Domain Driven Design: Bridging the Gap Between Complex Systems and Software

Introduction to Domain Driven Design: Bridging the Gap Between Complex Systems and Software

Recently, I was asked to present on Domain Driven Design. As I delved deeper into the research, it became clear that DDD is a crucial aspect of system architecture that many developers don’t fully gr...

Escaping Deployment Hell: How Feature Flags Can Transform Your Workflow

Escaping Deployment Hell: How Feature Flags Can Transform Your Workflow

Feature flags, also known as feature toggles, are a powerful technique that allows us to alter the behavior of our software systems without changing code. Originating from the need for safer deploym...

JavaScript Equality Under the Lens: Enhancing React's Dependency Checks

JavaScript Equality Under the Lens: Enhancing React's Dependency Checks

JavaScript, a language of many faces, often presents concepts that are deceptively simple yet profound in their implications. Among these, understanding equality checks and the nuanced landscape of J...

Private GPT: Building a Web Scraper with HTML Parsing in TypeScript (Part 1)

Private GPT: Building a Web Scraper with HTML Parsing in TypeScript (Part 1)

In this blog, we will explore the process of building a web scraper using HTML parsing capabilities in TypeScript. This is the first part of a two-part series, where we will use this HTML scraper to ...

Bypassing GPT-4's Context Length Limitation with Sliding Window Technique

Bypassing GPT-4's Context Length Limitation with Sliding Window Technique

GPT-4, despite its incredible linguistic prowess, suffers from a noteworthy constraint: its context length limitation, which essentially refers to the maximum number of input tokens. The sliding wind...

The Final Act: Streaming Video and Receiving it in a WebRTC Video Conference (Part 3/3)

The Final Act: Streaming Video and Receiving it in a WebRTC Video Conference (Part 3/3)

Welcome back, fellow video conferencing enthusiasts! In the previous parts of our blog series, we've covered accessing the webcam's video stream and setting up a signalling server. Now it's time for ...

Setting Up a Signalling Server: Client Video Streaming (Part 2 of 3)

Setting Up a Signalling Server: Client Video Streaming (Part 2 of 3)

Welcome back to our thrilling three-part series on setting up a peer-to-peer connection for client video streaming. In [Part 1](https://www.balysnotes.com/setting-up-a-peer-to-peer-connection-video-s...

Setting Up a Peer-to-Peer Connection: Client Video Streaming (Part 1 of 3)

Setting Up a Peer-to-Peer Connection: Client Video Streaming (Part 1 of 3)

Welcome to the first part of our three-part series on setting up a peer-to-peer (P2P) connection to send a video stream between two clients (a server serving as an intermediary only for initial conne...

gRPC: A Modern Approach to Microservices Communication

gRPC: A Modern Approach to Microservices Communication

In today's world, microservices architecture has become a popular approach for building scalable and reliable applications. With microservices, an application is broken down into smaller, independent...

Tic-Tac-Toe: Exploring a TypeScript Code Example

Tic-Tac-Toe: Exploring a TypeScript Code Example

Hello, fellow code connoisseurs! I've recently decided to refresh my memory on data structures and algorithms. This current project is inspired by freecodecamp's tic-tac-toe example. Buckle up, and l...

Deploying Your Laravel App on Docker, With NGINX and MySQL

Deploying Your Laravel App on Docker, With NGINX and MySQL

If you are a django developer, you can find a really comprehensive tutorial here: [django on Docker](https://lewiskori.com/post/deploying-a-python-django-application-using-docker) ## Now Shall We? D...

An Introduction to Spring Boot: MySQL, JPA and Hibernate

An Introduction to Spring Boot: MySQL, JPA and Hibernate

Before we start, this post is mostly aimed at Java developers, specifically Java developers who use the Spring umbrella of frameworks for development. If you are not a Java developer, you can still re...

Blockchain Technology: A case study of Bitcoin

Blockchain Technology: A case study of Bitcoin

There has been a lot of hype around this mysterious new complex technology of storing and exchanging money that is decentralized, distributed and public. **Well, Spoiler-alert: It's not as complex as ...