Daniel Berhane · Portfolio

Hi, I'm Daniel. I work in software and backend engineering.

I'm a computer science graduate who builds backend services, distributed data systems, cloud workflows, and useful interfaces. Here are a few projects I've worked on.

01

Selected work

A few projects I've worked on, with notes on what I built and learned.

01

Independent distributed/backend builder

Job Posting Skill Demand Analyzer Engine & REST API

Validated an asynchronous Python and PySpark engine on 500,000 real posting records: 411,135 canonical postings, 156,491 skill matches across 73 canonical skills, and 0.738ms p95 over 1,000 populated sequential warm-cache Python-skill requests.

My contribution

I built the asynchronous processing service, FastAPI endpoints, Redis cache-aside layer, Spark partitioning strategy, PostgreSQL indexes, Docker packaging, automated GitHub Actions tests, and a Next.js/React results explorer.

Known limit

Local 500K convenience sample; 17.77% heuristic duplicate candidates and 73 matched skills. No production SLA or optimization speedup claimed.

  1. 01FastAPIAsync run submission
  2. 02RedisQueue + cache-aside
  3. 03PySpark500,000 → 411,135 rows
  4. 04Skill extraction156,491 matches · 73 skills
  5. 05PostgreSQLIndexed + idempotent
  6. 06Metrics API0.738ms p95 locally
  7. 07Next.js + ReactAudited snapshot explorer
02

Independent backend builder

Paper-to-Digital Invoice Intelligence Platform

Built a CDK-defined serverless invoice workflow: Step Functions coordinates Textract and Lambda, Amazon Bedrock suggests missing or low-confidence fields, and Streamlit verifies uncertain values before PostgreSQL persistence.

My contribution

Built a serverless invoice pipeline with AWS CDK and Step Functions coordinating Textract extraction and Lambda processing. Added a Streamlit review screen that keeps uncertain extractions out of PostgreSQL until a reviewer validates them. Added Amazon Bedrock fallback extraction for missing or low-confidence fields using the existing invoice schema.

Known limit

Locally tested implementation; AWS execution and database integration still require deployment validation.

  1. 01Google OAuth / OIDCApproved reviewer sign-in
  2. 02S3Private invoice upload
  3. 03Step Functions + LambdaCoordinate Textract extraction
  4. 04Amazon BedrockRecover uncertain fields
  5. 05Review gateStreamlit verifies candidates
  6. 06PostgreSQLSave validated invoice fields
03

Independent backend builder

Homeowner Permit Compliance Checker

Built Python ingestion with Apify, a shared PostgreSQL rule schema, FastAPI project-attribute lookups, and an OpenAI conversational agent that calls database tools and explains retrieved requirements.

My contribution

Added Python and Apify collection with source evidence, normalized rule candidates and reviewed PostgreSQL ingestion. Built FastAPI endpoints that map project attributes to jurisdiction-specific permit rules. Built a conversational OpenAI agent that calls a validated database lookup tool and explains retrieved requirements in plain language.

Known limit

Municipal raw documents and chunks are stored in Supabase. Its database-size quota currently blocks verification of the résumé’s 50+ source-site count.

  1. 01Municipal sourcesApify + Python collection
  2. 02Review + normalizationCompound rules and provenance
  3. 03PostgreSQLJurisdiction-scoped rules
  4. 04FastAPIValidated attribute lookup
  5. 05OpenAI agentTool calls and explanations
  6. 06JavaScript interfaceReact/Vite Aura conversation
02

How I work

A few habits that guide how I build and explain technical work.

01

Understand the path

I like being able to follow a result back through the code, transformations, and source that produced it.

02

Leave room for review

When an automated result is uncertain, I would rather make that visible and give someone a clear way to review it.

03

Measure before claiming

I try to keep metrics tied to a clear baseline, method, and sample instead of treating them as decoration.

04

Write down the tradeoffs

Constraints and unfinished parts are useful context, so I include them alongside the decisions that shaped the work.

I earned a B.S. in Computer Science in May 2025. I'm interested in software, backend, and distributed-systems roles where I can keep learning and contribute to useful systems.

03

Other work

A little more of the work I've contributed to.

ICATT Consulting

Django ecommerce and accounting applications, FastAPI financial reporting, and EventBridge-scheduled ledger reconciliation

Django / FastAPI / SQL / Docker / AWS ECS / pytestAug 2025–Mar 2026 · Contract software developer

Cube Money (UMD StartHub)

Flask APIs for Ethiopian Ekub rotating savings: groups, contributions, payouts, late payments, and one seat per phone number

Flask / SQLAlchemy / PostgreSQLJan–Jun 2025 · Software engineer

Get in touch

Thanks for stopping by.

If you'd like to talk about a role, a project, or the work here, feel free to reach out.

Email meGitHub