# Developer Portal 👨‍💻

## Introduction

In early 2023, our engineering teams were spending one to three weeks per month manually setting up new projects leading to significant productivity loss and inconsistent configurations. After doing a developer survey and quantifying the impact, I built a self-service developer portal using Backstage that reduced project setup time from one week to less than an hour. This presentation walks through the journey of designing and implementing this solution.

## Problem Space 🔍

* ⏰ **Time Cost**: \~1 week per project setup
* 📈 **Monthly Impact**: 1-3 projects = Up to 3 weeks engineering time lost
* 👥 **Scale**: Supporting 200+ engineers
* 💸 **Business Cost**: \~$15,000 per project setup (assuming average engineer salary)

#### Time Breakdown ⏱️

```
Project Setup Timeline:
├── Infrastructure Setup: 2-3 days
├── Access Management: 1 day
├── Platform Integration: 1-2 days
└── Testing & Validation: 1 day
```

## Pain Points Identified Through Survey

<figure><img src="/files/YvJMmUbqq8IIwogGvHEy" alt=""><figcaption><p>Manual Project Setup Flow</p></figcaption></figure>

* **Infrastructure Challenges** 🏗️
  * Engineers lacking IaC knowledge and taking time to understand guidelines
  * Limited terraform expertise in product teams
* **Repository Setup Issues** 🔐
  * Manual repository creation
  * Time-consuming GitHub team setup
  * Inconsistent repository settings
* **Platform Integration Friction** 🔄
  * Context switching between platforms:
    * 🔍 Sentry for error tracking
    * 📊 Datadog for monitoring
    * 🚦 LaunchDarkly for feature flags
    * [️🚨](https://emojis.wiki/security/) Snyk for security scanning
  * Manual resource creation in each platform


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://notes.mikaelsamvelian.com/devops-knowledge/developer-portal.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
