From ad4365309f3e3f2435f2b5a3318d6ada6a6028d4 Mon Sep 17 00:00:00 2001 From: Owen Rummage Date: Wed, 12 Aug 2026 10:18:09 -0500 Subject: [PATCH] fixes --- src/curl-response.ts | 53 +++++++++++------------- src/data/practice.ts | 20 ++++----- src/data/projects.ts | 48 ---------------------- src/data/tools.ts | 88 ++++++++++++++++++++++++---------------- src/data/work.ts | 38 ++++++----------- src/pages/index.astro | 64 +++++++++-------------------- src/scripts/page-play.ts | 27 ++++++++++-- src/styles/global.css | 25 ++++++++++++ 8 files changed, 165 insertions(+), 198 deletions(-) delete mode 100644 src/data/projects.ts diff --git a/src/curl-response.ts b/src/curl-response.ts index fb8878c..8a09fbc 100644 --- a/src/curl-response.ts +++ b/src/curl-response.ts @@ -1,5 +1,4 @@ import { practice } from "./data/practice.ts"; -import { projects, websites } from "./data/projects.ts"; import { tools } from "./data/tools.ts"; import { work } from "./data/work.ts"; @@ -81,13 +80,6 @@ const experience = work.flatMap((role, index) => [ ...(index < work.length - 1 ? [""] : []), ]); -const projectList = [...projects, ...websites].flatMap((project, index, all) => [ - { text: project.name.toUpperCase(), style: `${color.bold}${color.purple}` }, - { text: `${project.type} · ${project.url}`, style: color.amber }, - { text: project.description, style: color.text }, - ...(index < all.length - 1 ? [""] : []), -]); - const competencies = practice.flatMap((area, index) => [ { text: area.title.toUpperCase(), style: `${color.bold}${color.purple}` }, { text: area.body, style: color.text }, @@ -101,28 +93,34 @@ const proficiencyOrder = [ "Familiar", ] as const; -const skills = proficiencyOrder.flatMap((level, index) => { - const names = tools - .filter((tool) => tool.proficiency === level) - .map((tool) => tool.name) - .join(" · "); - return [ - { text: level.toUpperCase(), style: `${color.bold}${color.purple}` }, - { text: names, style: color.text }, - ...(index < proficiencyOrder.length - 1 ? [""] : []), - ]; -}); +const baseTools = tools.filter((tool) => !tool.extra); + +const skills = proficiencyOrder + .map((level) => ({ + level, + names: baseTools + .filter((tool) => tool.proficiency === level) + .map((tool) => tool.name) + .join(" · "), + })) + .filter((group) => group.names) + .flatMap((group, index, all) => [ + { text: group.level.toUpperCase(), style: `${color.bold}${color.purple}` }, + { text: group.names, style: color.text }, + ...(index < all.length - 1 ? [""] : []), + ]); const page = ` ${color.purple} ▄████▄ ▄▄▄▄▄▄▄▄ ▄██▀▀██▄ ███▀▀▀███ ${color.bold}${color.text}OWEN RUMMAGE${color.reset} -${color.purple} ███ ███ ███▄▄▄██▀ ${color.amber}Systems engineer${color.reset} +${color.purple} ███ ███ ███▄▄▄██▀ ${color.amber}IT support professional${color.reset} ${color.purple} ▀██▄▄██▀ ███ ▀██▄ ${color.muted}Nashville, Tennessee${color.reset} ${color.purple} ▀████▀ ███ ███ -${color.border} ──────────────────────── ${color.green}Linux · networks · cloud · automation${color.reset} +${color.border} ──────────────────────── ${color.green}Helpdesk · networking · endpoint deployment${color.reset} -${color.text} Systems engineer specializing in Linux infrastructure, network engineering, - cloud platforms, and automation. Based in Nashville, Tennessee.${color.reset} +${color.text} Hands-on IT support professional with experience handling support calls, + troubleshooting computers and connectivity, deploying endpoints, documenting + work, and helping users with different levels of technical comfort.${color.reset} ${hyperlink("hello@rummage.cc", "mailto:hello@rummage.cc")} ${hyperlink("github.com/owenrummage", "https://github.com/owenrummage")} ${hyperlink("linkedin.com/in/orummage", "https://linkedin.com/in/orummage")} ${hyperlink("rummage.cc", "https://rummage.cc")} @@ -130,19 +128,16 @@ ${color.text} Systems engineer specializing in Linux infrastructure, network en ${section("EXPERIENCE", experience)} ${section("EDUCATION", [ - { text: "ASSOCIATE OF APPLIED SCIENCE IN COMPUTER INFORMATION TECHNOLOGY", style: `${color.bold}${color.purple}` }, - { text: "Nashville State Community College · 2023 - 2026", style: color.amber }, - { text: "Concentration in Systems Administration and Management. Graduated May 2026.", style: color.text }, + { text: "A.A.S, COMPUTER INFORMATION TECHNOLOGY - SYSTEMS ADMINISTRATION", style: `${color.bold}${color.purple}` }, + { text: "Nashville State Community College", style: color.amber }, ])} -${section("PROJECTS", projectList)} - ${section("CORE COMPETENCIES", competencies)} ${section("TECHNICAL SKILLS", skills)} ${section("APPROACH", [ - { text: "I build systems that can be understood and maintained by someone other than me.", style: `${color.bold}${color.green}` }, + { text: "Good systems should be easy to understand, maintain, and use.", style: `${color.bold}${color.green}` }, ])} ${color.muted} $${color.reset} ${color.text}curl rummage.cc${color.reset} ${color.muted}Get this page${color.reset} diff --git a/src/data/practice.ts b/src/data/practice.ts index 2a39abe..7e5ef91 100644 --- a/src/data/practice.ts +++ b/src/data/practice.ts @@ -5,23 +5,19 @@ export type Area = { export const practice: Area[] = [ { - title: 'Network and systems administration', - body: 'Design and maintain business networks, Linux servers, mail systems, web servers, and databases. Configure monitoring, backups, and access controls.', + title: 'Help desk and customer support', + body: 'Handle incoming support calls and tickets, gather clear information about symptoms, and communicate solutions to users with different levels of technical comfort.', }, { - title: 'IT support and endpoint management', - body: 'Support Windows, macOS, and Linux endpoints. Diagnose hardware and software problems, deploy system images, and maintain device inventories.', + title: 'Endpoint deployment and management', + body: 'Deploy and image Windows endpoints, support Windows, macOS, and ChromeOS devices, run hardware diagnostics, and maintain device inventories.', }, { - title: 'Software development and automation', - body: 'Write scripts and internal tools for operational workflows, CI/CD pipelines, infrastructure management, and system monitoring.', + title: 'Network and connectivity troubleshooting', + body: 'Diagnose Wi-Fi, routing, switching, VLAN, VPN, DNS, and DHCP issues for client and enterprise networks.', }, { - title: 'Web application development', - body: 'Build responsive, accessible web applications and internal tools with TypeScript, Svelte, and Tailwind CSS.', - }, - { - title: 'Media systems and production', - body: 'Operate live audiovisual systems and produce video and digital content for broadcast and client work.', + title: 'Documentation and escalation', + body: 'Document troubleshooting steps clearly and escalate issues that need additional attention, keeping work moving from intake through resolution.', }, ]; diff --git a/src/data/projects.ts b/src/data/projects.ts deleted file mode 100644 index 251aec0..0000000 --- a/src/data/projects.ts +++ /dev/null @@ -1,48 +0,0 @@ -export type Project = { - name: string; - url: string; - type: string; - description: string; -}; - -export const projects: Project[] = [ - { - name: "FOSSbench", - url: "https://fossbench.net", - type: "Platform", - description: "An open CPU benchmarking platform for submitting, searching, and comparing results across processors, operating systems, and compilers.", - }, - { - name: "Wayviewer", - url: "https://github.com/owenrummage/wayviewer", - type: "Open source", - description: "A lightweight VNC viewer for Wayland, written in C++ with SDL2 and libvncclient. Includes command-line options and a graphical connection launcher.", - }, - { - name: "ipinfo", - url: "https://github.com/owenrummage/ipinfo", - type: "Open source", - description: "A Go command-line application for looking up and displaying IP address information.", - }, - { - name: "Wii-Linux", - url: "https://wii-linux.org", - type: "Infrastructure", - description: "Provide hosted compute and infrastructure sponsorship through NixLabs for the modern Wii-Linux project, with occasional contributions to project work.", - }, -]; - -export const websites: Project[] = [ - { - name: "NixLabs Networks", - url: "https://nixlabs.dev", - type: "Website", - description: "Designed and built the company website for NixLabs Networks, covering its managed IT, helpdesk, hosting, and infrastructure services.", - }, - { - name: "Simple Logic IT Solutions", - url: "https://simplelogic.net", - type: "Website", - description: "Designed and built the service website for Simple Logic IT Solutions, including its managed IT, on-site support, service areas, and client portal access.", - }, -]; diff --git a/src/data/tools.ts b/src/data/tools.ts index e539475..294cecb 100644 --- a/src/data/tools.ts +++ b/src/data/tools.ts @@ -1,47 +1,65 @@ export type Skill = { name: string; proficiency: "Advanced" | "Proficient" | "Working knowledge" | "Familiar"; + // Extra skills from past systems/network engineering work, hidden behind + // the "show more" toggle instead of shown by default. + extra?: boolean; }; export const tools: Skill[] = [ - { name: "Linux", proficiency: "Advanced" }, - { name: "Windows", proficiency: "Proficient" }, + { name: "Windows 10/11", proficiency: "Advanced" }, { name: "macOS", proficiency: "Proficient" }, - { name: "Bash", proficiency: "Working knowledge" }, - { name: "Python", proficiency: "Proficient" }, - { name: "TypeScript", proficiency: "Proficient" }, - { name: "Svelte", proficiency: "Proficient" }, - { name: "Tailwind CSS", proficiency: "Working knowledge" }, - { name: "NGINX", proficiency: "Proficient" }, - { name: "Cisco", proficiency: "Proficient" }, - { name: "Ubiquiti", proficiency: "Proficient" }, - { name: "Juniper", proficiency: "Working knowledge" }, - { name: "Aruba", proficiency: "Familiar" }, - { name: "MikroTik", proficiency: "Familiar" }, - { name: "BGP", proficiency: "Working knowledge" }, - { name: "OSPF", proficiency: "Working knowledge" }, + { name: "ChromeOS", proficiency: "Working knowledge" }, + { name: "Linux", proficiency: "Working knowledge" }, + { name: "Google Workspace", proficiency: "Proficient" }, + { name: "Microsoft 365", proficiency: "Proficient" }, + { name: "Azure", proficiency: "Working knowledge" }, + { name: "Intune", proficiency: "Working knowledge" }, + { name: "Connectivity Troubleshooting", proficiency: "Advanced" }, + { name: "Wi-Fi", proficiency: "Advanced" }, + { name: "Routing", proficiency: "Proficient" }, + { name: "Switching", proficiency: "Proficient" }, { name: "VLANs", proficiency: "Proficient" }, { name: "VPNs", proficiency: "Proficient" }, { name: "DNS", proficiency: "Proficient" }, { name: "DHCP", proficiency: "Proficient" }, - { name: "Proxmox", proficiency: "Proficient" }, - { name: "VMware", proficiency: "Working knowledge" }, - { name: "Hyper-V", proficiency: "Familiar" }, - { name: "KVM", proficiency: "Working knowledge" }, - { name: "Docker", proficiency: "Proficient" }, - { name: "Kubernetes", proficiency: "Working knowledge" }, - { name: "Cloudflare", proficiency: "Proficient" }, - { name: "Azure", proficiency: "Working knowledge" }, - { name: "AWS", proficiency: "Working knowledge" }, - { name: "Ansible", proficiency: "Working knowledge" }, - { name: "Terraform", proficiency: "Working knowledge" }, - { name: "GitHub Actions", proficiency: "Proficient" }, - { name: "Git", proficiency: "Working knowledge" }, - { name: "GitHub", proficiency: "Advanced" }, - { name: "Grafana", proficiency: "Working knowledge" }, - { name: "Prometheus", proficiency: "Working knowledge" }, - { name: "Zabbix", proficiency: "Working knowledge" }, - { name: "pfSense", proficiency: "Proficient" }, - { name: "OPNsense", proficiency: "Proficient" }, - { name: "Google Workspace", proficiency: "Proficient" }, + { name: "IPv4/IPv6", proficiency: "Working knowledge" }, + { name: "PC Deployment", proficiency: "Advanced" }, + { name: "Hardware Diagnostics", proficiency: "Advanced" }, + { name: "Printers", proficiency: "Proficient" }, + { name: "Peripherals", proficiency: "Proficient" }, + { name: "Account Access", proficiency: "Proficient" }, + { name: "Remote Support", proficiency: "Advanced" }, + + { name: "Bash", proficiency: "Working knowledge", extra: true }, + { name: "Python", proficiency: "Proficient", extra: true }, + { name: "TypeScript", proficiency: "Proficient", extra: true }, + { name: "Svelte", proficiency: "Proficient", extra: true }, + { name: "Tailwind CSS", proficiency: "Working knowledge", extra: true }, + { name: "NGINX", proficiency: "Proficient", extra: true }, + { name: "Cisco", proficiency: "Proficient", extra: true }, + { name: "Ubiquiti", proficiency: "Proficient", extra: true }, + { name: "Juniper", proficiency: "Working knowledge", extra: true }, + { name: "Aruba", proficiency: "Familiar", extra: true }, + { name: "MikroTik", proficiency: "Familiar", extra: true }, + { name: "BGP", proficiency: "Working knowledge", extra: true }, + { name: "OSPF", proficiency: "Working knowledge", extra: true }, + { name: "Proxmox", proficiency: "Proficient", extra: true }, + { name: "VMware", proficiency: "Working knowledge", extra: true }, + { name: "Hyper-V", proficiency: "Familiar", extra: true }, + { name: "KVM", proficiency: "Working knowledge", extra: true }, + { name: "Docker", proficiency: "Proficient", extra: true }, + { name: "Kubernetes", proficiency: "Working knowledge", extra: true }, + { name: "Cloudflare", proficiency: "Proficient", extra: true }, + { name: "AWS", proficiency: "Working knowledge", extra: true }, + { name: "Ansible", proficiency: "Working knowledge", extra: true }, + { name: "Terraform", proficiency: "Working knowledge", extra: true }, + { name: "GitHub Actions", proficiency: "Proficient", extra: true }, + { name: "Git", proficiency: "Working knowledge", extra: true }, + { name: "GitHub", proficiency: "Advanced", extra: true }, + { name: "Grafana", proficiency: "Working knowledge", extra: true }, + { name: "Prometheus", proficiency: "Working knowledge", extra: true }, + { name: "Zabbix", proficiency: "Working knowledge", extra: true }, + { name: "pfSense", proficiency: "Proficient", extra: true }, + { name: "OPNsense", proficiency: "Proficient", extra: true }, ]; diff --git a/src/data/work.ts b/src/data/work.ts index 5e927ce..c5be58f 100644 --- a/src/data/work.ts +++ b/src/data/work.ts @@ -8,39 +8,27 @@ export type Role = { export const work: Role[] = [ { - title: "Owner & Operator", - company: "NixLabs Networks", - years: "2021 - 2024", - description: "Designed and maintained client network infrastructure, hosting platforms, and Linux systems. Wrote Bash and Python automation for routine infrastructure work, and supported production servers through monitoring, troubleshooting, and system administration.", - }, - { - title: "Technical Specialist", - company: "Computer House · Part-time", - years: "Jun - Aug 2023", - description: "Diagnosed and repaired customer computers with hardware and software problems. Configured networks and servers for contract clients, handled storefront sales, and managed daily shop operations.", + title: "IT Support Helpdesk", + company: "Schwartz Networks LLC", + years: "Aug 2023 - Jul 2025", + description: "Handled incoming support calls from ISP clients and gathered clear information about service, device, and connectivity symptoms. Checked client-side equipment, connection status, and common configuration problems, documented troubleshooting steps, and escalated as needed.", }, { title: "IT Support Intern", - company: "Metro Nashville Public Schools · Internship", + company: "Metro Nashville Public Schools", years: "Jan - Jul 2023", - description: "Deployed Windows computers with Windows Deployment Services (WDS). Resolved hardware and software problems for staff and students, tracked district devices, and prepared equipment for technology rollouts.", + description: "Supported Windows 10 endpoints, including computer deployment, WDS imaging, hardware diagnostics, and user assistance. Resolved classroom and staff technology issues while working within an enterprise network and server environment.", }, { - title: "System Architect", - company: "Fyra Labs · Part-time", - years: "Mar - Oct 2022", - description: "Designed and maintained infrastructure for hosted services. Configured Cloudflare for DNS, traffic routing, and application security, then implemented load balancing to distribute traffic across services.", + title: "Independent IT Contracting", + company: "College Experience", + years: "During college", + description: "Provided direct computer, account, application, and network support for local clients while completing college. Transitioning the remaining work to a trusted friend who recently entered college in order to focus on a long-term team role.", }, { title: "Technical Specialist", - company: "Computer House Inc · Seasonal", - years: "Jun - Aug 2022", - description: "Troubleshot and repaired desktops, laptops, and related hardware. Recommended systems, replacement parts, and upgrades to customers, prepared new computers for sale, and supported storefront operations.", - }, - { - title: "Software Engineer", - company: "Innatical · Part-time", - years: "Apr - Oct 2021", - description: "Built and maintained TypeScript back-end services, APIs, and server-side application features. Diagnosed bugs, reviewed code changes, and tested releases with a remote development team.", + company: "Computer House", + years: "Apr - Aug 2022", + description: "Diagnosed and repaired computers, resolved hardware and software problems, and configured replacement systems. Explained findings and recommendations clearly, answered customer questions, and kept jobs moving from intake through completion.", }, ]; diff --git a/src/pages/index.astro b/src/pages/index.astro index d4b79a2..be4e08c 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -3,10 +3,9 @@ import Layout from "../layouts/Layout.astro"; import { work } from "../data/work"; import { practice } from "../data/practice"; import { tools } from "../data/tools"; -import { projects, websites } from "../data/projects"; const description = - "Systems engineer specializing in Linux infrastructure, network engineering, cloud platforms, and automation."; + "Hands-on IT support professional with experience in helpdesk support, endpoint deployment, and network troubleshooting."; ---