Professional profile · dunamismax

Stephen Sawyer.

Web developer, sysadmin, and the person responsible for keeping the service running.

Astro and TypeScript web development, Python scripting, and practical systems administration. I connect application work with company IT, remote support, and infrastructure I operate myself.

dunamismax@tutamail.com

Practical experience

What I take responsibility for.

My work combines building applications with the everyday work of hosting, supporting, monitoring, and maintaining them.

Company remote support

I self-host RustDesk for my entire company. I operate its server and relay, maintain the customer support website and preconfigured Windows download, and automate installer verification and service backups.

RustDesk & xrayservice.net

Web development & publishing

I build bespoke Astro applications with strict TypeScript and PostgreSQL, semantic HTML, and responsive CSS. My work includes this portfolio, Grace & Footnotes, and an Imaging Services website replacement currently hosted as a demo.

Website portfolio

Ubuntu systems administration

I administer the shared server: Caddy for HTTPS, dedicated Node services, PostgreSQL, Docker services, and systemd jobs. My operations work includes Tailscale access, fail2ban, monitoring, and encrypted backups with documented rebuild procedures.

Monitoring & recovery work

Automation & integration

I use Python for bots and scripting, TypeScript for scheduled DNS updates and monitoring, and shell for deployment glue. The MTG Card Bot connects Discord to Scryfall; the DNS updater maintains an explicit set of records automatically.

Automation projects

Technical skills

The tools behind the work.

Application development
Astro, strict TypeScript, PostgreSQL, prepared SQL, server-rendered HTML, CSS, and selective vanilla JavaScript.
Automation & APIs
Python, TypeScript, Bash, uv, Ruff, pytest, discord.py, httpx, Scryfall, and Cloudflare DNS.
Hosting & operations
Ubuntu, Caddy, Node.js, Docker, systemd services and timers, Git, and versioned deployments.
Support & recovery
RustDesk, Windows client setup, Tailscale, fail2ban, least-privilege accounts, database backups, age encryption, and recovery documentation.

Working approach

Keep it understandable.

Choose simple tools deliberately. I prefer readable TypeScript, explicit SQL, and pages that work without scripts. Dependencies need to justify their ongoing maintenance cost.

Make security part of the design. Prepared statements, escaped output, separate publishing and read-only accounts, and secrets outside the web root give each component a clear boundary.

Own the operating work. Shipping includes deployment, monitoring, backups, and recovery documentation. I want to understand how a service behaves and how to put it back together.

Be precise about what is ready. A working demo, a running service, and a verified recovery are different milestones. I describe the work according to what has actually been done.

For project questions or work conversations, get in touch. Source for my public code is on GitHub and Codeberg.