“We still run this through spreadsheets.”
Turn the workflow into a controlled system without losing the knowledge already inside it.
Freelance .NET & Python Engineer · Kenitra, Morocco · Remote
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.
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
The platform below has shared state, sensitive documents, imperfect imports and limited server resources, and people depend on it.
Confidential Freelance Work
A production web application that brings financial analysis, document drafting, sharing, exports and deal workflows into one system.
I was 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 aim is to make the work structured, repeatable and easy to inspect.
PROJECTS / TWO PYTHON DATA TOOLS
OPEN-SOURCE ENGINEERING PROJECT
A 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.
How InvoiceFlow converts PDF invoices to Excel: features, install and usage →
PUBLIC DATA ENGINEERING PROJECT
A Python tool that streams the large Companies House company data file in chunks and writes filtered Excel lead lists, one folder per postcode area.
An optional second step looks for each company's website and records publicly listed business contact details, only when the site can be verified as belonging to that company. Coverage is limited, and the project documents its limitations.
How the UK Company Data Tool works: approach, limits and responsible use →
06 / ABOUT
I started programming in 2014 through personal projects and have developed software professionally since 2016, first as a .NET developer at Grosomodo and then at Tatbik.ma until August 2025. Since 2020 I have also taken on paid freelance projects alongside that employment, and in 2026 freelance client work is my main focus. I am based in Kenitra, Morocco, and work remotely.
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 / QUESTIONS
I’m based in Kenitra, Morocco, and work remotely. Before work starts, we agree on scope, priorities, access to the codebase, review points and how progress will be shared. You discuss requirements directly with me, the engineer doing the work.
I started programming in 2014 through personal projects while studying. I have developed software professionally since 2016, first at Grosomodo and then at Tatbik.ma until August 2025. My professional experience lists both roles and the work they involved.
I work as a freelancer. I took on paid freelance projects alongside my full-time jobs from 2020, and in 2026 freelance client work became my focus.
My main tools are C#, .NET, ASP.NET Core, Python, REST APIs and SQL databases. I build business web applications, internal tools, APIs and integrations, and automate spreadsheet and document workflows. See .NET development, Python development and selected work, including the open-source InvoiceFlow toolkit.
Yes. I start by understanding the code, data, deployment and how people use the system, then stabilize and improve it step by step instead of proposing a rewrite by default. Read how I approach modernizing older software, or the CRM data migration case study.
Email me at a95yman@gmail.com or see the contact page. For a project, a short description of the current process, the problem and the outcome you want is enough; you don’t need a finished specification.
08 / START A CONVERSATION
Have a new idea, a difficult codebase, or a process that should not still be manual?