A magnifier and some numeric values.

Vector Search: An Introduction

What Is Vector Search? We’ve come to understand searching as a job of comparing text. We grew up Googling things, looking up words in dictionaries, and finding book titles in libraries. But there are tons of other types of media packed with information we might need, like images, videos, and audio. What if you want to find a specific word in an audiobook, or you’re trying to locate a scene with a red Ferrari in action movies?...

April 14, 2024 · 3 min · Amin Rashidbeigi
An image of a llama in a watercolor style

Run Llama 3 Locally

In the generative AI era and with large language models, they say the only limitation is your imagination. So, as maybe you, I had some ideas to implement with LLMs, but I didn’t want to spend a lot on testing and validating my prototypes. So, I decided to run Llama , the Meta open-source LLM, on my machine or a VM to implement my prototypes with a free and self-hosted LLM....

October 24, 2024 · 3 min · Amin Rashidbeigi
test double in go.

Go Test Doubles by Example

Introduction When writing tests for a program, we often need to consider dependencies and external APIs that we prefer not to call every time the test runs. Calling these external dependencies not only adds complexity to our tests but also incurs costs. To address this issue, we can use test doubles. What Are Test Doubles? Test doubles offer an alternative to real dependencies. While we commonly refer to all of them as mocks, there are various test doubles, each serving different purposes....

December 31, 2023 · 7 min · Amin Rashidbeigi
An image of a lock

When to Start Secret Rotation

Have you ever accidentally pushed a sensitive password and realized how difficult it is to ensure no one gains access to it? Or have you mistakenly logged an API token, and now it’s scattered across your logging system? In these cases, the first thing you’d do is change the secret. But what if you never caught the log in the first place? Or how can you be sure no one else has pushed sensitive data?...

October 17, 2024 · 2 min · Amin Rashidbeigi
The cover image of Expedition Diaries: A Project to Learn.

Expedition Diaries: A Project to Learn

Some days ago, I received a final warning email about the expiry of the expedition-diaries.com domain. A few years ago, I set a challenge for myself to start a project and manage all its aspects like backend, frontend, and infrastructure on my own. I had experience in each of these areas separately but never had the chance to develop them together. Plus, I had different goals for each part: Backend (Go): I wanted to experiment with various libraries and architectures....

September 23, 2024 · 3 min · Amin Rashidbeigi

"Sorry", Is That Enough?

Introduction Work today is very different from what it used to be. In the past, people didn’t have to make so many decisions every day. But as time goes on, our work environments and the tools we use have become more complex and varied. With this complexity comes more uncertainty and ambiguity. For many of us, making decisions is a daily part of our job, even when the situation is unclear....

August 16, 2024 · 3 min · Amin Rashidbeigi
The cover image of thoughts on The Clean Coder book.

My Thoughts on The Clean Coder Book

Introduction Some time ago, I was searching for a book related to software but not purely technical, making it easier for me to read. I was looking for something I could enjoy even with a busy mind after work. After checking my Goodreads to-read list, I decided to read The Clean Coder and started right away. The book’s introduction hooked me, and I ended up reading it to the end....

June 20, 2024 · 5 min · Amin Rashidbeigi
A desk with a laptop on it emphasizes an overdue task.

Managing Overdue Tasks

Introduction Getting better at estimating how long tasks will take is a skill that develops as you gain more experience in your career, especially when working with a team or company for a long time. However, even with careful planning, unexpected challenges can pop up, causing delays and potentially missing deadlines. A Common Approach: Finish It at All Costs When faced with a deadline, the first solution many of us consider is to work extra hours or through the weekend....

March 22, 2024 · 3 min · Amin Rashidbeigi
A yellow chair sitting on top of a cement wall

Navigating Extra Work in Programming Teams

Recently, I read an interesting article by Ben Northrop that can be found here . In the article, Ben talks about the concept of ‘doing extra,’ which is not the same as doing more. For example, if you’re asked to implement two APIs and finish early, you can use the extra time to think about how to make the implementation more efficient, secure, or reduce the code length. That’s ‘doing extra....

July 17, 2023 · 4 min · Amin Rashidbeigi
Two people are in the metting

Improve Onboarding through the Magic of Storytelling

When you join a new team, you are usually bombarded with a lot of information. You need to familiarize yourself with the company’s culture, facilities, and colleagues. Initially, the onboarding process tends to be welcoming and hospitable. However, after a few days, you are expected to quickly learn about the products, services, and data in order to contribute effectively. It can be overwhelming to try to absorb and utilize all of this information, and eventually, the honeymoon phase ends, leaving you feeling stressed and concerned about your credibility....

March 27, 2023 · 6 min · Amin Rashidbeigi