← All case studies

Enterprise .NET · 2 min read

Symorgh: learning backend engineering inside an ERP

My early backend experience was in Symorgh, an enterprise platform with an Angular frontend and a layered C#/ASP.NET Core backend. I contributed within an existing team and codebase, working in the context of connected business processes rather than a standalone demonstration app.

My role
Backend Developer Intern at Borhan Sharif · 2021–2022
Project scope
Client-owned enterprise system · private source

Result and scope

Early experience contributing to a connected enterprise backend in C# and ASP.NET Core.

System walkthrough

The main responsibilities in this workflow.

  1. Angular business interface
  2. ASP.NET Core API
  3. Business services
  4. Repositories / unit of work
  5. Entity Framework Core and MySQL

An ERP exposes the connections between records

The project includes workflows for projects and activities, warehouse items, procurement, invoices, and payments. It also has users, roles, permissions, messages, and notifications. The interesting part is how those records relate: a task can require a part, a warehouse movement affects availability, and financial records need to refer to the business action they represent.

Working in an existing ERP taught me to trace a backend change through the business process around it, from related records to the permissions and screens that use them.

How the backend is organized

The source separates API, data, repository, service, and helper projects. Entity Framework Core and MySQL provide persistence, with an Angular application consuming the backend. The repository layer includes project, warehouse, financial, authorization, and messaging responsibilities.

A unit-of-work interface brings related repositories into the application layer. This structure gives a concrete example of separation between request handling, business services, and persistence. It is also a reminder that folder structure is only the beginning: correctness depends on how a particular operation uses those boundaries.

Permissions belong to the business model

The codebase contains both policy-based and resource-based authorization components. In an enterprise application, access is more specific than whether a user is logged in. A person's role and relationship to a resource can affect which operations are appropriate.

I contributed within an existing team and architecture. Working with resource-aware access rules gave me a foundation for later commerce and CRM development.

Project notes

Backend internship at Borhan Sharif, 2021–2022. Module descriptions explain the shared system context; my contribution was within the existing team. Client source is private.