<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blogs on davepedu.com</title><link>https://davepedu.com/blog/</link><description>Recent content in Blogs on davepedu.com</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>dave@davepedu.com (dave)</managingEditor><webMaster>dave@davepedu.com (dave)</webMaster><lastBuildDate>Sat, 14 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://davepedu.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>modernizing this blog</title><link>https://davepedu.com/blog/2026/03/14/modernizing-this-blog/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><author>dave@davepedu.com (dave)</author><guid>https://davepedu.com/blog/2026/03/14/modernizing-this-blog/</guid><description>&lt;p&gt;My personal website has existed in some form since the late 2000s, and like many hobby projects, it has been rebuilt far
more times than strictly necessary. My taste in tech stacks has changed over time, and each version reflects whatever I
was experimenting with at the time.&lt;/p&gt;
&lt;p&gt;These are some of thee iterations it has gone through over the years, and what is to come:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;2011 - &lt;a href="https://web.archive.org/web/20110227204954/davepedu.com/blog/"&gt;WordPress&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Early 2012 - &lt;a href="https://web.archive.org/web/20120202030252/http://davepedu.com/"&gt;A single word to mark my existence on the Internet&lt;/a&gt;&lt;/p&gt;</description><content>&lt;p&gt;My personal website has existed in some form since the late 2000s, and like many hobby projects, it has been rebuilt far
more times than strictly necessary. My taste in tech stacks has changed over time, and each version reflects whatever I
was experimenting with at the time.&lt;/p&gt;
&lt;p&gt;These are some of thee iterations it has gone through over the years, and what is to come:&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;2011 - &lt;a href="https://web.archive.org/web/20110227204954/davepedu.com/blog/"&gt;WordPress&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Early 2012 - &lt;a href="https://web.archive.org/web/20120202030252/http://davepedu.com/"&gt;A single word to mark my existence on the Internet&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Late 2012 - &lt;a href="https://web.archive.org/web/20120919081823/http://davepedu.com/"&gt;Cheesy wood paneling and filler text&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Early 2013 - &lt;a href="https://web.archive.org/web/20130402141622/http://davepedu.com/"&gt;A fully custom Python blog engine&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Late 2013 - &lt;a href="https://web.archive.org/web/20130402141622/http://davepedu.com/"&gt;Drupal 7 on a new .io domain&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2014 - &lt;a href="https://web.archive.org/web/20141217064451/http://dpedu.io/"&gt;Design changes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;2016 - &lt;a href="https://web.archive.org/web/20160305084026/http://dpedu.io/"&gt;More design changes&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Aside - this list was actually a lot of fun to put together. I had forgotten entirely about some of these iterations.&lt;/p&gt;
&lt;p&gt;Out of all of these, the Drupal 7 iteration lasted, by far, the longest. Which, itself, is amusing. Drupal is
implemented in PHP, and there is a lot of writing on the internet about whether PHP is the greatest language or a
&lt;a href="https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/"&gt;terrible&lt;/a&gt; language. But either way, it is undeniable that
PHP is like a cockroach that will not die.&lt;/p&gt;
&lt;p&gt;But why Drupal, anyways? It bills itself as being for Enterprise, which usually means large and hulking codebases. And
it is. When I set up this site using Drupal, I was working for the &lt;a href="https://rit.edu"&gt;Rochester Institute of Technology&lt;/a&gt;,
building &lt;a href="https://davepedu.com/projects/2013/12/01/rit-kgcoe-website/"&gt;the school&amp;rsquo;s own websites&lt;/a&gt; in Drupal. It was
already familiar to me from this, so it was easy enough to use Drupal for my own purposes.&lt;/p&gt;
&lt;p&gt;But, I eventually stopped working with Drupal and web development in general as I moved into other roles -
&lt;a href="https://davepedu.com/blog/2017/07/12/on-moving-to-the-bay/"&gt;which I wrote about here&lt;/a&gt; - and I didn&amp;rsquo;t keep up with
Drupal or PHP&amp;rsquo;s evolution. Which, for Drupal, actually would have required some serious re-writes as the theme rendering
layer was changed pretty drastically from version 7 to 8. But that&amp;rsquo;s probably more detail about Drupal than
anyone needs.&lt;/p&gt;
&lt;p&gt;PHP too, changed. My Drupal website was written to work with PHP 5, which hasn&amp;rsquo;t been supported for years. Server
operating systems have long dropped support for it. Between it and Drupal&amp;rsquo;s age, it&amp;rsquo;s honestly a miracle the site never
got hacked.&lt;/p&gt;
&lt;p&gt;PHP evolved, Drupal evolved, became more complicated, and I did not keep up. So now it is time to build something new,
and to keep it simple this time around.&lt;/p&gt;
&lt;p&gt;This time, I&amp;rsquo;ve decided to use &lt;a href="https://github.com/gohugoio/hugo"&gt;Hugo&lt;/a&gt;, which is a static website framework. In
summary, you give it your content formatted in Markdown which it will organize and feed into a template, which then in
turn outputs HTML.&lt;/p&gt;
&lt;p&gt;This post, too, is a Markdown file that contains the text you see and some metadata at the top:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;+++
title = "modernizing this blog"
date = "2026-03-14"
author = "Dave"
cover = "img/IMG_1053_cropped.jpg"
hideCoverInSingle = true
description = "This blog has been migrated to a static website, using Hugo!"
tags = ["Programming", "Meta"]
+++&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I&amp;rsquo;ll lose a few things by switching to a simple static site. I could update the Drupal website from anywhere - just log
in and write a new post, or save it as a draft. And the comment section - sorry, you&amp;rsquo;ll have to write to me
&lt;a href="https://davepedu.com/contact/"&gt;directly&lt;/a&gt; now.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m also switching to my original &lt;code&gt;davepedu.com&lt;/code&gt; domain, instead of &lt;code&gt;dpedu.io&lt;/code&gt;. The .io domain was trendy at some point
in the past, and I&amp;rsquo;ve come to think that a classic .com is better anyway. On top of that, it allows me to keep the old
Drupal site online at &lt;code&gt;dpedu.io&lt;/code&gt; while I manually extract content from Drupal and re-write it for Hugo. After a time,
that domain will redirect here as well. The old site didn&amp;rsquo;t have terribly much content, but I&amp;rsquo;m also going through
unpublished drafts and making them into real posts.&lt;/p&gt;
&lt;p&gt;The new hosting stack will be similar, too. Before, I had a bare-metal dedicated server rented from
&lt;a href="https://ovhcloud.com"&gt;OVH&lt;/a&gt;. I went with dedicated servers since at the time I was working on computer infrastructure.
Another big complex thing I don&amp;rsquo;t want to take care of anymore, hah. I&amp;rsquo;ll be sticking with OVH, but I&amp;rsquo;ll be using a VPS
instead. A VPS is a good middle ground - over something completely hands-off like static hosting on Cloudflare - because
it still gives me a place to play sysadmin, which I enjoy. And everything configured on it will be installed with a
simple form of configuration management - but more on that in a future post.&lt;/p&gt;
&lt;p&gt;Of course, I couldn&amp;rsquo;t resist adding a bit of engineering fun.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve written a Go-based application that acts like a toy version of AWS&amp;rsquo;s
&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html"&gt;S3 static website hosting&lt;/a&gt;. It&amp;rsquo;s called
&lt;a href="https://git.davepedu.com/dave/s3static"&gt;s3static&lt;/a&gt;, and is meant to be used with S3-compatible storage systems such as
&lt;a href="https://github.com/minio/minio"&gt;Minio&lt;/a&gt; or &lt;a href="https://github.com/rustfs/rustfs"&gt;RustFS&lt;/a&gt;. But more about that project in
its own dedicated post.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/traefik/traefik"&gt;Traefik&lt;/a&gt; will also be involved. It&amp;rsquo;s meant for Kubernetes but works great with a
text config file too. It also automatically handles TLS certificates via &lt;a href="https://letsencrypt.org/"&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt;, for
which I used an unusual and convoluted process, which is a whole other story.&lt;/p&gt;
&lt;p&gt;Hopefully, keeping things simple will help this version stick around. Either way, rebuilding the site has been a fun
excuse to revisit old memories, clean things up, and experiment with a few new tools.&lt;/p&gt;
&lt;figure class="left" &gt;
&lt;img src="https://davepedu.com/blog/2026/03/14/modernizing-this-blog/img/IMG_1053_cropped_hu_4d96ba1b6988630d.jpg" alt="davepedu.com chief technology officer" /&gt;
&lt;figcaption class="center" &gt;davepedu.com chief technology officer&lt;/figcaption&gt;
&lt;/figure&gt;</content></item><item><title>on moving to the Bay Area and engaging with Startups</title><link>https://davepedu.com/blog/2017/07/12/on-moving-to-the-bay/</link><pubDate>Wed, 12 Jul 2017 00:00:00 +0000</pubDate><author>dave@davepedu.com (dave)</author><guid>https://davepedu.com/blog/2017/07/12/on-moving-to-the-bay/</guid><description>&lt;p&gt;I moved to the San Francisco Bay Area almost 3 years ago now. Having grown up in a small town (~2000 people) and gone
to school in a small city (Rochester metropolitan area, New York ~1,000,000), it was not unexpectedly quite the
shocking transition.&lt;/p&gt;
&lt;p&gt;Most of my observations of difference are fairly mundane - traffic patterns are different, more timid in some ways, and
more aggressive in others. Endless cool summer sun is easy to love. So many cultures and cuisines all in one place. A
beautiful setting, and at the same time, it&amp;rsquo;s ground zero for the information technology revolution upending the world.&lt;/p&gt;</description><content>&lt;p&gt;I moved to the San Francisco Bay Area almost 3 years ago now. Having grown up in a small town (~2000 people) and gone
to school in a small city (Rochester metropolitan area, New York ~1,000,000), it was not unexpectedly quite the
shocking transition.&lt;/p&gt;
&lt;p&gt;Most of my observations of difference are fairly mundane - traffic patterns are different, more timid in some ways, and
more aggressive in others. Endless cool summer sun is easy to love. So many cultures and cuisines all in one place. A
beautiful setting, and at the same time, it&amp;rsquo;s ground zero for the information technology revolution upending the world.&lt;/p&gt;
&lt;p&gt;I saw what the Bay&amp;rsquo;s tech industry had to offer and found my niche over time. I came here to work for HP, an ancient
giant in the hard and software industry, doing web development for marketing websites. I eventually found my way into
the Startup Lottery, designing and operating critical core infrastructure for &amp;ldquo;big data&amp;rdquo; applications.&lt;/p&gt;
&lt;p&gt;Startups are generally small companies that attempt to use computers and code to tackle challenges previously thought as
too hard for such a small team. And the Lottery is the right term for how startups ebb and flow in the Bay.&lt;/p&gt;
&lt;p&gt;Every so often, a &amp;ldquo;new thing&amp;rdquo; becomes the popular &amp;ldquo;new thing&amp;rdquo; and a thousand startups pop up around it. Doing &amp;ldquo;it&amp;rdquo;
directly, supporting &amp;ldquo;it&amp;rdquo;, documenting &amp;ldquo;it&amp;rdquo;, consulting about &amp;ldquo;it&amp;rdquo;, defending from &amp;ldquo;it&amp;rdquo;, whatever &amp;ldquo;it&amp;rdquo; may be. The
Dot-Com boom in the early 2000s, Web 2 and Social media in the later 2000s, early Apps in the 2010s, Big data in the mid
2010s, the list goes on. When it looks like there is not anyone left that wants to pay any more money for the old thing,
a new thing pops up and the cycle begins anew. A handful of those startups may survive, and actually become profitable
and valuable. And the few investors and few early employees in that company reap what is left of their particular thing,
which is still substantially much, even though everyone is paying attention to the &amp;ldquo;new thing&amp;rdquo; now.&lt;/p&gt;
&lt;p&gt;Once you understand that, you can see why working for a startup in Silicon Valley is like playing the lottery. You
probably won&amp;rsquo;t, but there&amp;rsquo;s a slim chance you could pick the right company, stick with it, and be rewarded.&lt;/p&gt;
&lt;p&gt;Even if that doesn&amp;rsquo;t happen, working for a startup is rewarding in other ways too. These companies understand they are
inherently unstable, and as people generally prefer stable occupations over unstable ones, make up for it with anything
from laid-back offices with free snacks to higher salaries. And as different types of perks appeal to different people,
each startup tends to have a different personality.&lt;/p&gt;
&lt;p&gt;As these companies are usually small, each employee is often in a greater position of responsibility. Large companies
tend to let employees hyperfocus in specific areas and make slow changes involving a large number of people. Startups
have fewer employees, which means each one must manage a larger slice of the company&amp;rsquo;s footprint.&lt;/p&gt;
&lt;p&gt;In practice, this kind of environment pushes us engineers to think in terms of scale and leverage much earlier in
their careers.&lt;/p&gt;
&lt;p&gt;The only practical way to operate is to gain this leverage through automation. Tasks that might be handled manually in
an older and larger organization quickly become unsustainable. You begin to look at systems not as one-off deployments
or fixes, but as processes that must run reliably over and over again with minimal human involvement.&lt;/p&gt;
&lt;p&gt;Automation is a force multiplier: the good decisions scale, but so do the bad ones. A poorly designed process that runs
once might cause a small inconvenience. A poorly designed process that runs automatically across an entire fleet can
cause a disaster in seconds. A process that works well in isolation may fail when invoked thousands of times
simultaneously. Because of that, building automation forces a special kind of discipline. You have to research the tools
you use, think through edge cases, make predictions with limited information and understand the systems you&amp;rsquo;re
interacting with much more deeply than if you were just executing tasks by hand.&lt;/p&gt;
&lt;p&gt;Over time, that kind of work develops a particular sort of experience. In larger organizations, thinking about systems
at that scale is often the responsibility of architects or senior infrastructure teams. In a startup environment, those
responsibilities fall much earlier in a person&amp;rsquo;s career. When a small group of engineers is responsible for keeping a
large and complex system running, everyone ends up participating in the design decisions that shape how it works.&lt;/p&gt;
&lt;p&gt;That puts you in an unusual position. You&amp;rsquo;re simultaneously operating the systems, building the automation around them,
and deciding how they should evolve. The feedback loop between design and operation becomes very tight, or even
nonexistent on a bad day. You feel the consequences of your decisions immediately, which encourages you to design things
in ways that are easier to operate, monitor, repair, and repeat.&lt;/p&gt;
&lt;p&gt;It also builds a habit of intentional experimentation. When your tools can affect large systems very quickly, you learn
to test ideas in small steps. Changes get staged, rehearsed, and validated before they touch anywhere important. The
process becomes less about heroics and more about methodical iteration.&lt;/p&gt;
&lt;p&gt;In that sense, working in a startup environment isn&amp;rsquo;t just about &amp;ldquo;moving fast&amp;rdquo;. It&amp;rsquo;s about learning how to build systems
that can move fast safely. And that combination of large responsibility, heavy reliance on automation, and constant
experimentation creates a kind of practical architectural experience that would otherwise take many more years, and a
much larger organization, to acquire.&lt;/p&gt;
&lt;p&gt;And it&amp;rsquo;s fun to build and drive big toys using other people&amp;rsquo;s money.&lt;/p&gt;
&lt;p&gt;In my current role, a large part of that philosophy shows up in the tools we create and use to operate our systems. I
spend a lot of time working with tools like Ansible and SaltStack, both of which are designed to control and coordinate
large groups of machines at once. Each brings its own model for turning a small amount of human effort into changes
across an entire environment. Used well, they make it possible for our small team to operate infrastructure of
surprising scale.&lt;/p&gt;
&lt;p&gt;And honestly? All of this - the Lottery, the scale, the rewards - adds up to a whole lot of fun. The confident, but
still nervous, satisfying feeling of seeing your change take effect on exponentially more systems is pretty addicting.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://davepedu.com/blog/2017/07/12/on-moving-to-the-bay/img/2014-09-13_13.15.13_cropped_hu_c45cd6d7157417fd.jpg" alt="Screenshot"/&gt;&lt;/p&gt;</content></item><item><title>test blog post</title><link>https://davepedu.com/blog/2013/09/30/test-blog-post/</link><pubDate>Mon, 30 Sep 2013 00:00:00 +0000</pubDate><author>dave@davepedu.com (dave)</author><guid>https://davepedu.com/blog/2013/09/30/test-blog-post/</guid><description>&lt;p&gt;Hello! Welcome to my blog.&lt;/p&gt;
&lt;p&gt;This is a test blog post to help develop the system.&lt;/p&gt;</description><content>&lt;p&gt;Hello! Welcome to my blog.&lt;/p&gt;
&lt;p&gt;This is a test blog post to help develop the system.&lt;/p&gt;</content></item></channel></rss>