David Schneider — InfoTech & InfoSec. Personal and professional projects, photography, and writing. Choose a channel below.
The tray is empty. Drop audio files in src/assets/audio/, list them in src/_data/music.js, and they show up here with a track list and transport controls.
The disc slot on the original console held whatever was currently loaded, so this one holds the music. Nothing plays until you press play: no autoplay, no sound on arrival, no surprise audio in an open tab.
Playback continues while you browse other channels, because opening a channel never reloads the page. It stops if you follow a link to a channel's standalone URL, which is a real page load. Your volume and the track you were on are remembered in this browser, and the operating system's own media keys and lock-screen controls work through the Media Session API.
The music here is licensed for this use. If you are borrowing the idea for your own site, use something you wrote or something whose licence permits it. A console soundtrack is the one part of this homage that would actually be infringement.
I'm David Schneider. I run information technology for a nonprofit senior living organization in Arizona, and I spend the rest of my time building things and spending time with my family.
Professionally I sit at the between infrastructure and the people who depend on it: networks, identity, telephony, data platforms, vendor decisions, and the unglamorous process work that decides whether any of it actually helps anyone. My favorite problems are the ones where the technical answer is easy and the organizational answer is not.
Outside of work I keep a homelab that is larger than it strictly needs to be, take photographs, print things that occasionally fit their intended purpose on the first try, and read more about security incidents than is probably healthy.
Because I wanted it to. It's simple and familliar and most of all, whimsical.
Every tile here is a channel, and a few are named after the ones I remember. Grey tiles are slots I haven't filled yet, and they'll stay visible rather than being hidden. I'm not promising to fill in the blanks.
None of the artwork is borrowed. The layout is an homage; every icon, gradient, and glyph on the page was drawn for this site. Some generative Ai was used where reasonable, to keep the time and cost of building this site down.
Find me on the Social Channel, or send a note through Contact.
Mostly Arizona. Desert, weather, and the occasional thing that holds still long enough.
View photographs saved from the desert, the workshop, and the occasional trip. Click any frame to open it full size.
Drop image files in src/assets/img/photos/, then add an entry to src/_data/photos.js. Empty frames pad the grid out to minSlots so it never looks broken.
A small callback to the console original. Readings come from Open-Meteo through a Cloudflare Pages Function at /api/forecast, which keeps the site's content security policy tight and caches the result at the edge for fifteen minutes.
The default location is set with the FORECAST_LAT, FORECAST_LON, and FORECAST_PLACE environment variables. "Your area" uses Cloudflare's own city-level geolocation for the request, so it never triggers a browser location prompt and never sees your precise position.
Updates to this site and whatever else is worth reporting. Short items, dated, newest first.
One or two sentences. Each entry is one <li> in src/channels/news.md.
Delete these two once there is real news to report.
A deliberately dated list of what has my attention. If it looks stale, that is information too.
Last updated: add a date when you edit this.
At work. Placeholder. Replace with two or three things actually in flight.
At home. Placeholder. Whatever the current homelab or workshop project is.
Reading. Placeholder.
The "Currently" idea comes from the /now page convention: one section, honestly current, no archive. Edit src/channels/news.md and change the date.
Two hats: I lead IT for a nonprofit senior living organization, and I run a small consultancy for organizations that need senior technical judgment without a senior headcount.
Corporate IT, on-site support across Arizona campuses, project management, and business and data analytics. Also serving as HIPAA Security Officer. Scope spans infrastructure, telecom, identity, vendor evaluation, and the finance and reporting processes that sit on top of them.
Independent consulting on IT strategy, security posture, and infrastructure decisions for small and mid-sized organizations.
Hybrid identity, segmentation, virtualization, and the migrations that get an organization off something it should have left five years ago.
Controls that people will actually use, MFA enforcement that doesn't generate a revolt, and honest risk conversations with non-technical leadership.
Warehousing, pipelines out of line-of-business systems, and dashboards that survive contact with the people who have to make decisions from them.
Turning a technical constraint into a business tradeoff, and a business goal into something a team can actually build.
A fuller history lives on the Resume channel. For anything else, get in touch.
Things I've built because I wanted them to exist. Some are useful, some are finished, and the overlap is smaller than I'd like.
A static personal site built as a console channel menu. Eleventy, no framework, no build-time magic, deployed on Cloudflare Pages. Every tile is one markdown file.
Each card above is plain HTML in src/channels/projects.md. Copy a <li class="card"> block, change the text, and it appears. Change the li to <a class="card" href="..."> and it becomes clickable.
For a thumbnail, add an <img class="card__thumb"> as the card's first child. Target 16:9 at 800x450; it bleeds to the card edges and crops from the centre, so keep the subject away from the outer few percent.
Homelab and self-hosting work lives on the Homelab Channel.
The rack that exists so I can break things where nobody files a ticket about it.
The backbone. Containers and VMs for everything below, snapshots before every bad idea.
Longer posts will land here as I write them: build notes, things that went wrong, and the configuration I wish someone had published before I started.
Fill this in by editing src/channels/homelab.md. If it grows past a handful of entries, it's worth splitting into a proper blog channel with one file per post.
The long version. A PDF copy is below for anyone who needs one on file.
Leads Corporate IT, on-site IT support, project management, and business and data analytics. HIPAA Security Officer.
Independent IT and security consulting.
Each entry is one <li> in src/channels/resume.md. Keep them newest first.
| Area | Detail |
|---|---|
| Infrastructure | Virtualization, networking, hybrid identity, Linux administration |
| Security | Access control, MFA enforcement, risk communication, HIPAA security |
| Data | Warehousing, pipelines, business intelligence and reporting |
| Leadership | Team management, vendor evaluation, cross-functional program delivery |
Add degrees and certifications here.
Drop the PDF at src/assets/files/david-schneider-resume.pdf and the download button above will work.
Same person everywhere: @DVDSchneider. Infosec talk mostly lives on Mastodon, everything else is scattered.
Edit the socials array in src/_data/site.js to add, remove, or reorder these. They're rendered from that one list, so nothing else needs touching.
Send a note and it lands in my inbox. No newsletter, no list, no follow-up sequence.
Prefer email? hello@davidandrewschneider.com. For anything work-related, LinkedIn works too.
Books I've finished, with one line each on whether they were worth it. No affiliate links, no five-star inflation.
One or two sentences on what it's good for and who should skip it.
Copy a <li class="card"> block in src/channels/bookshelf.md. Use card__tag for the shelf it belongs on: Security, Infrastructure, Leadership, Fiction, whatever you need.
If this grows past a couple of dozen entries it is worth moving to a data file and looping over it, the way the Social channel does.
3D prints, repairs, and workshop output. Things that exist because it was faster to make one than to find one.
Why it needed to exist, what it was printed in, and what went wrong the first time.
The interesting part of a print is rarely the model, it is the settings and the failures. Filament, layer height, supports, and what the first attempt taught you are worth writing down.
Photographs of finished work also belong on the Photo Channel. Infrastructure and self-hosting live on the Homelab Channel.
Presentations and panels, with slides where I have them.
One or two sentences on the audience and the argument. Link the slides or a recording if either exists.
Add a line here about the topics you will speak on and how to reach you, or delete this section.
Topics: infrastructure and security for small IT teams, nonprofit technology, and getting non-technical leadership to make good technical tradeoffs.
Booking goes through contact.