Senior Full Stack Software Engineer

Senior Software Engineer and Front End Developer with nine years programming scalable web applications, internal tools, and B2B platforms using Next.js, React, and Laravel.

Sakhtkaar: Construction Tenders & Bidding Platform, project by Ali Emami

Sakhtkaar: Construction Tenders & Bidding Platform

Construction bidding and procurement platform engineered with Laravel DDD, Next.js feature-based portals, Redis caching, and smart expired-tender SEO preserving crawl equity.

Project Overview

Sakhtkaar is a dedicated online procurement and bidding platform designed for the commercial construction and building sector (sakhtkaar.ir). The platform connects project developers, civil engineers, general contractors, and trade subcontractors to streamline tender publication, quotation submissions, and procurement decision-making. As a full-stack software engineer on the project, I architected the core business domains in Laravel using Domain-Driven Design (DDD) principles and developed the responsive Next.js frontend user portals.

The Challenge: Short-Lived Content, Concurrency Spikes & Complex Workflows

Digital procurement platforms in civil engineering face distinct architectural hurdles:

  • The short-lived content SEO challenge: Tenders typically have an active lifespan of only 7 to 30 days before closing. In standard architectures, expiring tenders generate 404 errors or soft-404 redirects, destroying search engine crawl equity, fragmenting backlink profiles, and reducing organic visibility.
  • Deadline-driven concurrency spikes: Subcontractors and material suppliers frequently submit their detailed pricing proposals in the final hours before a tender closes, causing sudden bursts in database write operations, document uploads, and calculation workloads.
  • Distinct multi-role user workflows: Project owners (employers) and bidding contractors operate under fundamentally different functional requirements, needing purpose-built interfaces for bill-of-quantities publishing, document downloads, quotation comparisons, and award notifications.

Backend Architecture: Laravel Domain-Driven Design (DDD)

To keep the platform flexible as procurement regulations and commercial requirements evolve, we decoupled the backend into distinct business domains:

  • Domain boundary isolation: Organized the backend into four core bounded contexts: Tenders (specifications, milestones, documents), Bids (subcontractor proposals, pricing schedules, revisions), Contractors (profiles, certifications, trade qualifications), and Contracts (award states, acceptance verifications). Each domain encapsulates its own entities, repositories, and domain services.
  • Deterministic business rules: Encapsulated critical procurement invariants (including tender status transitions between Draft, Published, UnderReview, Closed, and Awarded, bid revision deadlines, and permission guards) within pure domain models, keeping HTTP controllers thin and focused on request dispatch.
  • High-concurrency safeguards: Implemented atomic database transactions and strict row-level locking on submission records to prevent race conditions during high-volume deadline rushes. Non-critical operations (such as document virus scanning, file compression, and email/SMS alerts) were offloaded to background Laravel queues.
  • Redis caching strategy: Leveraged Redis to cache high-frequency read queries for active tender listings, category counts, and geographic filter combinations, dramatically reducing CPU load on the primary MySQL database.

Frontend Engineering: Next.js Feature-Based Architecture

To serve both project owners and bidding contractors efficiently, the frontend was designed around modularity:

  • Tailored role-based portals: Built dedicated, feature-based user spaces for employers and contractors. Each feature module contains its own routes, state hooks, and presentation components, allowing teams to iterate on contractor bidding workflows without impacting employer project management tools.
  • Shared component system: Unified common interface elements (including technical specification tables, multi-file drag-and-drop uploaders, date range pickers, and status badges) into a shared component library, eliminating code duplication and standardizing UI conventions.
  • Multi-criteria bid comparison dashboard: Engineered an intuitive comparison view for project owners, allowing side-by-side evaluation of subcontractor proposals across unit rates, completion timelines, warranty guarantees, and past performance ratings.

Innovative Technical SEO: Preserving Crawl Equity for Expired Tenders

To overcome the inherent volatility of short-lived tender pages, we devised a technical SEO architecture that maximized long-term search equity:

  • Permanent indexable tender archives: Closed tender pages remain permanently live with an HTTP 200 status and an explicit "Closed / Expired" badge, avoiding 404 errors or redirects that drop crawl history.
  • Smart related-tender recommendation engine: On every expired tender page, an intelligent algorithmic module dynamically queries and displays relevant, currently active tenders within the same construction category and geographic region. This retained search visitors, reduced bounce rates, and channeled link equity directly to open opportunities.
  • Structured Schema.org markup: Injected dynamic JSON-LD markup for Project, BreadcrumbList, and Organization schemas, ensuring search engine bots immediately comprehend project trade classifications, location parameters, and closing dates.
  • Dynamic XML sitemaps: Automatically segmented active and archived tenders within clean XML sitemaps, keeping search crawlers prioritized on high-value, active bidding opportunities.

Key Measured Outcomes

  • Zero crawl equity loss: Retaining expired tenders with smart active recommendations transformed short-lived URLs into a durable, compounding organic search footprint.
  • Rock-solid deadline concurrency: Database transactions, Redis caching, and queued jobs handled high-volume bidding surges in the final hours of major tenders without dropped submissions or timeouts.
  • Maintainable DDD codebase: Strict bounded contexts enabled clean feature expansion across distinct contractor and employer workflows without regression risks.
  • Streamlined procurement cycles: Intuitive comparison matrices and automated notification pipelines substantially accelerated the time required for employers to review proposals and award contracts.
  • Next.js

  • React

  • Tailwind CSS

  • Laravel

  • Domain-Driven Design (DDD)

  • Redis

  • Database Transactions & Locking

  • Technical SEO

  • MySQL

Sakhtkaar: Construction Tenders & Bidding Platform screenshot
Previous
Next

Project Details

Name: Sakhtkaar: Construction Tenders & Bidding Platform
Client: Sakhtkaar
Category: B2B Marketplaces
Tags: Next.js, React, Tailwind CSS, Laravel, Domain-Driven Design (DDD), Redis, Database Transactions & Locking, Technical SEO, MySQL
Let's chat with me? - Online
Please fill out the form below to start chatting with me directly.