Technical writing

Notes on parsing, private AI, and computer science learning

Practical guides grounded in Yusuf Gadelrab’s work in freight intake parsing, CS tutoring, and bilingual computer science education.

Backend engineering · Testing

API integration tests: prove the contract without calling production

Use representative fixtures, strict outgoing-request assertions, deterministic clocks, and a narrow live smoke check to make API changes reviewable.

Read the API testing guide →

Open source

Writing a secret-detection rule for gitleaks: what a pattern has to prove

How the Supabase token shape was established from evidence, why one key is deliberately not flagged, and what the false-positive tests pin down. The pull request is open and unmerged.

Read the gitleaks walkthrough →

Build tooling

SOURCE_DATE_EPOCH: why a build timestamp is a reproducibility bug

Deterministic SBOM timestamps, defining what counts as a valid value, and the test-isolation trap that appears the moment you read an environment variable.

Read the reproducible builds guide →

Teaching

Tutoring computer science when the student is also learning English

Telling a language gap from a concept gap in ninety seconds, keywords as symbols, reading error messages by shape, and what the research does and does not support.

Read the bilingual tutoring guide →

Search and SEO

The future of search engines: what AI changes about SEO, and what it does not

Zero-click data, retrieval versus ranking, structured data and entity identity, the llms.txt myth, and the crawler economics that will decide what the corpus contains.

Read the search and SEO essay →

Conference notes

Notes on a SIGCSE TS 2026 poster: what two hours at a poster board actually demands

What the poster format can and cannot carry, using the bilingual coding poster Yusuf co-authored as the worked example.

Read the SIGCSE poster notes →

Developer tooling

Docker for CS coursework: reproducible environments without falling down the rabbit hole

When a container is worth it, a minimal Python and C++ setup, bind mounts, and the mistakes that cost an evening.

Read the Docker guide →

Databases

SQL joins and indexes: the parts that quietly change your answer

Why a LEFT JOIN plus a WHERE becomes an INNER JOIN, how NULLs break NOT IN, and when an index is ignored.

Read the SQL guide →

Backend engineering

Integrating third-party APIs: the failure modes that only appear in production

Timeouts, retries with jitter, idempotency keys, rate limits, pagination, and webhook verification.

Read the API integration guide →

Bilingual CS education

Bilingual computer science education starts by separating logic from language

A field guide for language-aware instruction, grounded in Yusuf’s ACM SIGCSE 2026 poster collaboration.

Read the bilingual CS education guide →

CS tutoring

A computer science tutoring guide for learning to explain, trace, and debug

Concrete study and debugging routines drawn from Yusuf’s tutoring work at SJSU since August 2024.

Read the CS tutoring guide →

Freight intake automation

Designing a freight intake schema for messages that were never forms

How to preserve evidence, represent missing information, and build a reviewable intake workflow.

Read the intake schema guide →

Academic recovery

Academic recovery in computer science: a practical reset

A candid, employer-safe guide to assessing a difficult term and building a sustainable recovery routine.

Read the academic recovery guide →

Programming learning

Learning programming across languages without treating syntax as the whole skill

A method for identifying transferable concepts, comparing syntax, and testing assumptions with small experiments.

Read the programming languages guide →

Existing guide

Parsing unstructured freight messages into structured load data

How to combine normalization, deterministic patterns, constrained models, and human review.

Read the freight parsing guide →

Local-first document parsing

Run small language models where the data lives

A practical architecture for extracting useful fields from private client text without making a hosted model the default data path.

Read the local-model guide →

Related work

Research context and poster citation

Explore the ACM SIGCSE 2026 poster collaboration and Yusuf’s 2025 SJSU research presentation.

Explore the research summary →

Bilingual programming

Programming syntax can be the barrier—not programming logic

A focused introduction to separating conceptual understanding from English-heavy programming notation.

Read the syntax guide →