# Case Study: Portfolio / CV Platform for Freelance Positioning

Canonical: https://dok.sh/case-studies/portfolio-site
Project: https://dok.sh/projects/portfolio-site
Case study page: https://dok.sh/projects/portfolio-site/case-study

## Summary

This portfolio platform is a personal product built to go beyond a static résumé. It combines structured content management, localized presentation, project storytelling, CV download, contact flows, and booking functionality in a single system. The site is both a professional positioning tool and a live example of how I design admin-driven products with clear information architecture.

## Subtitle

A bilingual portfolio and CV platform designed to present experience, projects, and availability in a structured, professional, and conversion-oriented way.

## Domain

Personal Branding / Portfolio Platforms / Content-Driven Web Applications

## Target users

Recruiters, potential clients, hiring managers, collaborators, and anyone evaluating my experience, technical range, and availability for future work.

## Role

Founder / Product Engineer

## Problem

A traditional CV is too limited for experienced technical work. It does not show product thinking, project depth, structured storytelling, or how someone builds real systems. I wanted a platform that could present my background in a clearer and more useful way, while also acting as a living demonstration of the kind of admin-driven, bilingual, content-oriented systems I can build.

## Solution

I designed the project as a full-stack application with a clear separation between the public portfolio experience and the administrative content layer.

This included:
- a public-facing portfolio and resume experience
- a dedicated admin interface for editing bilingual structured content
- project and experience modeling designed for reuse and consistency
- support for markdown-based rich text fields
- modular sections for resume, projects, services, and profile presentation
- a foundation for future features such as availability management and booking workflows

## Responsibilities

Product design, content modeling, backend architecture, frontend implementation, admin experience, localization strategy, booking flow design, CV generation strategy, and long-term structure for case studies and public presentation.

## Outcomes

A structured portfolio platform that supports bilingual content, project presentation, downloadable CV output, direct contact paths, and a foundation for case studies and meeting booking. The site improves both personal positioning and the clarity with which my work can be evaluated.

## Details

## Overview

This portfolio platform started from a simple observation: for experienced technical work, a traditional CV is not enough.

A résumé can list positions, skills, and technologies, but it cannot easily show:

- how projects are structured
- how technical decisions are made
- how product thinking influences implementation
- how content can be presented clearly to different audiences
- how a professional profile can support actual conversion, not only passive reading

I wanted a site that does more than present information. I wanted a platform that **organizes my experience, projects, availability, and positioning into one coherent system**.

This site is also intentionally self-referential: it presents my work while acting as a live example of how I design and build content-driven platforms.

---

## Context

Many portfolio sites fall into one of two weak patterns:

- visually polished, but shallow in substance
- informative, but structured like a long, uninviting wall of text

For someone with broad technical experience, that creates a problem. The reader may understand fragments, but not the whole picture:
- what kind of engineer this person is
- what problems they solve best
- how deep their ownership really goes
- whether they can communicate complexity clearly
- whether they are available for collaboration

The goal here was not only to build a better-looking CV. The goal was to create a platform that presents professional depth in a way that is easier to scan, understand, and act on.

---

## Goals

The project had several connected goals:

- build a portfolio platform with stronger structure than a static résumé
- support bilingual presentation in English and Bulgarian
- model content in a way that can be managed from an admin interface
- present projects as real case studies, not just short cards
- allow users to contact me or request a meeting directly
- support downloadable CV output
- keep the public side clear and professional while keeping the admin side efficient
- make the site itself a proof of implementation quality

---

## My role

I own this product end to end:

- concept and product direction
- content modeling
- backend architecture
- frontend implementation
- admin design
- localization approach
- booking and contact workflows
- CV generation strategy
- ongoing refinement of structure and presentation

Because the product is personal, every design decision also carries an additional constraint: it must represent me well while still remaining technically clean and maintainable.

---

## Solution approach

I built the platform as a content-driven web application with a separated public and admin experience.

The public side focuses on:
- profile presentation
- work experience
- projects
- case studies
- downloadable CV access
- contact and booking paths

The admin side focuses on:
- content editing
- bilingual fields
- project management
- visibility control
- ordering
- availability and booking configuration

```mermaid
flowchart TD
    A[Public Visitor] --> B[Angular Public UI]
    C[Admin User] --> D[Angular Admin UI]

    B --> E[Spring Boot Backend]
    D --> E

    E --> F[MongoDB]
    E --> G[Content / Resume / Projects]
    E --> H[Contact Requests]
    E --> I[Booking Availability]
    E --> J[CV Generation]
```

This structure keeps the public experience lightweight while giving the admin side enough control to manage the platform as real content, not as hardcoded text.

---

## Why structure mattered

One of the central ideas behind the platform is that professional presentation should be **structured data first, presentation second**.

Instead of treating the site as a collection of manually written pages, I designed it around reusable content models such as:

- experience entries
- project entries
- skills
- bilingual text fields
- availability rules
- case study content
- downloadable CV content

That makes the platform easier to maintain and much easier to extend.

For example, a project can be shown as:
- a small card in a list
- a fuller project detail page
- a proper long-form case study

without rewriting the same information in multiple places.

---

## Booking and contact workflow

An important part of the platform is that it should not end at “read my profile”. It should allow a clear next step.

That is why the site includes direct contact and meeting-booking logic.

```mermaid
sequenceDiagram
    participant V as Visitor
    participant UI as Public UI
    participant API as Backend API
    participant AV as Availability Rules
    participant MSG as Contact / Booking Storage

    V->>UI: Open booking section
    UI->>API: Request available slots
    API->>AV: Resolve weekly availability rules
    AV-->>API: Return bookable slots
    API-->>UI: Show available options

    V->>UI: Submit booking request
    UI->>API: Send booking details
    API->>MSG: Store request
    API-->>UI: Confirm submission
```

This flow matters because it turns the site from a passive profile into a more useful professional touchpoint.

---

## Key design decisions

### 1. Build a platform, not a landing page

A landing page can be attractive, but it becomes hard to maintain once the amount of content grows. I chose to model the site more like a lightweight CMS for professional presentation.

### 2. Treat bilingual support as a first-class requirement

Localization was not something to add later. The content model needed to support English and Bulgarian from the beginning so the platform could speak to different audiences without becoming inconsistent.

### 3. Separate public clarity from admin complexity

Good public UX often depends on hidden administrative discipline. I kept the public interface focused and readable, while allowing the admin side to handle the structured complexity behind it.

### 4. Use the site as proof of work

This project is intentionally meta: the site presents my experience, but it also demonstrates how I think about architecture, admin workflows, localization, and content modeling in practice.

---

## Challenges

## Turning broad experience into a coherent story

One challenge was not technical but structural: how to present years of experience, multiple domains, and different project types without overwhelming the reader.

The answer was to organize the information into layered depth:
- short summaries first
- richer details where needed
- case studies for selected projects

## Avoiding a generic “developer portfolio” feel

Many technical portfolio sites look interchangeable. I wanted this one to feel more like a focused professional platform than a template with personal branding applied on top.

## Balancing flexibility with maintainability

Because the site includes content modeling, bilingual fields, public presentation, and admin editing, it would be easy to overcomplicate it. A lot of the work is in keeping the model flexible enough for future growth without making the implementation messy.

---

## Outcomes

The result is a portfolio platform with several concrete strengths:

- bilingual public presentation
- structured resume and project content
- direct conversion paths through contact and booking
- downloadable CV support
- admin-managed content instead of hardcoded text
- a foundation for richer case studies
- a live example of how I build professional, content-driven platforms

This project is especially useful because it is both presentation and evidence. It shows not only what I have done, but how I think about organizing information, designing user flows, and turning content into a product.

---

## What I would improve next

The next improvements I would prioritize are:

- richer case study support with structured metadata and Mermaid diagrams
- more polished CV export and formatting
- stronger booking workflow and calendar integration
- better preview tooling in the admin area
- improved analytics around visitor actions and content engagement
- more reusable content blocks for long-form project storytelling

---

## Takeaway

This portfolio platform reflects an important part of how I work:

- I care about structure, not only appearance
- I prefer content models over hardcoded pages
- I think about conversion, not only presentation
- I design admin experiences seriously, even in smaller products
- I like systems that are clean on the surface because they are disciplined underneath

In that sense, the platform is not just about showing my work.

It is part of the work itself.

## Technologies

Java, Spring Boot, Angular, TypeScript, MongoDB, PrimeNG, Markdown

## Engagement

PERSONAL_PRODUCT

## Timeline

2026-03 – Present

Contact: https://dok.sh/contact
Last updated: 2026-06-13
