Skip to main content
Ammar Najjar
Engineering Team Lead & Software Architect
View all authors

Local AI on a MacBook Pro with 16 GB RAM: What Actually Works

· 8 min read
Ammar Najjar
Engineering Team Lead & Software Architect

Running AI coding assistants locally sounds appealing — no API costs, your code stays on your machine, and you get a Claude Code-like experience for free. But getting it to actually work well on a 16 GB MacBook Pro M1 takes more trial and error than most guides admit.

This post summarizes months of real-world testing across multiple tools, runtimes, and models. The conclusion surprised me.

Mastering Git Commands: A Practical Guide

· 14 min read
Ammar Najjar
Engineering Team Lead & Software Architect

Git is an indispensable tool for version control, enabling developers to track changes, collaborate effectively, and manage project history. While its capabilities are vast, a solid understanding of key commands can significantly streamline your workflow. This article delves into a selection of practical Git commands, explaining what they do, how to use them, and when they are most effective.

Angular - Content Projection

· 5 min read
Ammar Najjar
Engineering Team Lead & Software Architect

Content projection is a feature in angular that supports inserting a component in another component. This changes the way an angular developer designs his application/library by implementing flexable and reusable components.

This post explains the different types of content projection, where to use each of them, with an example project. All the code can be found on github.(LINK)

Fetch using Gitlab API

· 2 min read
Ammar Najjar
Engineering Team Lead & Software Architect

Motivation

I use gitlab, and I have many repos that I need to track on daily basis, or even more than once per day. I found it so tyring first of all to clone all those repos when I change my working machine, and then to keep all these repos up to date. For that reason I began to write an automation script to do the boring tasks of my shoulders.

Custom Selenium Webdrivers using Decorators

· 5 min read
Ammar Najjar
Engineering Team Lead & Software Architect

The main question:

How to create custom selenium webdriver classes dynamically with a parametrized browser binary path?

The motivation:

Working on website functional testing using selenium webdriver, generates the urge to run tests using different versions of the most commonly used browsers these days, in parallel on the same machine.