<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ahmad Hamze Homepage</title>
    <link>http://AhmadHamze.github.io/</link>
    <description>Recent content on Ahmad Hamze Homepage</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 24 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://AhmadHamze.github.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Cellular Automata</title>
      <link>http://AhmadHamze.github.io/posts/cellular-automata/cellular-automata/</link>
      <pubDate>Sat, 15 Apr 2023 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/cellular-automata/cellular-automata/</guid>
      <description>In the 1940s, John Von Neumann and Stanislaw Ulam wanted to design a computer able to self-repair. In the real world an object can be produced only from a more complex object. Consider replicating a piece of paper. To create one, we need to have a more complex object, a printer, the printer is a much more complex system than paper, and to create a printer, we need a lot of smaller components which are themselves complex and so on.</description>
    </item>
    
    <item>
      <title>Estimating pi</title>
      <link>http://AhmadHamze.github.io/posts/estimating-pi/</link>
      <pubDate>Wed, 03 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/estimating-pi/</guid>
      <description>Using the Monte-Carlo simulation to estimate the value of &amp;#x03C0;First of all, let&#39;s talk briefly about what is a Monte-Carlo simulation.
Simply put, it is a computational method that uses a large number of random samples to obtain a result. Itis used in awide range of disciplines like mathematics, computer graphics, and physical sciences.In this blog, we will see how we can use this method to estimate the value of the mathematical constant \(\pi \).</description>
    </item>
    
    <item>
      <title>Image manipulation with convolution using Julia</title>
      <link>http://AhmadHamze.github.io/posts/mathematics/convolution/</link>
      <pubDate>Tue, 24 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/mathematics/convolution/</guid>
      <description>In the past month, I started learning the Julia programming language, it was created by mathematicians for mathematicians. It is mostly used for scientific research and teaching purposes. I was always drawn to it, but for some reason I kept procrastinating learning it until recently.
In this blog, I will share what I learned from the amazing Introduction to Computational Thinking course taught by Professor Alan Edelman, one of the cofounders of the Julia language, and others.</description>
    </item>
    
    <item>
      <title>AWS ALB and Render.com Deployment</title>
      <link>http://AhmadHamze.github.io/posts/infra/load_balancer/</link>
      <pubDate>Sat, 09 Aug 2025 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/infra/load_balancer/</guid>
      <description>In the previous blog RAG Chatbot: AWS Deployment, we walked through deploying a RAG chatbot using AWS ECS Fargate. This time, we&amp;rsquo;ll take it a step further by setting an Application Load Balancer (ALB) for a stable, production-ready endpoint, and we&amp;rsquo;ll also look at a simpler alternative on Render.com.
Application Load Balancer (ALB) The app is currently deployed with an IP address assigned to the running task of the ECS service.</description>
    </item>
    
    <item>
      <title>RAG Chatbot: AWS Deployment</title>
      <link>http://AhmadHamze.github.io/posts/infra/chatbot_deployment/</link>
      <pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/infra/chatbot_deployment/</guid>
      <description>In a previous blog, we created a RAG chatbot using Qdrant, and FastAPI. In this blog, we will deploy the chatbot as an API using Docker and AWS.
What does it mean to deploy an application? Deployment is the process of making an application available for use, this does not necessarily mean that the application is in production. Deployment can be done in different environments, such as development, staging, and production.</description>
    </item>
    
    <item>
      <title>RAG Chatbot: Vector Database Approach</title>
      <link>http://AhmadHamze.github.io/posts/ai/qdrant_chatbot/</link>
      <pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/ai/qdrant_chatbot/</guid>
      <description>In a previous blog, I wrote about a RAG chatbot that I created using a dataset of medical questions and answers.
The RAG chatbot embedded the user’s question and retrieved the most relevant answers from an embedding file. Then, using the retrieved answers, GPT-4o-mini generated the final answer.
In this blog, we will get rid of the embedding file and use a vector database instead, the code will be repurposed to be smaller in size in order to deploy the chatbot using Docker and AWS.</description>
    </item>
    
    <item>
      <title>RAG Medical Chatbot</title>
      <link>http://AhmadHamze.github.io/posts/ai/medical_chatbot/</link>
      <pubDate>Wed, 09 Apr 2025 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/ai/medical_chatbot/</guid>
      <description>A few years ago, when I started delving deeper into programming, AI was one of the main topics that captivated my interest.
It was only natural for me to stumble upon this subject since I was drawn to scientific programming and Python. Back in the day, AI wasn&amp;rsquo;t the hype as it is today. Most importantly, when it was discussed, it was associated with different domains, not just LLMs as it is today.</description>
    </item>
    
    <item>
      <title>Reflections on Changing Jobs</title>
      <link>http://AhmadHamze.github.io/posts/opinion/changing-jobs/</link>
      <pubDate>Sun, 02 Feb 2025 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/opinion/changing-jobs/</guid>
      <description>After a long pause, here I am writing a blog post once again. Recently, I got distracted by many things, and I fell into a cycle of procrastination, but arriving late is better than never.
I am now working with a new team and using a new tech stack. While writing this post, I had been working with them for about eight months. This gave me more than enough time to reflect on the changes happening in my life.</description>
    </item>
    
    <item>
      <title>With due apology to front-end developers</title>
      <link>http://AhmadHamze.github.io/posts/opinion/apology-frontend/</link>
      <pubDate>Sat, 23 Mar 2024 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/opinion/apology-frontend/</guid>
      <description>Dear front-end developers, I owe you all an apology!
Let me start by introducing myself a bit. I studied mathematics at university, and during that time I did some scientific programming, mostly solving differential equations, linear algebra, statistics, and optimization problems. This was done using Python and Matlab.
After graduation, I delved more into &amp;ldquo;serious programming&amp;rdquo; and started learning C++ and Java, I liked working with C++ and did a few projects with it.</description>
    </item>
    
    <item>
      <title>From random walk to diffusion</title>
      <link>http://AhmadHamze.github.io/posts/mathematics/diffusion/</link>
      <pubDate>Sun, 22 Oct 2023 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/mathematics/diffusion/</guid>
      <description>Randomness is an interesting concept, we have seen in previous blogs how it can be harnessed to compute mathematical constants, and even create a universal computer. In this blog we will see how randomness can be used to model diffusion. Diffusion can be defined as the movement of particles from a region of higher concentration to a region of lower concentration. This is a common phenomenon and can be observed in our daily lives.</description>
    </item>
    
    <item>
      <title>Enhancing Recursion with Memoization</title>
      <link>http://AhmadHamze.github.io/posts/algorithmics/memoization/</link>
      <pubDate>Sun, 17 Apr 2022 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/algorithmics/memoization/</guid>
      <description>In this blog, we will go over an example of recursion and how we can use something called memoization to increase the speed of the code.
The Fibonacci Sequence If you&amp;rsquo;ve never heard of it, it&amp;rsquo;s quite simple, just start with two numbers 0 and 1, and add them together to get the next number in the sequence (yeah, that&amp;rsquo;ll be 1 once again).
Now add the new number with the one just before it to obtain the next number, so 1 + 1 and that is 2.</description>
    </item>
    
    <item>
      <title>Puppeteer vs Selenium</title>
      <link>http://AhmadHamze.github.io/posts/automation/puppeteer-vs-selenium/</link>
      <pubDate>Thu, 04 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/automation/puppeteer-vs-selenium/</guid>
      <description>This blog is for learning purposes only, you can find the complete code on my Github go there to find the instructions necessary to run the code. Introduction  In a previous blogI created a selenium bot that performs the 10fastfingers typing speed, it scored 960 WPM.
This code was far from perfect, I did it quickly without taking into consideration the best performance that could be achieved.</description>
    </item>
    
    <item>
      <title>Selenium Speed Test</title>
      <link>http://AhmadHamze.github.io/posts/automation/selenium-speed-test/</link>
      <pubDate>Thu, 28 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/automation/selenium-speed-test/</guid>
      <description>This blog is for learning purposes only, you can find the complete code on my Github go there to find the instructions necessary to run the code. Background  The first time I ever used Selenium, I had to type a string into a search bar. Doing so, I couldn&#39;t see if a string was typed at all, to the point where I thought maybe it doesn&#39;t actually type words.</description>
    </item>
    
    <item>
      <title>Storybook with React</title>
      <link>http://AhmadHamze.github.io/posts/react/storybook-trivia-quiz/</link>
      <pubDate>Sun, 24 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/react/storybook-trivia-quiz/</guid>
      <description>In this blog, I will be showing how to use Storybook with React and talk a bit about its benefits.
I have used Storybook during my first job as a frontend developer, and I enjoyed every moment of it.
What is Storybook Here&amp;rsquo;s a description from the official website
 Storybook is an open source tool for building UI components and pages in isolation. It streamlines UI development, testing, and documentation.</description>
    </item>
    
    <item>
      <title>A React Typescript Trivia Quiz</title>
      <link>http://AhmadHamze.github.io/posts/react/trivia-quiz/</link>
      <pubDate>Sat, 23 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/react/trivia-quiz/</guid>
      <description>This is a simple React + TypeScript + Storybook application, it&amp;rsquo;s a trivia quiz where the user answers a question and when all the questions are finished, they can see their score and the correct answers.
In this blog, I will go over the most important parts of the code, which you can find here.
Handling the data received from the API The code is in api/quizz-api.ts.
The first thing to do is to create a type that handles the response returned by the API.</description>
    </item>
    
    <item>
      <title>Mapping Earthquakes Locations on a Map</title>
      <link>http://AhmadHamze.github.io/posts/earthquakes/</link>
      <pubDate>Mon, 18 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/earthquakes/</guid>
      <description>Introduction This is a data visualization program made using processing.py, I made it a few years ago, however, I think it&amp;rsquo;s a great program that deserves recognition.
You can find the code and the data used here.
Data The program uses a csv file containing 2000 locations of earthquakes (longitude and latitude), the magnitude of the earthquakes, and the name of the place where they occurred (a string). Here is the source of the data</description>
    </item>
    
    <item>
      <title>A live pictionary using websockets</title>
      <link>http://AhmadHamze.github.io/posts/pictionary/</link>
      <pubDate>Sat, 18 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/pictionary/</guid>
      <description>Introduction This is a project that uses websockets to create a drawing on a page and copy this drawing to another page instantly.
If you&amp;rsquo;ve never heard of websockets before, here&amp;rsquo;s the main idea:
  You send data from your browser to a server using a &amp;ldquo;socket&amp;rdquo; which is a real-time connection that can send data back and forth.
  There is another computer that is connected to the server and will receive the data from it also using a socket.</description>
    </item>
    
    <item>
      <title>My first C&#43;&#43; console application</title>
      <link>http://AhmadHamze.github.io/posts/mathematics/c&#43;&#43;-matrix/</link>
      <pubDate>Thu, 29 Jul 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/mathematics/c&#43;&#43;-matrix/</guid>
      <description>Matrix calculator for two by two and three by three real matrices This is a project that I did around three years ago, just after I finished taking my very first comprehensive programming course, it was about the C++ language.
Back then I knew that there are many better options to do matrix calculation, mostly using the Python Numpy library. I also knew that there are many C++ libraries that provide matrix calculation, most notably Eigen.</description>
    </item>
    
    <item>
      <title>Lessons Learned From My First Web Dev Job</title>
      <link>http://AhmadHamze.github.io/posts/opinion/first-react-job/</link>
      <pubDate>Thu, 27 May 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/opinion/first-react-job/</guid>
      <description>Recently I started a web development job as a front-end developer, here are a few things I learned so far.
1. Make sure to have the correct working environment As you might know, preparing the development environment is an essential step when you start a new project. In my case, the team decided to use Nix for package management (it&amp;rsquo;s awesome). The first problem I faced is that I am using Windows, and to be able to use nix on Windows you have to use WSL.</description>
    </item>
    
    <item>
      <title>Advice to my past self</title>
      <link>http://AhmadHamze.github.io/posts/opinion/advice-to-myself/</link>
      <pubDate>Thu, 04 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>http://AhmadHamze.github.io/posts/opinion/advice-to-myself/</guid>
      <description>Advice to my past self regarding programming In this blog, I talk about a few things that I wish somebody told me back when I started learning to program by myself, I hope you can benefit from this if you&amp;rsquo;re also new to programming.
1. Talk to real programmers who know what they&amp;rsquo;re doing Getting into the world of programming is quite easy, all you have to do is own a laptop, watch YouTube videos and try to build programs yourself.</description>
    </item>
    
  </channel>
</rss>
