Reza Salmanian

Command Palette

Search for a command to run...

Technical Project Leadership

How I run engineering projects, end to end

Not a list of projects — a description of the process I bring to every one of them, from first conversation to production support.

01

Discovery

Start by understanding the business, not the backlog. I talk to stakeholders, map the current workflow, and identify the real constraint before proposing a solution.

02

Requirements Gathering

Translate business goals into concrete, testable requirements. I favor a small number of clear requirements over a large ambiguous list — ambiguity is where projects go over budget.

03

Architecture Planning

Design the system boundaries, data model, and integration points before writing implementation code. Architecture decisions are the ones that are expensive to reverse — they get the most upfront thought.

04

Database Design

Model data around the domain, not the first screen that needs it. I design for the relationships and constraints the business actually has, and validate the model against multiple future use cases before committing.

05

API Strategy

Define API contracts as a product decision, not an implementation detail — versioning, permissions, and consumer needs are settled before the first endpoint ships.

06

UI Planning

Plan interfaces around the user's workflow, not the data model. I sketch the critical paths first and validate them before investing in visual polish.

07

Sprint Planning

Break architecture into shippable increments that deliver real value on their own, so the team can course-correct early instead of discovering problems at the end.

08

Risk Management

Identify the riskiest technical assumption in a project and resolve it first. Most project risk is concentrated in a small number of unknowns — I find and de-risk those early.

09

Code Reviews

Treat code review as a design conversation, not a gate. I look for correctness, maintainability, and whether the change fits the system's architecture — not just style.

10

Deployment

Ship incrementally with rollback paths defined up front. Deployment should be a routine, low-risk event, not a milestone the team dreads.

11

Production Support

Stay close to how systems behave in production — monitoring, incident response, and using real usage data to inform the next iteration.

12

Scaling

Scale the parts of the system that actually need it, informed by real usage patterns rather than speculative future load.

13

Stakeholder Communication

Keep stakeholders informed with the tradeoffs, not just the status. Technical decisions are business decisions, and I communicate them that way.