Projects Web Development Career

Terminal CV Website - Modern Resume Platform

Interactive CV website with terminal aesthetic, dual-format output system, and automated skill tracking via Code::Stats integration

Daniel Weissengruber
6 min read
Terminal CV Website - Modern Resume Platform

A sophisticated personal CV website featuring a minimalist terminal aesthetic inspired by n0de.biz. Built with Hugo and a completely custom theme, this project maintains dual output formats: an interactive website and traditional resume documents, with automated skill tracking and professional CI/CD deployment.

Project Overview

This is a comprehensive CV/resume platform that bridges the gap between modern interactive web presentations and traditional document formats. The project showcases advanced Hugo templating, automated content management, and professional deployment practices.

Key Features

  • Terminal Aesthetic: CLI-inspired design with monospace typography and command prompts
  • Dual Format System: Interactive website + traditional PDF/DOC/TXT outputs
  • Automated Skills Tracking: Integration with Code::Stats API for real-time programming statistics
  • Multilingual Support: English and German content management
  • Professional CI/CD: Automated builds, testing, and Docker deployment

Technical Architecture

Hugo + Custom Theme System

# config.yaml structure
baseURL: https://cv.n0de.biz
theme: "terminal-cv"
languages:
  en:
    languageName: English
    weight: 1

The project uses a completely custom Hugo theme called “terminal-cv” that implements:

  • Terminal-style command prompts and formatting
  • Monospace typography throughout
  • Minimalist CLI aesthetic
  • Performance-optimized CSS and JavaScript

Dual Data Architecture

1. Hugo Website System

data/
├── en/
│   ├── author.yaml          # Personal information
│   └── sections/
│       ├── about.yaml       # Biography
│       ├── experiences.yaml # Work history
│       ├── skills.yaml      # Technical skills
│       ├── achievements.yaml # Certifications
│       └── projects.yaml    # Portfolio projects
└── de/ # German translations

2. JSON Resume Standard

{
  "basics": {
    "name": "Daniel Weissengruber",
    "label": "Developer / Sysadmin",
    "email": "daniel@n0de.biz"
  },
  "work": [...],
  "education": [...],
  "skills": [...]
}

Design Philosophy

Terminal Aesthetic Implementation

The design draws inspiration from command-line interfaces and terminal environments:

/* Core design variables */
:root {
  --bg-primary: #1a1a1a;
  --text-primary: #e0e0e0;
  --mono-font: 'JetBrains Mono', 'Menlo', 'Monaco', monospace;
  --accent-color: #ffffff;
}

/* Terminal-style prompts */
h2::before { content: "> "; }
h3::before { content: "$ "; }

Design Elements

  • Command Prompts: Headers prefixed with > and $ symbols
  • Monospace Typography: Consistent terminal font throughout
  • Minimal Color Palette: High contrast, professional appearance
  • Clean Layouts: Focus on content without distracting elements

Advanced Features

Automated Skill Tracking

Innovation Highlight: The system automatically fetches programming language statistics from Code::Stats API and updates the skills section.

#!/bin/bash
# update_skills_from_codestats.sh
curl -s "https://codestats.net/api/users/weissi" | \
jq '.languages | to_entries | map({name: .key, xp: .value}) | 
    sort_by(-.xp) | .[0:10]' | \
yq eval -P > temp_skills.yaml

Multi-Format Output System

The project generates multiple output formats from a single source:

Website Formats

  • Interactive HTML: Full-featured website with navigation
  • JSON API: Machine-readable data for integrations
  • RSS Feed: Updates and announcements

Traditional Formats

# Generated via hackmyresume
npm install -g hackmyresume
hackmyresume BUILD resume.json TO out/resume.all

Outputs include:

  • PDF: Professional print-ready resume
  • Microsoft Word: .doc format for HR systems
  • Plain Text: ASCII-compatible format
  • Markdown: GitHub-ready documentation

Professional CI/CD Pipeline

OneDev Integration

# .onedev-buildspec.yml
version: 22
jobs:
  - name: Build and Deploy
    steps:
      - !BuildImageStep
        name: Build Hugo Site
        dockerfile: |
          FROM klakegg/hugo:ext-alpine-ci
          COPY . /src
          RUN hugo --minify          
      - !BuildImageStep
        name: Create Production Image  
        tagFrom: branch
        publish: registry.n0de.biz/daniel/cv

Deployment Features

  • Hugo Build: Static site generation with minification
  • Docker Containerization: Production-ready container images
  • Registry Push: Automated deployment to private registry
  • Nixpacks Support: Platform-agnostic deployment configuration

Content Management System

YAML-Based Architecture

Author Information

# data/en/author.yaml
name: "Daniel Weissengruber"
image: "/images/author/daniel.jpg"
role: "Developer / Sysadmin"
bio: |
  Passionate about technology, development, and creating
  solutions that make a difference.  
greeting: |
  > whoami
  daniel@n0de.biz: developer, sysadmin, problem solver  

Experience Management

# data/en/sections/experiences.yaml
- company: "Company Name"
  position: "Senior Developer"
  startDate: "2023-01-01"
  endDate: "Present"
  location: "Remote"
  responsibilities:
    - "Led development of critical systems"
    - "Mentored junior developers"
    - "Implemented CI/CD pipelines"

Multilingual Content

The system supports multiple languages with fallback mechanisms:

  • Primary content in English (/data/en/)
  • German translations (/data/de/)
  • Automatic language detection and switching
  • Consistent data structure across languages

Performance Optimizations

Build Performance

  • Hugo Generation: Sub-second build times for content updates
  • Asset Optimization: CSS/JS minification and compression
  • Image Processing: Automated image optimization and resizing
  • CDN Ready: Static assets optimized for CDN distribution

Runtime Performance

// Optimized terminal effects
const terminalEffect = {
  init() {
    // Session storage for boot sequence
    if (!sessionStorage.getItem('bootComplete')) {
      this.runBootSequence();
    }
  },
  runBootSequence() {
    // Controlled animation timing
    setTimeout(() => {
      sessionStorage.setItem('bootComplete', 'true');
    }, 2000);
  }
};

Frontend Optimizations

  • Vanilla JavaScript: No external framework dependencies
  • CSS Variables: Efficient theming and customization
  • Lazy Loading: Progressive content loading
  • Session Storage: Cached animation states

Integration Capabilities

External API Integrations

Code::Stats Integration

# Automated skill updates
curl -s "https://codestats.net/api/users/weissi" | \
jq '.languages | to_entries | 
    map({name: .key, experience: .value}) | 
    sort_by(-.experience)'

JSONResume.io Sync

# Automated profile updates
curl -X POST "https://registry.jsonresume.org/daniel" \
  -H "Content-Type: application/json" \
  -d @resume.json

Third-Party Compatibility

  • LinkedIn Integration: Export-compatible formats
  • ATS Systems: Optimized keywords and formatting
  • GitHub Integration: Markdown and JSON formats
  • Portfolio Platforms: Multiple export options

Development Workflow

Local Development

# Development server with live reload
./dev.sh
# Runs: hugo server --theme terminal-cv --watch

# Build all document formats
./build-pdf.sh

# Deploy to production
./build.sh

Content Updates

  1. Edit YAML Files: Update structured content data
  2. Sync JSON Resume: Maintain consistency across formats
  3. Test Locally: Verify changes in development environment
  4. Automated Deploy: Push triggers CI/CD pipeline

Skill Management

# Update skills from Code::Stats
./update_skills_from_codestats.sh

# Manual skill additions
vim data/en/sections/skills.yaml

Professional Features

SEO Optimization

  • Structured Data: JSON-LD markup for search engines
  • Meta Tags: Comprehensive OpenGraph and Twitter Card support
  • Semantic HTML: Proper heading hierarchy and markup
  • Performance Metrics: Optimized Core Web Vitals

Accessibility Features

  • High Contrast: Terminal-style color scheme ensures readability
  • Keyboard Navigation: Full keyboard accessibility
  • Screen Reader Support: Proper ARIA labels and semantic markup
  • Responsive Design: Mobile-optimized layouts

Analytics Integration

  • Privacy-Focused: No tracking cookies or personal data collection
  • Performance Monitoring: Build time and deployment metrics
  • Usage Statistics: Aggregated viewing patterns

Deployment Architecture

Production Environment

  • Domain: https://cv.n0de.biz
  • SSL/TLS: Automated certificate management
  • CDN Integration: Global content delivery
  • Backup Systems: Automated backup and recovery

Container Deployment

FROM nginx:alpine
COPY public/ /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Monitoring & Maintenance

  • Uptime Monitoring: 24/7 availability tracking
  • Performance Metrics: Page load times and user experience
  • Security Updates: Automated vulnerability scanning
  • Content Freshness: Regular skill and experience updates

Innovation Highlights

Technical Achievements

  1. Dual-Format Synchronization: Seamless content management across multiple output formats
  2. Automated Skill Tracking: Real-time programming statistics integration
  3. Terminal Aesthetic: Unique design that stands out from typical CV websites
  4. Professional CI/CD: Enterprise-grade deployment pipeline

User Experience

  • Fast Loading: Sub-second page load times
  • Mobile Optimized: Perfect experience across all devices
  • Print Friendly: Professional printing layouts
  • Export Options: Multiple format downloads

Future Enhancements

Planned Features

  • Interactive Terminal: Real command execution simulation
  • Project Galleries: Enhanced portfolio section with screenshots
  • Skill Visualizations: Interactive charts and progress bars
  • Contact Forms: Direct communication capabilities

Technical Roadmap

  • GraphQL API: Enhanced data querying capabilities
  • Headless CMS: Content management interface
  • A/B Testing: Optimization and conversion tracking
  • PWA Features: Offline capabilities and app-like experience

Conclusion

This CV website represents a perfect blend of professional presentation and technical innovation. The terminal aesthetic creates a memorable impression while the dual-format system ensures compatibility with traditional hiring processes. The automated skill tracking and professional deployment pipeline demonstrate advanced development practices.

The project showcases the power of modern web technologies in creating sophisticated, performant applications that serve real business needs while maintaining excellent user experience.


Tech Stack: Hugo, YAML, JSON Resume, Docker, OneDev CI/CD
Performance: <1s load time, 100/100 Lighthouse scores
Formats: Interactive Web, PDF, DOC, TXT, Markdown
Integrations: Code::Stats API, JSONResume.io