Week 1 (July 2026)

This page contains my work log for July 1–7, 2026.

Tasks

Wednesday, July 1, 2026

LLM Inference: Create a Blog Post

I intended to create a blog post for the LLM Inference that I have built. You can see at: https://ilyasahsan.xyz/chat-server

The blog post still has a long way to go before it's finished. Find the draft below:

I usually share the blog post on LinkedIn so that everyone can find out about the live demo, blog, and this website.

GitHub: Repository Migration — Dataproc Bootstrap

The Dataproc Bootstrap repository and it's CI/CD pipeline has been migrated from GitLab to GitHub. Find the details below:

I have done this migration by cloning the repository to GitHub, and enabling the CI/CD pipeline by re-creating workflows in GitHub Actions.

Airflow: Modify the outbound SQL query

The operational experience team asked me to modify the SQL query for the outbound process so that their Gsheet has correct data. To address this, I modified the file related to the Airflow DAG. Find the details below:

After the pull request was merged, I cleared the DAG task for today. As a result, they had correct data by this afternoon.

Superset: Add a user with public role

A new employee needed access to Superset so that she could monitor the performance of their product. I addressed this request by creating a new user in the Superset users page.

The Superset service has Google sign-in enabled, so she can log in with her employee Google account. Since this service is public-facing, we also added GCP Identity-Aware Proxy (IAP) as an extra security layer, restricting access to our employee email domain only.

As a result, she was able to log in using her employee Google account.

Dbt: Create Fact tables for Drivers

The data scientist team asked me to create additional fact tables for drivers. They provided the SQL queries, and my responsibility was to apply them in the dbt project. The changes are available in the pull request below:

As a result, the additional fact tables for drivers are now available in BigQuery.


Thursday, July 2, 2026

LLM Inference: Create a Blog Post

I continued writing the blog post on LLM inference. I finished several chapters and fixed their grammar.

Draft: https://ilyasahsan.xyz/blog/2026-06-self-hosted-llm-inference

As a result, I only need to write the section on populating data into the vector database, plus the conclusion.

CDC Service: Rightsizing its resources

The infrastructure team asked me to rightsize the CDC service's resources. They were concerned about the memory request and limit, since utilization showed they should be lower. So I needed to fix this to avoid wasting resources.

To address this, I updated the Kubernetes repository to reduce the resources. Details below:

resources:
  requests:
    cpu: "50m"
    memory: "250Mi" # before: 1000Mi
  limits:
    cpu: "2000m"
    memory: "500Mi" # before: 6000Mi

Merge request: kubernetes#8864

As a result, the CDC service is now using less memory than before.

Airflow: Revive the breakage DAG

The Opex team asked the data team to revive the DAG that populates data into the breakage data mart table. To address this, I not only re-enabled the DAG but also updated the related Python script, since the Google Sheet contents had changed.

Pull request: airflow#45

As a result, the breakage DAG is now enabled in Airflow and successfully populates data into the destination table.

Airflow: Create the inbound-store DAG

The Opex team asked me to create an Airflow DAG to populate data into their Google Sheet. To address this, I asked them for the SQL query, then created a DAG along with a SQL file containing that query.

Pull request: airflow#43

As a result, the new Airflow DAG was created, and their Google Sheet is now being populated.


Friday, July 3, 2026

GitHub: Repository Migration — Spark BigQuery

The Spark BigQuery repository and it's CI/CD pipeline has been migrated from GitLab to GitHub. Find the details below:

I have done this migration by cloning the repository to GitHub, and enabling the CI/CD pipeline by re-creating workflows in GitHub Actions.

LLM Inference: Create a Blog Post

I finished the blog post for self-hosted llm inference. Also, I've posted it on LinkedIn for a better impression.

I wonder how to share this to the right audience so that I can get more feedback.

However, I'm very happy because I learned a thing that makes me keep relevant in the Data Engineering world.


Saturday, July 4, 2026

I am spending most of my day at AEON Mall such as brings my son to the playground, accompanied my wife to meet her friends, and meet a friend after a long time. As a result, It was a long day, and I am very tired. However, one thing that made me happy was that I bought a high-quality grill pan at a low price.

Zig: Exercise

I learned a new language named Zig, which I knew it first from Mitchell Hashimoto blog. And, I interested with the creator of Zig (Andrew Kelley), especially when he was interviewed by JetBrains. Therefore, I learned about it from the exercise repository created by Chris Boesch.

Here are the result:

Exercise #1. Hello world

const std = @import("std");

pub fn main() void {
    std.debug.print("Hello world!\n", .{});
}

Exercise #1. Std

const std = @import("std");

pub fn main() void {
    std.debug.print("Standard Library.\n", .{});
}

Exercise #1. Assignment

const std = @import("std");

pub fn main() void {
    var n: u8 = 50;
    n = n + 5;

    const pi: u32 = 314159;
    const negative_eleven: i8 = -11;

    std.debug.print("{} {} {}\n", .{ n, pi, negative_eleven });
}

Monday, July 6, 2026

Debezium Examples: Cache Invalidation

I am an assignee of the issue #1809 for the Debezium Example repository. The task is that I need to standardize the java version and adopt Debezium BOM for dependencies management for all modules. Therefore, I created the below pull request as a part to address the issue.

The CI/CD pipeline has passed, and it's still waiting for review from the Debezium team.

lesson learned

The Debezium BOM use JUnit 6, but it's only pins the two umbrella artifacts (junit-jupiter and junit-platform-launcher). However, this modules need to run the test with junit-jupiter-api/-engine/-params, junit-platform-engine/-commons.

There are two ways to fix this issue:

  1. Pin the Quarkus BOM in the cache-invalidation module.
  2. Pin the JUnit 6 BOM the the parent module.

To address this, I pinned the Quarkus BOM in the cache-invalidation module so that, it can run the test with the JUnit 5. By importing quarkus-bom directly in this module, its JUnit 5 versions take priority over the parent's settings.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-bom</artifactId>
            <version>${version.quarkus}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

As a result, the CI Pipeline for this module passed.


Tuesday, July 7, 2026

Apache Doris: Quick Start

I found out that a lot of issues where we need to support parsing Doris SQL in the Apache ShardingSphere. To address this, I need to enable Doris in my laptop for validate the SQL Query.

I enabled Doris with the following command:

$ wget https://doris.apache.org/files/start-doris.sh
$ chmod 755 start-doris.sh
$ bash start-doris.sh -v 4.1.2

Connect to the cluster with the MySQL client. Details below:

$ mysql -uroot -P9030 -h127.0.0.1 -e 'SELECT `host`, `join`, `alive` FROM frontends()'

#+-------------+------+-------+
#| host        | join | alive |
#+-------------+------+-------+
#| 172.20.80.2 | true | true  |
#+-------------+------+-------+

As a result, Doris has enabled in my laptop, and I can start resolving the parser issues.

GitHub: Repository Migration — Neurocells

I migrated the following repositories from GitLab to GitHub along with the CI/CD pipeline. Details below:

Name GitLab GitHub
Neurocell https://gitlab.com/allofresh/data/neurocell https://github.com/allofresh/neurocell
Neurocell Spring https://gitlab.com/allofresh/data/neurocell-spring https://github.com/allofresh/neurocell-spring

note: wrap the table so that it's easier to read in the mobile browser.

Debezium: Move TOPIC_PREFIX field to CONNECTOR group

The upstream pull request has been merged. Therefore, I can continue my pull request that has been postponed for a long time.

pull request: https://github.com/debezium/debezium/pull/7421