Personal technical blog covering software engineering, AWS, serverless architecture, Node.js, React, leadership, and career development.
🌐 Live Site: https://dvddpl.github.io
This blog is built with Jekyll and hosted on GitHub Pages. It features technical tutorials, debugging chronicles, career reflections, and personal development insights from a Technical Lead's perspective.
- Ruby 3.3+ (GitHub Pages uses Ruby 3.3.4)
- Bundler (latest version)
- Git
# Clone repository
git clone https://github.com/dvddpl/dvddpl.github.io.git
cd dvddpl.github.io
# Install Ruby 3.3 via Homebrew (macOS)
brew install ruby@3.3
# Add Ruby 3.3 to PATH
export PATH="/opt/homebrew/opt/ruby@3.3/bin:$PATH"
export PATH="/opt/homebrew/lib/ruby/gems/3.3.0/bin:$PATH"
# Or add to ~/.zshrc for permanent:
echo 'export PATH="/opt/homebrew/opt/ruby@3.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/lib/ruby/gems/3.3.0/bin:$PATH"' >> ~/.zshrc
# Install bundler
gem install bundler
# Install dependencies
bundle install
# Run local server
bundle exec jekyll serve
# Visit http://localhost:4000# 1. Create file with correct naming: YYYY-MM-DD-title.md
touch _posts/2026-02-11-my-new-post.md
# 2. Add front matter
cat > _posts/2026-02-11-my-new-post.md << 'EOF'
---
layout: post
title: "Your Post Title"
description: "Brief description for SEO (150-160 characters)"
tags: javascript nodejs aws
background: /assets/your-image.jpg
---
Your content here...
EOF
# 3. Add images to assets/
# 4. Test locally
bundle exec jekyll serve
# 5. Commit and push
git add _posts/2026-02-11-my-new-post.md
git commit -m "Add post: My New Post"
git push origin gh-pages---
layout: post
title: "Post Title Here"
description: "SEO description 150-160 characters"
tags: tag1 tag2 tag3
background: /assets/image-name.jpg
---
Opening paragraph that hooks the reader...
## Main Section
Content with code examples:
```javascript
const example = "code here";Key takeaways...
## Project Structure
dvddpl.github.io/ ├── _posts/ # Blog posts (YYYY-MM-DD-title.md) ├── assets/ # Post images and backgrounds ├── .kiro/ # Agent context and steering files │ ├── context/ # Project documentation for AI │ └── steering/ # Development standards ├── _config.yml # Jekyll configuration ├── Gemfile # Ruby dependencies ├── index.md # Home page ├── about.md # About page ├── posts.md # Posts by tags ├── contact.md # Contact page └── 404.html # Error page
## Technology Stack
- **Generator**: Jekyll 3.10.0
- **Hosting**: GitHub Pages
- **Theme**: [StartBootstrap Clean Blog](https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll)
- **Ruby**: 3.3+ (GitHub Pages uses 3.3.4)
- **Language**: Markdown
- **Deployment**: Automatic via GitHub Pages (gh-pages branch)
## Development
### Local Development
```bash
# Standard server
bundle exec jekyll serve
# With drafts
bundle exec jekyll serve --drafts
# With future posts
bundle exec jekyll serve --future
# Different port
bundle exec jekyll serve --port 4001
# Incremental build (faster)
bundle exec jekyll serve --incremental
# Check outdated gems
bundle outdated
# Check GitHub Pages versions
open https://pages.github.com/versions
# Update github-pages gem
bundle update github-pages
# Test after updating
bundle exec jekyll serveEvery post must use this structure:
---
layout: post
title: "Post Title"
description: "SEO description"
tags: tag1 tag2 tag3
background: /assets/image.jpg
---Posts must follow: _posts/YYYY-MM-DD-title-with-dashes.md
- Store in
assets/ - Use absolute paths:
/assets/filename.jpg - Optimize before adding
- Use descriptive filenames
Use existing tags when possible:
- Technical: javascript, nodejs, react, aws, serverless, mysql, debugging, performance, tutorial
- Career: career, leadership, personalgrowth, advice, softwareengineering
Pushing to gh-pages branch automatically triggers GitHub Pages build:
git push origin gh-pages
# Wait 1-2 minutes
# Visit https://dvddpl.github.io# Create feature branch
git checkout -b post/post-title
# Write and test post
bundle exec jekyll serve
# Commit changes
git add _posts/2026-02-11-post-title.md
git commit -m "Add post: Post Title"
# Push and create PR
git push origin post/post-title
# Review and merge to gh-pages# Error: Could not find 'bundler' (2.2.3)
gem install bundler:2.2.3
bundle install- Check filename format:
YYYY-MM-DD-title.md - Check front matter has
layout: post - Check date isn't in future
- Check
published: falseisn't set
- Check path starts with
/assets/ - Check file exists in correct location
- Check filename matches exactly (case-sensitive)
# See detailed errors
bundle exec jekyll build --verbose
# Check configuration
bundle exec jekyll doctor
# Clean and rebuild
bundle exec jekyll clean
bundle exec jekyll build- Update dependencies:
bundle update github-pages - Check for broken links
- Review analytics (if configured)
- Review and update documentation
- Audit security practices
- Backup content (Git is primary backup)
This is a personal blog, but suggestions and corrections are welcome:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Content is licensed under CC BY 4.0. Code snippets are licensed under MIT License.
Davide de Paolis
- Technical Lead at Goodgamestudios
- Location: Hamburg, Germany
- Blog: https://dvddpl.github.io
- DEV.to: https://dev.to/dvddpl
- GitHub: @dvddpl
✅ Updated: This blog has been updated with modern dependencies (Feb 2026)
- ✅ Ruby upgraded from 2.6 to 3.3
- ✅ Dependencies updated from github-pages 209 (2020) to 232 (2026)
- ✅ All gems match GitHub Pages production environment
- ✅ Complete documentation added
- ✅ Development environment modernized
- Resume regular posting (blog inactive since April 2021)
- Standardize front matter across posts
- Add search and comments functionality
- Jekyll: 3.10.0
- GitHub Pages: 232 (updated Feb 2026)
- Ruby: 3.3.10 (matches GitHub Pages 3.3.4)
- Last Post: April 2021
- Total Posts: 9
- Update Ruby to 3.3+
- Update dependencies to latest versions (github-pages 232)
- Standardize front matter across all posts
- Add search functionality
- Implement comments system
- Add dark mode
- Optimize images
- Resume regular posting schedule