Skip to content

🧭 Join me as I explore software, cloud, and the everyday lessons of engineering - learning, growing, and sharing insights along the way.

License

Notifications You must be signed in to change notification settings

stefaniuk/dans-engineering-journal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

64 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧭 Dan's Engineering Journal

Welcome to the repository for stefaniuk.co.uk - my professional technology blog, serving as both a public knowledge base and a live record of my ongoing journey through software engineering, cloud architecture, and technical leadership. This site is where I openly share discoveries, deep technical dives, hands-on tutorials, and candid reflections on both success and setbacks.

🎯 Purpose & Philosophy

This blog is designed not just as a personal archive, but as a practical resource for fellow engineers, architects, and technology enthusiasts. My intention is to foster a culture of learning, knowledge sharing, and open dialogue across the professional community.

My intention is that you will find here the following:

  • πŸ› οΈ Real-world solutions, articles addressing concrete technical challenges, grounded in practical experience.
  • 🧠 Deep technical exploration, content that examines architectural decisions, design trade-offs, and underlying principlesβ€”not just the β€œhow”, but also the β€œwhy”.
  • πŸ—£οΈ Clear, accessible communication, complex concepts are broken down into simple language, making advanced topics approachable.
  • 🌱 Professional growth, honest documentation of my learning process, including mistakes and lessons learned, so that others can benefit from my experience.
  • 🀝 Open collaboration, a space for feedback, alternative perspectives, and professional networking.

Each article and update represents my commitment to:

  • πŸ”¬ Thorough research and exploration
  • ✍️ Clear, concise documentation
  • πŸͺž Transparency about both successes and challenges
  • πŸ“ˆ Continuous learning and improvement

Whether you are an experienced technologist or early in your career, you’ll find authentic insights and actionable knowledge to support your own professional development.

βš™οΈ Technology Stack

This site is powered by modern, open-source tools to ensure portability, extensibility, and ease of contribution:

  • 🌐 Jekyll – static site generation and content management
  • 🎨 HTML/CSS – custom theming and responsive layouts
  • πŸ“Š Google Analytics – anonymous visitor insights
  • πŸ’¬ Disqus – interactive comments and discussion
  • πŸ“° RSS Feed – content syndication for readers and aggregators

πŸ—‚οΈ Directory Structure

.
β”œβ”€β”€ _drafts/         # Unpublished, in-progress posts
β”œβ”€β”€ _includes/       # Reusable HTML partials
β”œβ”€β”€ _layouts/        # Page and post templates
β”œβ”€β”€ _posts/          # Published blog entries
β”œβ”€β”€ _sass/           # SCSS partials for styling
β”œβ”€β”€ about/           # About and profile pages
β”œβ”€β”€ css/             # Compiled CSS (main/terminal themes)
β”œβ”€β”€ CNAME            # Custom domain configuration
β”œβ”€β”€ Gemfile          # Ruby/Jekyll dependencies
β”œβ”€β”€ _config.yml      # Jekyll site configuration
β”œβ”€β”€ favicon.png      # Site icon
β”œβ”€β”€ feed.xml         # RSS feed for syndication
β”œβ”€β”€ index.html       # Homepage
β”œβ”€β”€ LICENCE.md       # Licence and copyright details
β”œβ”€β”€ robots.txt       # Search engine crawler settings
└── sitemap.xml      # SEO and discoverability

🌟 Key Features

  • πŸ“± Mobile-first, responsive design for a seamless reading experience on any device
  • πŸ’¬ Interactive commenting via Disqus for community engagement
  • πŸ”” RSS/Atom feed for automatic content updates
  • πŸš€ Search engine optimisation (SEO) built-in
  • πŸ“’ Integrated social media sharing
  • πŸ“ˆ Real visitor analytics (privacy-respecting)

πŸ§‘β€πŸ’» Local Development & Contribution

You are encouraged to reuse, adapt, or contribute to this blog’s content and technical setup. All scripts and configuration are provided for easy local development and automation.

πŸ“¦ Prerequisites

  • πŸ’Ž Ruby (2.7.0 or newer)
  • πŸ“¦ RubyGems (comes with Ruby)
  • πŸ› οΈ make (standard on macOS/Linux)

🍏 Installing Jekyll on macOS

  1. Install Bundler and Jekyll

    gem install --user-install bundler jekyll
  2. Install project dependencies

    bundle install

πŸ–₯️ Running the site locally

  1. Start the Jekyll server:

    bundle exec jekyll serve
  2. Open your web browser and navigate to http://localhost:4000

πŸ—οΈ Building Static Files

  1. To generate the static files for production:

    JEKYLL_ENV=production bundle exec jekyll build

    This will create the static site in the _site directory.

  2. For development builds with draft posts:

    JEKYLL_ENV=development bundle exec jekyll build --drafts

πŸ› οΈ Using Make Commands

The project includes several helpful make commands:

  • make serve-drafts - Start local server with draft posts (development)
  • make serve-live - Start local server without drafts (production)
  • make clean - Remove generated files and caches
  • make update - Clean and rebuild the site
  • make publish - Build and publish to GitHub Pages

πŸ”„ Indicating Post Updates

If you revise a published post and want to show readers (and search engines) that it has been updated without changing the original publication date, add BOTH a last_modified_at field and set display_last_modified: true in the post front matter:

---
layout: post
title: "Some Post"
date: 2024-05-12 08:00:00 Europe/London
last_modified_at: 2025-09-19 09:00:00 Europe/London
display_last_modified: true
---

Behaviour:

  • The "Last updated" section renders only if display_last_modified: true AND last_modified_at is later than the original date.
  • Omitting either the flag or the timestamp means only the original published date is shown.
  • Uses the jekyll-last-modified-at plugin; outputs semantic <time> elements with itemprop="datePublished" and itemprop="dateModified" for improved SEO / structured data.

Best practice:

  • Update the field only for substantive changes (new sections, significant clarifications, updated code / versions) – ignore minor typo fixes.
  • Consider keeping a short "Changelog" or "Revision notes" section for heavily revised technical articles.

πŸ“„ License

This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. For full license terms, please see LICENCE.md.

Copyright Β© 2016-2025 Dan Stefaniuk. All rights reserved.

About

🧭 Join me as I explore software, cloud, and the everyday lessons of engineering - learning, growing, and sharing insights along the way.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published