Looking for the next thing
Open to remote backend, full-stack, or platform work — replies within 12 hours.
- added
Availability for remote backend, full-stack, or platform roles.
natinael96 / changelog · v3.0.0 · updated September 2026
Software developer
Education and training sit in the same timeline, set back from the roles they support.
Open to remote backend, full-stack, or platform work — replies within 12 hours.
Availability for remote backend, full-stack, or platform roles.
Sep 2025 — Feb 2026
Advanced backend curriculum, completed through production-style projects rather than exercises.
Python, SQL, API design, microservices, Docker, Kubernetes, CI/CD, and system security.
Sep 2025 — Sep 2026 · Addis Ababa
First lead seat. Air-quality monitoring for Addis Ababa — IoT sensor stations feeding a public real-time dashboard.
BREAKING — first lead seat: a team of three engineers, owning architecture decisions, code review, and sprint planning.
Backend ingestion services (FastAPI, PostgreSQL) processing 25,000+ sensor readings per day with automatic validation and anomaly flagging.
Integrated PurpleAir behind its own router — 11 endpoints ingesting third-party stations alongside the in-house network, widening coverage across the city without new hardware.
83 REST endpoints across 13 routers — auth, devices, readings, analytics, admin, PurpleAir — with JWT role guards, token blacklist, account lockout, and per-IP rate limits.
Real-time dashboard (React, WebSockets, Recharts, Leaflet) visualising live readings across stations with sub-second update latency.
Releases: Dockerized services behind Caddy TLS, deployed to a self-managed Ubuntu VPS by GitHub Actions with automated tests and zero downtime.
25K+readings ingested and validated per day
Feb 2025 — Nov 2025 · Remote, Norway
First remote role across time zones, and first production LLM work.
Production full-stack applications with Angular, Django REST Framework, and PostgreSQL.
An automated document-summarisation feature on the OpenAI API — prompt design, streaming responses, and token-cost optimisation.
Cut average API response time with Redis caching, database indexing, and query optimisation.
Shipped three production features per sprint, working with designers and product managers across three time zones.
Dec 2024 — Sep 2025 · Contract, remote
First professional seat. Training stopped being the main thing.
BREAKING — student to shipping engineer. Work now runs against client deadlines.
Full-stack web applications built and deployed with React, NestJS, PostgreSQL, and MongoDB.
RESTful APIs with JWT authentication and role-based access control across client projects.
Feb 2024 — Nov 2024
Selected into a Google-backed programme — twelve-plus months of intensive data structures, algorithms, and system design.
900+ algorithm problems solved across LeetCode and Codeforces.
900+algorithm problems solved
May 2022 — Jun 2026
Initial commit. Instruments first, software second — the order explains the work above.
Student Council member, College of Technology and Built Environment (Sep 2025 — Jun 2026).
Data structures, object-oriented programming, database systems, digital signal processing, medical imaging, and applied electronics.
Air-quality monitoring for Addis Ababa — sensor stations, a real-time map, and a public dashboard. The day job for a year; see 3.0.0 for the role.
FastAPI ingestion over PostgreSQL, a Next.js dashboard with Leaflet and Recharts, deployed by GitHub Actions behind Caddy.
PurpleAir stations integrated alongside the in-house sensors, so the map covers more of the city than our own hardware reaches.
A public station map and time-series view, open to anyone — no account needed to read the air over the city.
25K+readings served per day
The Ethiopian Orthodox Tewahedo Book of Hours (ሰዓታት) for Android — Amharic-first, fully offline, built and shipped solo. 241 Kotlin files, 47k lines, and exactly one network call in the whole app.
Homophone-tolerant Amharic search as Unicode block arithmetic, not a lookup table: each Ge’ez syllable family (ሠ→ሰ, ሐ/ኀ/ኸ→ሀ, ዐ→አ, ፀ→ጸ) folds to one canonical consonant by codepoint offset, preserving the vowel order, so query and index collapse to the same form.
ባሕረ ሓሳብ implemented from the classical tables rather than shipped as a date list — Fasika via the Alexandrian paschal cycle (Julian computus, shifted to Gregorian), every movable feast a Tewsak offset from ጾመ ነነዌ, with Wenber, Abekte and Metqi exposed and pinned by unit tests against known Easter dates.
441 unit tests across 71 files — the computus, ግጻዌ link coverage, Ge’ez numerals, the backup format and Ethiopian date arithmetic, which is where a calendar app actually breaks.
Three GitHub Actions workflows. Release is gated in order — bundled-content validation, unit tests, release-blocking lint — then builds a signed APK and a Play AAB from the same commit.
The self-update notice is a Gradle flag (-PupdateNotice) wired so the failure mode is safe: forget it and GitHub loses a notice; it cannot ship an update prompt into a Play build, which would breach policy.
The corpus itself: seven canonical hours plus the Veil, the 150-psalm Psalter, the full Amharic 1980 canon, ግጻዌ across all 366 fixed dates, ስንክሳር, አጽዋማት, and ሥርዓተ ማኅሌት’s 190 feasts — each searchable and cross-linked.
28 MB of liturgical text ships in a 10.4 MB APK — R8 with resource shrinking, manifest-driven asset loading, and a 24-script Python pipeline that is the corpus’s only writer. Nothing in assets/ is hand-edited.
Kotlin and Jetpack Compose throughout, Material 3, Room for the journal, DataStore for preferences, kotlinx.serialization for the bundled corpus. Reaches Android 6.0 (API 23) through core library desugaring, which backports java.time across 61 files — the lower floor cost no source changes.
That check is gated inside the repository object rather than at its call sites, so a Play build compiles it dark by construction instead of by discipline — pointing a Play install at a page of APKs is exactly what the store forbids.
Exactly one network call exists: a once-a-day GitHub releases check on the hand-installed build, opt-out, carrying no content and no identifiers. It fails silently — a person praying offline should not learn about it from an error.
441unit tests, green before any release
An open, free REST API for the Ethiopian Orthodox Tewahedo Church calendar. No auth, no keys, no database.
Date conversion between the Ethiopian and Gregorian calendars, in both directions, with batch operations.
Fasting periods with reasoning, feast lookups, and ባሕረ ሓሳብ for the movable feasts.
The ግጻዌ and ስንክሳር lectionary with Bible references, plus iCalendar feeds you can subscribe to.
Dual implementation — TypeScript and Python.
Final-year project — multi-sensor hypertension monitoring, where the degree and the day job meet in one instrument.
Full five-layer chain: ESP32 sensor firmware, edge preprocessing, a scikit-learn prediction pipeline, and a React and Supabase clinical dashboard.
Real-time streaming from sensor to dashboard at 250 Hz, end to end.
250 Hzsensor data through the pipeline
Backend API for a job board — listings, applications, authentication, and employer workflows.
REST endpoints over PostgreSQL with role-separated employer and applicant flows.
Backend work in public, from the ALX track. Unpolished on purpose — this is where the reps happened.
A GraphQL CRM backend, a multi-milestone travel application, backend security hardening, and a Redis-cached property-listings API.
Nothing published yet This section fills in as posts are written. Until then, the code is the writing — the repositories above are public and reasonably commented. GitHub
33 tools across 7 groups — everything below appears in shipped work above, not on a wishlist.
What I write in
Where most of my work lives
The surfaces on top of it
Storage and caching
Shipping and keeping it up
Android, for Sinq
Models and LLM integration
Hiring, collaboration, or technical questions — the inbox is open. Replies within 12 hours.