TR
GitHub

Tarik Razine / Portfolio

Independent thinking. Thoughtful engineering.
Tarik Razine Logo Tarik Razine Logo
Tarik Razine, CTO at MDA Assessment

Tarik Razine

CTO at MDA Assessment

Architecture · Engineering · Leadership

I design systems.
And lead them into reality.

CTO at MDA Assessment and software architect with 10+ years in full stack engineering. I turn complex requirements into clear system designs—and guide teams from the first diagram to a working product.

CurrentlyCTO MDA Assessment
Experience
10+ years building
Specialty
Architecture hands-on by design
Based in
Casablanca Morocco

How I think / How I lead

From complexity
to a shared blueprint.

I’m a software architect who stays close to the code. Here’s how I connect system design, clear communication, and team delivery.

An illustrative order platform—not a client case study.

C4 / System context

Start with the whole picture.

Before choosing a stack, I map the people, business goals, external systems, and constraints. A shared picture makes the right problem visible to everyone—not just engineers.

Define the system boundary before defining the services.

What I make clearSystem context · stakeholder alignment

C4 / System context01 / 05
C4 · Level 1 / System context Customers and operations staff use an order platform. The platform delegates payment processing to an external payment provider. Places orders Manages orders Requests payment Customers Person · places orders Operations Person · manages orders Order platform Software system · our boundary Payment provider External software system
The people, the platform, and the systems outside our control.

C4 / Containers

Many clients. Clear boundaries.

I design how web, mobile, and internal apps connect to the platform. In this example, Kong handles the API edge while services own their responsibilities and data.

Choose microservices for independent ownership and deployment—not by default.

What I make clearApplication map · service contracts

C4 / Containers02 / 05
C4 · Level 2 / Containers Web, mobile and operations apps send HTTPS requests through Kong. Kong routes to independently deployable Orders, Billing and Identity services. Each service owns its own database. This view focuses on synchronous communication. HTTPS HTTP Web app Browser client Mobile app Mobile client Ops app Internal client Kong API Gateway Auth policies · routing · rate limits Orders Service Billing Service Identity Service Orders DB Private data Billing DB Private data Identity DB Private data
A simplified request-path view. Each service owns its data; clients enter through Kong.

Runtime / Event flow

Connect services, not their lifecycles.

Requests and events solve different problems. Kong routes client requests; Kafka carries events between services. I make those communication choices explicit, including what happens when something fails.

Design for retries, idempotency, and eventual consistency. An outbox closes the database-to-broker gap.

What I make clearEvent contracts · failure scenarios

Runtime / Event flow03 / 05
Communication / Event flow The Orders service stores an order and an outbox record in one database transaction. A relay publishes OrderPlaced to Kafka. Billing and Notifications consume independently, using retries and idempotent handling. Kafka is separate from Kong’s request routing. OrderPlaced Consumes Consumes Orders service Order + outbox transaction Outbox relay Publishes committed events Kafka Topic · orders.placed Billing Idempotent consumer Notifications Independent consumer
Illustrative OrderPlaced flow. Consumers progress independently; delivery is not assumed to be exactly once.

C4 / Components

Protect the business at the core.

Inside a service, I use hexagonal architecture to separate business rules from transport and infrastructure. Ports define the contracts. Adapters connect HTTP, persistence, or messaging without owning the domain.

Dependencies point toward the core. Frameworks stay replaceable and business behavior stays testable.

What I make clearComponent view · ports & adapters

C4 / Components04 / 05
C4 · Level 3 / Orders components Inside the Orders service, an HTTP adapter calls a PlaceOrder input port. The application use case and domain model depend on an OrderRepository output port, implemented by a persistence adapter. Dependency arrows point inward; the core does not depend on HTTP or the database framework. Calls Uses Implements HTTP adapter Controller · validates requests PlaceOrder Input port · application use case Order domain Business rules · invariants OrderRepository Output port · core interface Persistence adapter Infrastructure · implements port
Zoom into Orders. Arrows show code dependencies, not a runtime sequence. The persistence adapter implements the core’s repository port.

Leadership / Agile delivery

A diagram is only the beginning.

I lead teams from architecture to implementation: present the design, discuss trade-offs, break work into deliverable slices, and keep decisions visible. Agile delivery turns the shared plan into a working system.

Give the team clear ownership and room to challenge the design. Let feedback shape the next iteration.

What I make clearArchitecture decisions · team alignment · iterations

Leadership / Agile delivery05 / 05
Delivery / People & decisions Align on the business problem, record architecture decisions, deliver a small end-to-end slice, and review real feedback with the team. Feedback informs the next iteration. This is a delivery workflow, not a C4 diagram. Iterate Align on the problem Stakeholders · constraints · success Make decisions visible C4 views · ADRs · trade-offs Deliver a vertical slice Clear ownership · small increments Review. Learn. Adapt. Demos · feedback · retrospectives
The delivery loop: align, decide, build, learn. Architecture evolves with the product and the team.

Selected work / 03

Real problems, shipped products. A closer look at what I built and why it matters.

01 / 2025 Featured product

AdMarkAI (opens in a new tab)

AI-powered marketing content generator that transforms product images into comprehensive marketing campaigns.

Outcome

Full campaign generation in 90 seconds. 35+ languages supported. One-click from product photo to ready-to-publish marketing assets.

The problem & my approach

The challenge

Small businesses and solo founders spend hours creating marketing content for each product, manually writing ads, editing images, and translating copy across languages.

What I built

Built an AI-powered platform that takes a single product image and generates a complete marketing campaign: enhanced images, videos, SEO copy, and social posts in 35+ languages, all in under 90 seconds.

  • Next.js
  • Mastra
  • AI SDK
  • tRPC
  • Drizzle ORM
  • Tailwind CSS
  • shadcn/ui
  • Inngest
  • Resend

02 / 2024 Client project

MDA Assessment (opens in a new tab)

Modern enterprise IT consulting platform with self-service assessment and booking.

Outcome

Prospects can now self-qualify via the assessment tool before booking. Consultation scheduling is fully automated. Available in English and French.

The problem & my approach

The challenge

An IT consulting firm had no way for prospects to self-assess their technology maturity or book consultations online. Everything was manual, phone-based, and slow.

What I built

Designed and built a multilingual enterprise platform with an interactive IT maturity assessment tool, integrated booking calendar, and responsive design with dark/light themes.

  • Astro
  • Tailwind CSS
  • shadcn/ui
  • Resend

03 / 2024 Client project

NoConsulting (opens in a new tab)

Strategic digital transformation consulting platform for enterprise clients.

Outcome

38+ projects delivered. 8+ years of proven track record now visible to prospects. Structured process clearly communicated, reducing sales cycle friction.

The problem & my approach

The challenge

A digital transformation consultancy trusted by major brands had no online presence that reflected the quality of their work or their structured methodology.

What I built

Built a full stack platform showcasing their consult-develop-deploy-support process, with client case studies and a clear path from first visit to engagement.

  • Next.js
  • Tailwind CSS
  • shadcn/ui
  • Resend

For more projects and contributions, explore my GitHub profile:

View GitHub Profile

About

I’m currently CTO at MDA Assessment and a software architect with 10+ years of full stack engineering experience. I design complex applications and help teams understand how the pieces fit together—from client apps and service boundaries to the components inside a service.

I use C4 diagrams to communicate architecture at the right level of detail, hexagonal architecture to protect business logic, and tools such as Kong and Kafka where API management and event-driven communication fit the problem. My foundation is still hands-on: Next.js, Node.js, TypeScript, and AI integrations.

Leading delivery matters as much as designing the system. I present diagrams, explain trade-offs, align teams around clear contracts, and use Agile methods to turn complex work into manageable increments. The goal is a design the team understands, owns, and can evolve.

What I focus on

System architecture

C4 views, service boundaries, and a shared technical direction.

Team leadership

Agile delivery, clear ownership, and decisions the team can act on.

Hands-on engineering

From ports and adapters to production apps and AI integrations.

Skills & toolkit

From the architecture diagram to the shipped product. The tools change; clear boundaries and thoughtful engineering stay.

01 / Design the system

Architecture & leadership

Make complex systems understandable and give teams a clear direction.

  • C4 Model
  • Microservices
  • Hexagonal Architecture
  • Kong
  • Kafka
  • Event-Driven Architecture
  • Agile
  • Technical Leadership

02 / Build the experience

Front-end engineering

Turn the product into responsive, accessible interfaces people can use.

  • HTML5
  • CSS3
  • JavaScript/TypeScript
  • React
  • Next.js
  • Astro
  • Tanstack Start
  • TailwindCSS
  • Shadcn UI
  • Radix UI

03 / Connect the pieces

Back-end engineering

Build the APIs and application services behind the interface.

  • Node.js
  • Deno
  • Bun
  • tRPC
  • Express.js
  • NestJS
  • Hono
  • Fastify
  • LangChain
  • Convex

04 / Extend the product

AI & automation

Connect models, tools, and workflows to useful product capabilities.

  • AI SDK
  • Mastra
  • LangGraph
  • OpenAI
  • n8n
  • Trigger.dev
  • Background Jobs
  • Workflow Automation
  • AI Agents Development

Articles & comparisons

Have a role or a project in mind?

Let’s build something that matters.

Need an architect who can connect system design, hands-on engineering, and team delivery? Let’s talk about what you’re building.

Get in touch

Overview

CTO at MDA Assessment · Software Architect
Morocco, Casablanca
Tarik Razine Logo Tarik Razine Logo