Software Engineer, backend & full-stack
Mahmudul Islam
I build production web software from the data model to the UI.
Software engineer with an M.Sc. in Computer Science and 5+ years of shipping web applications. I design REST APIs in Python/FastAPI and NestJS on PostgreSQL, build frontends in Next.js, React and SvelteKit, and put LLM and RAG features into live products. Currently at CIVIS.digital in Celle.
Results from recent roles
- 70 %more users on the SO12 dashboard after I modernised it
- 80 %faster checkout after the Stripe integration
- 80 %fewer login support tickets after a central login system
- 1,800+freelance hours, Top Rated, 100 % job success on Upwork
Experience
-
03/2026 – today
Software Engineer, backend & frontend
CIVIS.digital GmbH, Celle
- Integrated LLM and RAG services into the MeinLeistungsCheck chatbot, giving people a quick social-benefits check in plain language.
- Built a central rule engine that unifies complex benefit calculations for an ESF-funded platform, working closely with social workers as domain experts.
- Own subscription billing end to end: relational data model, backend logic and UI.
- Modernised the SO12 dashboard; new features and fixes grew its user base by about 70 %.
- Introduced automated and end-to-end tests with Jest across several projects.
- Python
- NestJS
- Next.js
- PostgreSQL
- Jest
- Azure
- LLM/RAG
-
01/2025 – 02/2026
Software Developer
ICS Sustainable Solutions GmbH, Flensburg
- Developed and operated Python/FastAPI microservices, including deployment and configuration via GitLab CI.
- Integrated Stripe via REST, cutting checkout time by 80 %; redesigned the order workflow, raising throughput by 50 %.
- Built a SvelteKit customer portal with improved search.
- Python
- FastAPI
- PostgreSQL
- SvelteKit
- Docker
- GitLab CI
-
01/2024 – 12/2024
Full-Stack Developer (working student)
Digital Medical Academy, Stuttgart
- Built a central login system, reducing recurring support tickets by about 80 %.
- Replaced a manual process with a serverless, event-driven certificate generation and storage pipeline on Azure.
- Set up Terraform infrastructure as code, GitHub Actions CI/CD and Datadog monitoring.
- React
- Node.js
- TypeScript
- Azure Functions
- Terraform
- GitHub Actions
- Datadog
-
10/2021 – 09/2022
Web Developer (student assistant)
Universität Rostock, Rostock
- Replaced a hard-coded publication system with a configurable, database-backed web portal that staff maintain without code changes; ran the Linux server stack.
- PHP
- MySQL
- JavaScript
- Linux
- Apache
-
10/2019 – 10/2023
Freelance Full-Stack Developer
Upwork, remote
- Top Rated with 100 % Job Success across 30+ international clients and 1,800+ hours: web apps, API integrations, data imports and database migrations.
- PHP
- Ruby on Rails
- JavaScript
- MySQL
Skills
- Languages
- Python, TypeScript, JavaScript, SQL, PHP, Bash
- Backend & APIs
- FastAPI, NestJS, Node.js, REST API design, Microservices, RabbitMQ
- Frontend
- Next.js, React, SvelteKit, HTML/CSS, Responsive UI
- AI & LLM
- LLM integration, RAG pipelines, Chatbots in production
- Databases
- PostgreSQL, MySQL, MongoDB, Data modelling, Schema migration
- Cloud & DevOps
- Docker, Terraform, Azure, AWS, GitLab CI, GitHub Actions, Datadog, Linux
- Quality
- Jest, End-to-end tests, Code review, Documentation, Git
- Integrations
- Stripe, Third-party APIs, Event-driven imports
Education
M.Sc. Computer Science
Universität Rostock, 2025
Thesis: reverse engineering existing databases into explicit relational models.
Certificates
- HackerRank: SQL (Advanced)
- HackerRank: REST API
- HackerRank: JavaScript
- Upwork Top Rated Web Developer
What colleagues say
“Consistently demonstrated exceptional technical ability, strong problem-solving skills, and a deep understanding of modern software development practices.” CEO, ICS Sustainable Solutions GmbH
“He was reliable and competent in always finding solutions and answers.” Research associate, Universität Rostock
Latest writing
All posts-
Correlation IDs: following a request across services
When a request hops through a gateway, a few services and a worker, a shared ID is what lets you reconstruct what happened. Here is a simple way to pass one.
-
The transactional outbox: saving data and publishing events reliably
Writing to the database and publishing a message are two separate steps that can fail independently. The outbox pattern turns them into one transaction.
-
Circuit breakers: failing fast when a dependency is down
When a downstream service is struggling, waiting on it makes things worse. A circuit breaker stops calling it for a while so both sides can recover.
Get in touch
I read every message and usually reply within a day. Email works best; I am also on LinkedIn.