Backend engineering · API design
Idempotency keys: making a FastAPI intake endpoint safe to retry
Client-generated keys, request-hash checks, atomic writes, and expiration so a retried request never becomes a duplicate row.
Technical writing
Practical guides grounded in Yusuf Gadelrab’s work in freight intake parsing, CS tutoring, and bilingual computer science education.
Backend engineering · API design
Client-generated keys, request-hash checks, atomic writes, and expiration so a retried request never becomes a duplicate row.
AI systems · Backend engineering
Per-field confidence tiers, evidence-span matching, and deterministic cross-checks so review time goes to the fields that actually need it.
Backend engineering · Testing
Use representative fixtures, strict outgoing-request assertions, deterministic clocks, and a narrow live smoke check to make API changes reviewable.
Backend engineering
Timeouts, retries with jitter, idempotency keys, rate limits, pagination, and webhook verification.
Backend engineering · Observability
JSON formatters, LoggerAdapter for shared context, and a level discipline that keeps alerts meaningful instead of noisy.
Testing · Python
Fixtures for shared setup, parametrize for input variation, and when a parametrized fixture is worth the extra layer.
Data analytics · Python
Named single-purpose steps, row-count logging between them, and an explicit validation pass instead of one dense method chain.
Databases
Why a LEFT JOIN plus a WHERE becomes an INNER JOIN, how NULLs break NOT IN, and when an index is ignored.
Backend · APIs
Why OFFSET duplicates and skips rows on a table still being written to, why deep pages get slower, and how a keyset cursor with a unique tiebreaker fixes both.
Databases
Why autogenerate turns a renamed column into data loss, how to write data migrations that keep working, and the three-deploy pattern for adding a NOT NULL column.
Freight intake automation
How to preserve evidence, represent missing information, and build a reviewable intake workflow.
Existing guide
How to combine normalization, deterministic patterns, constrained models, and human review.
Open source
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.
Build tooling
Deterministic SBOM timestamps, defining what counts as a valid value, and the test-isolation trap that appears the moment you read an environment variable.
Developer tooling
When a container is worth it, a minimal Python and C++ setup, bind mounts, and the mistakes that cost an evening.
Local-first document parsing
A practical architecture for extracting useful fields from private client text without making a hosted model the default data path.
Teaching
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.
Conference notes
What the poster format can and cannot carry, using the bilingual coding poster Yusuf co-authored as the worked example.
Bilingual CS education
A field guide for language-aware instruction, grounded in Yusuf’s ACM SIGCSE 2026 poster collaboration.
CS tutoring
Concrete study and debugging routines drawn from Yusuf’s tutoring work at SJSU since August 2024.
Bilingual programming
A focused introduction to separating conceptual understanding from English-heavy programming notation.
Programming learning
A method for identifying transferable concepts, comparing syntax, and testing assumptions with small experiments.
Academic recovery
A candid, employer-safe guide to assessing a difficult term and building a sustainable recovery routine.
Search and SEO
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.
Related work
Explore the ACM SIGCSE 2026 poster collaboration and Yusuf’s 2025 SJSU research presentation.