essejblack

Five years in

Software developer

Ehsan Jahanara

I write the part of the app nobody sees. APIs, queue workers, database schemas, and the containers that put them on a server — plus the tooling that tests, scrapes, and automates everything around them.

49 public repos PHP · primary Python · secondary


GET /about


Background

Small tools, shipped often.

Five years of writing backends, most of them in Laravel. Routes and controllers, Eloquent relationships that don't fall apart at scale, queued jobs for the slow work, migrations that run cleanly on the first try. Then Docker, Nginx and MySQL to get the whole thing running the same way on my laptop and on the box.

The other half is Python. It's where I build the thing that solves a problem I'd otherwise solve by hand twice — a scraper that watches a price, a pytest suite that catches the regression, a FastAPI service, an LLM agent wired to real tools.

Most of what I learn ends up as a public repo. There are forty-nine of them, and the pattern is consistent: hit a problem, build the smallest thing that fixes it, keep it.

Role
Software developer
Experience
7 years
Primary
PHP · Laravel
Secondary
Python
Also
Docker · MySQL
Working
Remote

GET /stack


6 groups

What I reach for.

Language · PHP

  • PHP 8
  • Laravel
  • Eloquent ORM
  • Blade
  • Composer
  • Artisan
  • PHPUnit

APIs & services

  • REST
  • OpenAPI
  • Postman
  • Auth & tokens
  • Queues & jobs
  • Package authoring

Language · Python

  • Python 3
  • FastAPI
  • pytest
  • TDD
  • Mocking
  • Selenium
  • Requests

AI & data

  • LLM agents
  • Chatbots
  • Speech to text
  • Keras
  • CNNs
  • Dataset prep

Infrastructure

  • Docker
  • Docker Compose
  • Nginx
  • MySQL
  • Make
  • Git
  • Linux

Working knowledge

  • JavaScript
  • Vue
  • Three.js
  • Solidity
  • Web3
  • HTML & CSS

GET /work


10 of 49 repos

Things I built and kept.

Package

laravel-postman-exporter

PHP

Point it at a Laravel app and it walks the route table, groups the endpoints by resource, and writes a Postman collection you can hand straight to a frontend team. No more API docs that go stale the day after you write them.

Read the source →

dockerize-laravel

Docker

A Laravel container stack that comes up with one make command — PHP-FPM, Nginx and MySQL, with the compose file and configs wiring them together.

Read the source →

university-fastapi-py

Python

A university records API in FastAPI: typed request models, dependency-injected routes, and OpenAPI docs generated from the code itself.

Read the source →

ai-agent-py

Python

An LLM agent loop. Hand it a set of tools, let it decide which one to call, and keep the conversation state coherent across turns.

Read the source →

audio-to-text-py

Python

Drop an audio file in, get a transcript out. Speech-to-text that runs locally instead of behind a subscription.

Read the source →

digikala-price-checker

Python

Watches a marketplace listing and reports when the price moves. Built once for one product, then generalised into a scraper worth keeping.

Read the source →

task-management

PHP

A Laravel task board — assignment, state transitions, and the Eloquent relationships that hold it together underneath.

Read the source →

pytest-tdd-py

Python

Test-first practice in pytest: fixtures, mocks, and the red-green-refactor loop applied until it stopped feeling like extra work.

Read the source →

py-colorizephoto-keras

Jupyter

A convolutional network trained to put colour back into black-and-white photographs, with the dataset prep that made it trainable.

Read the source →

todolist-solidity

Solidity

A to-do list that lives on-chain: the Solidity contract, its tests, and a small web front end that calls into it.

Read the source →

POST /contact


Open to work

Got a backend that needs building?

Send me the problem. If it's Laravel, Python, or something that has to run reliably on a server, I'll tell you honestly whether I'm the right person for it.