“We still run this through spreadsheets.”
Turn the workflow into a controlled system without losing the knowledge already inside it.
Freelance Software Engineer · Morocco
I plan software with clients, build business applications from scratch, and improve systems that have become slow, fragile or difficult to maintain. Then I deploy the work and stay involved as it evolves.
01 / PROBLEMS I SOLVE
Technology is useful only after the real constraint is understood. These are the conversations that usually begin a project.
Small businesses, startups, and agencies that need experienced technical ownership.
Turn the workflow into a controlled system without losing the knowledge already inside it.
Investigate the full path through data access, server resources, architecture and the browser.
Find the coupling, stabilize the important behavior and improve the structure deliberately.
Clarify the workflow, challenge assumptions and define a practical route to production.
Understand it before proposing a rewrite. Preserve what works and reduce risk step by step.
Make releases repeatable, observable and appropriate for the way the application is operated.
02 / SERVICES
I can own a new build, join an existing codebase, or handle a difficult part of a larger delivery. The engagement follows the problem, not a fixed package.
Take an idea from workflow planning and database design through implementation, deployment and support.
Business web applications, backend systems, APIs, internal tools, dashboards, native Android applications with Kotlin, and Windows business software with WPF and MVVM.
Understand first. Stabilize. Then improve deliberately.
Architecture investigation, production diagnosis, debugging, modernization and technical debt reduction. I avoid proposing a rewrite before the existing system has been understood.
Replace repetitive, error-prone work with a process people can operate and trust.
Spreadsheet transformation, document workflows, data pipelines, email automation, listing and buyer matching, and lawful extraction of public web data.
Production-focused backend and business application engineering.
C#, .NET, ASP.NET Core, ASP.NET Web API, Python, Flask, Django and REST APIs, supported by practical frontend work where the product needs it.
Make future changes less risky and easier to reason about.
Clear boundaries, database design, maintainable modules, efficient dependencies, design patterns and careful use of SOLID principles to reduce coupling.
Software needs engineering after launch, not just before it.
New features, bug fixes, testing, performance and security work, database optimization, refactoring, deployment improvements and production support.
03 / SELECTED WORK
It has shared state, sensitive documents, imperfect imports, limited resources and people depending on it. That is the level of work represented here.
Confidential Client Work
A production web application that brings financial analysis, document drafting, sharing, exports and deal workflows into one system.
I am responsible for initial planning, architecture, development, deployment and ongoing maintenance.
Valuation analysis, pricing opinions, confidential memorandum building, anonymous listings, folders, controlled sharing and legacy imports.
Versioned document state, structured imports, validation, PDF and spreadsheet processing, OCR fallback, reusable templates and print-ready output.
Python, Flask, SQLAlchemy, Jinja2, JavaScript and document-processing libraries in a modular application architecture.
REAL PRODUCTION CONSTRAINTS
Multiple people working with shared documents and state required careful investigation of concurrency, ownership and consistency.
Concurrent usage made performance an architectural concern, not a cosmetic optimization. The work required tracing behavior across application and infrastructure constraints.
04 / HOW I WORK
You work directly with the engineer planning and building the software. No unnecessary layers between the problem and the technical decisions.
Understand the business problem, the people involved and what is making the current situation expensive or risky.
Question assumptions where a requested feature may hide a simpler, safer or more useful solution.
Map the workflow, system boundaries, data model, delivery sequence and production constraints.
Bring technical options back into the business conversation before they become expensive code.
Make the scope and tradeoffs clear so the build starts with shared expectations.
Implement maintainable software with attention to security, testing, accessibility, efficient data access and the real operating environment.
Move the application into production with sensible configuration, migrations, observability and repeatable delivery.
Fix, improve and extend the system as the business learns and requirements change.
05 / AUTOMATION
The goal is not automation for its own sake. It is to make the work structured, repeatable and easier to inspect.
OPEN-SOURCE ENGINEERING PROJECT
A production-minded Python toolkit that turns PDF invoices into structured invoice data and clean Excel workbooks.
It includes configurable multiprocessing, extraction strategies, logging, tests, demo invoice generation and extension points for other output formats and extraction methods.
06 / ABOUT
I have been developing software since 2014. My work usually begins with a conversation about the process, not a programming language.
I challenge requirements when needed, plan the workflow and architecture, suggest improvements, and build once we agree on the direction. I then deploy the software and continue maintaining it.
Clients work directly with me. I care about what happens after launch: whether the system is secure, observable, accessible where it should be, efficient with its data, and maintainable when the next change arrives.
07 / START A CONVERSATION
Have a new idea, a difficult codebase, or a process that should not still be manual?