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.
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.
laravel-postman-exporter
PHPPoint 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
DockerA Laravel container stack that comes up with one make command — PHP-FPM, Nginx and MySQL, with the compose file and configs wiring them together.
university-fastapi-py
PythonA 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
PythonAn 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
PythonDrop 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
PythonWatches 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
PHPA Laravel task board — assignment, state transitions, and the Eloquent relationships that hold it together underneath.
Read the source →pytest-tdd-py
PythonTest-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
JupyterA 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
SolidityA 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.