From f8b4a37890849feb00e61bf965a0098545db4251 Mon Sep 17 00:00:00 2001 From: ReachableCEO Date: Tue, 30 Sep 2025 15:15:52 -0500 Subject: [PATCH] Add Docker setup and resume templates --- Dockerfile | 10 +++++ Makefile | 22 ++++++++++ docker-compose.yml | 7 ++++ resumes/Q42025-1PageResume.md | 53 +++++++++++++++++++++++ resumes/Q42025-2PageResume.md | 72 ++++++++++++++++++++++++++++++++ templates/resume-reference.docx | Bin 0 -> 16716 bytes templates/resume-template.tex | 22 ++++++++++ 7 files changed, 186 insertions(+) create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 docker-compose.yml create mode 100755 resumes/Q42025-1PageResume.md create mode 100644 resumes/Q42025-2PageResume.md create mode 100644 templates/resume-reference.docx create mode 100755 templates/resume-template.tex diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2913c2d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM ubuntu:22.04 +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + texlive-full \ + pandoc \ + make \ + && apt-get clean && rm -rf /var/lib/apt/lists/* +WORKDIR /data +ENTRYPOINT ["pandoc"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..768b84c --- /dev/null +++ b/Makefile @@ -0,0 +1,22 @@ +TEMPLATE=templates/resume-template.tex +REFDOC=templates/resume-reference.docx + +RESUMES=$(wildcard resumes/*.md) +PDFS=$(RESUMES:.md=.pdf) +DOCXS=$(RESUMES:.md=.docx) + +all: pdf docx + +pdf: $(PDFS) +docx: $(DOCXS) + +resumes/%.pdf: resumes/%.md $(TEMPLATE) + docker compose run --rm resume-builder resumes/$(notdir $<) \ + --template=$(TEMPLATE) -o resumes/$(notdir $@) + +resumes/%.docx: resumes/%.md $(REFDOC) + docker compose run --rm resume-builder resumes/$(notdir $<) \ + --reference-doc=$(REFDOC) -o resumes/$(notdir $@) + +clean: + rm -f $(PDFS) $(DOCXS) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d404d8c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,7 @@ +version: "3.9" +services: + resume-builder: + build: . + volumes: + - ./resumes:/data/resumes + - ./templates:/data/templates \ No newline at end of file diff --git a/resumes/Q42025-1PageResume.md b/resumes/Q42025-1PageResume.md new file mode 100755 index 0000000..ecd85c4 --- /dev/null +++ b/resumes/Q42025-1PageResume.md @@ -0,0 +1,53 @@ +# Charles N Wyble +[City, State] • [Email] • [818-280-7059] • [LinkedIn(https://www.linkedin.com/in/charles-wyble-412007337/)] + +--- + +## Summary +Infrastructure engineer with 20+ years in technical operations, specializing in Linux, Windows, and networking. Deep experience in on-prem systems, private cloud automation, and lifecycle management. Proven track record designing scalable infrastructure and reducing provisioning timelines through automation. + +--- + +## Key Skills +Linux (RHEL, Ubuntu) • Windows Server • Networking (DNS, DHCP, IPAM, VPNs, Firewalls) • VMware • KVM • Hyper-V • PXE provisioning • Bash • Python • PowerShell • Nagios • ServiceNow • Packer + +--- + +## Professional Experience + +**Gainwell Technologies** — Linux Infrastructure Engineer +*Jan 2025 – Present* +- Supported Medicare batch processing and job scheduling operations using ServiceNow, TeamFoundationServer, Visual Studio, and Oracle. +- Developed Bash scripts to automate on-call incident response analysis, reducing manual triage time. +- Automated SDLC workflows and monitoring tasks through lightweight shell utilities, improving consistency and reducing ticket volume. +- Applied AI tools to reverse engineer legacy codebases and generate new scripts/programs, accelerating delivery of automation solutions. +- Partnered with development and operations teams to streamline production support and strengthen system reliability. + + +**SHEIN** — Linux Infrastructure Engineer +*Dec 2022 – Aug 2023* +Built automation tooling for routing/DNS/firewall tickets across AWS, Azure, GCP, Alibaba Cloud, and private cloud. Acted as network/security liaison to global SRE team. + +**3M** — Linux Infrastructure Engineer +*Jul 2020 – Nov 2022* +Developed YAML-based configuration management system using Bash scripting and CSV key/value stores. Supported Vendavo on RedHat Linux and release processes. + +**TippingPoint** — Infrastructure Engineer +*Jun 2012 – Jun 2019* +- Designed private cloud lifecycle management system automating IP allocation, DNS, and PXE provisioning for physical/virtual servers. +- Cut provisioning time from days to under an hour through CSV-driven automation. +- Supported large-scale web applications, optimized for uptime and scalability. +- Migrated CentOS 6→7, introduced LXC/LXD containers, and deployed monitoring (Nagios, Zenoss, LibreNMS). +- Built custom automation scripts in Bash, Python, and PowerShell to streamline operations. + +**Earlier Career (2002 – 2012)** +Systems Administrator / Infrastructure Administrator roles across HostGator, RippleTV, Walt Disney Internet Group, Electronic Clearing House, and GSI Commerce. + +--- + +## Additional Tools / Familiar With +- Containers: Docker (side projects), LXC/LXD +- CI/CD & Version Control: GitLab CI, Jenkins, GitHub Actions, TeamFoundationServer +- Observability: Prometheus, Grafana, ELK stack (evaluation/side use) +- IaC / Config: YAML, JSON, CSV-driven automation; basic exposure to Terraform and Ansible +- Cloud Services: AWS, Azure, GCP, Alibaba Cloud (collaboration and troubleshooting exposure) diff --git a/resumes/Q42025-2PageResume.md b/resumes/Q42025-2PageResume.md new file mode 100644 index 0000000..94f75d5 --- /dev/null +++ b/resumes/Q42025-2PageResume.md @@ -0,0 +1,72 @@ +# Charles N Wyble +[City, State] • [Email] • [Phone] • [LinkedIn] • [GitHub] + +--- + +## Summary +Infrastructure engineer with 20+ years in technical operations. Expertise in Linux, Windows, and networking with deep experience in on-premise systems, private cloud automation, and large-scale web applications. Skilled at provisioning automation, DNS/IPAM integration, and lifecycle management for enterprise infrastructure. Strong track record supporting high-traffic, business-critical environments across small, medium, and large organizations. + +--- + +## Key Skills +- Operating Systems: Linux (RHEL, Ubuntu), Windows Server +- Networking: TCP/IP, DNS, DHCP, IPAM, VPNs, Firewalls, Load Balancers +- Virtualization: VMware, KVM, Hyper-V +- Automation: PXE provisioning, Bash, Python, PowerShell +- Monitoring: Nagios, Zenoss, Observium/LibreNMS +- Tools: ServiceNow, Packer, Rundeck, TeamFoundationServer, Git +- Cloud: AWS, Azure, GCP, Alibaba (exposure through hybrid work) + +--- + +## Professional Experience + +**Gainwell Technologies** — Linux Infrastructure Engineer +*Jan 2025 – Present* +- Supported Medicare batch processing and job scheduling operations using ServiceNow, TeamFoundationServer, Visual Studio, and Oracle. +- Developed Bash scripts to automate on-call incident response analysis, reducing manual triage time. +- Automated SDLC workflows and monitoring tasks through lightweight shell utilities, improving consistency and reducing ticket volume. +- Applied AI tools to reverse engineer legacy codebases and generate new scripts/programs, accelerating delivery of automation solutions. +- Partnered with development and operations teams to streamline production support and strengthen system reliability. + +**CDK Global** — Linux Infrastructure Engineer +*Jul 2024 – Oct 2024* +- Worked with risk management/audit to remediate insecure configurations. +- Created Alma9 Packer image from scratch for enterprise use. + +**SHEIN** — Linux Infrastructure Engineer +*Dec 2022 – Aug 2023* +- Acted as network/security liaison to the SRE team across AWS, Azure, GCP, Alibaba Cloud, and internal private cloud. +- Built automation tooling to resolve ServiceNow tickets related to routing, DNS, and firewall inconsistencies across global environments. + +**3M** — Linux Infrastructure Engineer +*Jul 2020 – Nov 2022* +- Supported Vendavo on RedHat Linux, managed releases, and provided developer support. +- Created a YAML configuration management system using bash scripting and CSV-based key/value stores to manage environment-specific variables across multiple environments. + +**TippingPoint** — Linux/Windows/Networking Infrastructure Engineer +*Jun 2012 – Jun 2019* +- Designed and built an end-to-end private cloud lifecycle management system automating IP allocation, DNS updates, and server provisioning (physical via PXE, virtual via VMware/KVM). +- Reduced provisioning timelines from several days to under one hour by centralizing workflows around a CSV-driven source of truth. +- Engineered infrastructure supporting large-scale web applications with high availability and scalability. +- Streamlined operations with custom Bash, Python, and PowerShell scripts to eliminate repetitive manual tasks. +- Managed DNS, DHCP, and load balancers to maintain reliable networking services. +- Led migration from CentOS 6 to CentOS 7 and introduced LXC/LXD containers for improved utilization. +- Implemented monitoring systems (Nagios, Zenoss, Observium/LibreNMS) and integrated LibreNMS as a CMDB feeding a job execution platform (Rundeck). + +**Earlier Career (2002 – 2012)** +Systems Administrator / Linux Infrastructure Administrator roles across HostGator, RippleTV, Walt Disney Internet Group, Electronic Clearing House, and GSI Commerce. +- Administered Linux and Windows servers, Active Directory, Exchange, and enterprise applications. +- Supported networking infrastructure including VPNs, firewalls, DNS, and DHCP. +- Automated monitoring (Nagios), system administration tasks, and deployment workflows. +- Delivered enterprise uptime in transaction processing, ecommerce, and media environments. +- Built foundational expertise in high-traffic web systems, Oracle/MySQL databases, and disaster recovery. + +--- + +## Additional Tools / Familiar With +- Containers: Docker (side projects), LXC/LXD +- CI/CD & Version Control: GitLab CI, Jenkins, GitHub Actions, TeamFoundationServer +- Observability: Prometheus, Grafana, ELK stack (evaluation/side use) +- IaC / Config: YAML, JSON, CSV-driven automation; basic exposure to Terraform and Ansible +- Cloud Services: AWS, Azure, GCP, Alibaba Cloud (collaboration and troubleshooting exposure) diff --git a/templates/resume-reference.docx b/templates/resume-reference.docx new file mode 100644 index 0000000000000000000000000000000000000000..f631233c87107679084ef87ae526a99832f938e3 GIT binary patch literal 16716 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 literal 0 HcmV?d00001 diff --git a/templates/resume-template.tex b/templates/resume-template.tex new file mode 100755 index 0000000..bad7ef2 --- /dev/null +++ b/templates/resume-template.tex @@ -0,0 +1,22 @@ +\documentclass[11pt,a4paper]{article} +\usepackage[margin=1in]{geometry} +\usepackage{titlesec} +\usepackage{enumitem} +\usepackage{hyperref} +\usepackage{parskip} +\usepackage{helvet} +\renewcommand{\familydefault}{\sfdefault} + +% Section formatting +\titleformat{\section}{\large\bfseries}{}{0em}{}[\titlerule] +\titleformat{\subsection}{\normalsize\bfseries}{}{0em}{} + +% Bullet formatting +\setlist[itemize]{noitemsep,topsep=0pt,left=1em} + +% No page numbers +\pagenumbering{gobble} + +\begin{document} +$body$ +\end{document}