ECS vs EKS — When to Use Each on AWS

If you’re deploying containerised workloads on AWS, you’ll quickly hit the ECS vs EKS question. Both run containers. Both integrate with the AWS ecosystem. But they solve the problem differently, and picking the wrong one creates unnecessary complexity. What They Are Amazon ECS (Elastic Container Service) is AWS’s own container orchestration service. You define tasks (container specs), put them in services, and ECS handles scheduling and scaling. It’s opinionated, tightly integrated with AWS, and designed to be simple. ...

June 10, 2026 · 3 min · 515 words · Kiprono Elijah

How to Install Docker on Ubuntu (Including EC2)

Ubuntu is the most common Linux distribution for running Docker — whether on a local dev machine, a CI runner, or an EC2 instance. The install process is the same in all three cases. Update the System sudo apt update && sudo apt upgrade -y Install Required Packages sudo apt install -y apt-transport-https ca-certificates curl software-properties-common Add Docker’s Official GPG Key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg Add the Docker Repository echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \ https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Install Docker Engine sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io Start Docker and Enable at Boot sudo systemctl start docker sudo systemctl enable docker Allow Non-Root Usage (Recommended) By default, Docker commands require sudo. Add your user to the docker group to remove that requirement: ...

June 10, 2026 · 2 min · 383 words · Kiprono Elijah

Makefile Explained

What is a Makefile? A Makefile is a declarative build script used by the make tool to automate tasks like compiling code, running scripts, cleaning directories, or managing dependencies. It’s most useful when: You want to codify a repeatable workflow You want one-liner commands for multi-step processes You work across environments (e.g., Docker, EC2, CI/CD) Basic Syntax and Anatomy # Syntax: #target: dependency1, dependency2, … #<TAB>recipe (command 1) #<TAB>recipe (command 2) # ... # Example of Makefile entry train: data/processed.csv python src/train.py --input data/processed.csv --output model.pkl Key Concepts: target: The name of the file or alias you want to build (e.g. train) dependencies: Files that the target depends on, in the case above data/processed.csv is the dependency. recipe: Command(s) to run if dependencies are newer than target. in the example above recipe is python src/train.py --input data/processed.csv --output model.pkl Tab is required. Space will break it. ...

June 6, 2026 · 6 min · 1159 words · Kiprono Elijah

Docker Commands Cheat Sheet

Here’s a curated list of the most important Docker commands, grouped by what you actually do — not alphabetically. 1. Build & Tag Images docker build -t name:tag . Builds an image from a Dockerfile in the current directory. docker build -t my_app:latest . Most common flags: -f — specify a different Dockerfile path . — the build context (current directory); omit -f when the Dockerfile is in the same directory --no-cache — force a full rebuild, skipping the layer cache -t / --tag — give the image a name and optional version tag; defaults to latest if omitted Pro tip: Add a .dockerignore file to exclude unnecessary files (__pycache__, .git, data dumps) from the build context — it can dramatically speed up builds. ...

July 26, 2025 · 4 min · 773 words · Kiprono Elijah

Awards Offered to Me

Dedicated Service Award Issuer: Sun King Limited Details about my Employment My job title: Data Intelligence Analyst My tenure at Sun King: January 3, 2023 till date. Award date: November 28, 2023 (10 months into the role) Total employees at Sun King: 2700 (as at January 2023) Sun King Offices: 11 (across different countries) Employees offered the award are listed in the Figure below: Comment from CEO Patrick Walsh, the CEO had the following to say when offering the award: ...

January 16, 2024 · 1 min · 156 words · Kiprono Elijah

Introduction to SQL and Relational Databases

Introduction What is a Relational Database? A relational database is a collection of data stored in tables. Each table consists of one or more vertical columns and zero or more horizontal rows. Tables are identified by name Table names must be unique within a database. Typical SQL databases allow up to 18 characters in a table name. The first character must be a letter, while the remaining characters can be letters, numbers, or underscores. ...

September 30, 2023 · 2 min · 219 words · Kiprono Elijah

Basic Queries in SQL

A SQL statement is a collection of clauses, keywords, and parameters that perform a particular function. In the examples below, each clause is shown on a separate line; keywords appear in all uppercase letters, parameters in all lowercase letters. Clauses The various clauses of SQL statements are named after their initial words: the SELECT clause, for example, or the FROM clause. SQL allows multiple clauses per line, but most SQL programmers use separate lines for clarity and ease of editing. ...

September 30, 2023 · 6 min · 1236 words · Kiprono Elijah

Advanced Operators in SQL (Not Really Advanced 😜)

The LIKE Operator The LIKE operator is used to find values that match a pattern. Patterns are always entered in quotes. A per cent symbol is used to represent zero or more unknown characters; an underscore represents any single character. Note: The LIKE operator is added to the WHERE clause, as shown in the examples below. Filters rows where the “user” column starts with “Abd” followed by any characters. SELECT * FROM angaza_users WHERE user LIKE 'Abd%'; It’s looking for values in the “user” column that start with “De” and end with “ni,” with any characters in between. ...

September 30, 2023 · 4 min · 724 words · Kiprono Elijah

Expressions in SQL

Arithmetic Expressions An arithmetic expression is a phrase formed with operands (numeric values and/or column names) and arithmetic operators (shown below). Arithmetic expressions are evaluated by SQL and replaced with the appropriate numeric value. Operands can be numeric values or column names In an expression, valid operands include numbers, column names, and other expressions. When a column is used in an expression, the values in that column must be numeric or valid dates. Only addition and subtraction are valid with dates. ...

September 30, 2023 · 2 min · 331 words · Kiprono Elijah

Aggregation Functions in SQL

Aggregation Functions An aggregation (statistical) function is a built-in program that accepts a parameter and returns a summary value. The parameter may be either a column name or an expression. The five statistical functions supported by standard SQL are shown in the following table. Statistical functions accept parameters Parameters are either column names or expressions. Parameters must always be enclosed in parentheses. Note that spaces inside and outside the parentheses are optional but are shown in the examples above for readability. ...

September 30, 2023 · 3 min · 467 words · Kiprono Elijah