diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index adef9c6..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "permissions": { - "allow": [ - "WebFetch(domain:jsonresume.org)" - ], - "deny": [], - "ask": [] - } -} diff --git a/.gitea/workflows/docker-build.yaml b/.gitea/workflows/docker-build.yaml deleted file mode 100644 index 0d56d03..0000000 --- a/.gitea/workflows/docker-build.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: Build and Push Docker Image - -on: - push: - branches: - - master - -jobs: - build: - runs-on: ubuntu-latest - - # required to ensure we have node and all the build requirements for gitea actions - container: docker.io/catthehacker/ubuntu:act-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Login to Gitea Container Registry - uses: docker/login-action@v3 - with: - registry: git.sneakygeek.net - username: ${{ github.actor }} - password: ${{ secrets.REGISTRY_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: | - git.sneakygeek.net/ptarrant/resume:latest - git.sneakygeek.net/ptarrant/resume:${{ github.sha }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2f32c34 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules/ +*.docx +package-lock.json +.claude/ \ No newline at end of file diff --git a/2025/Head-of-SOC/Phillip_Tarrant_Resume.pdf b/2025/Head-of-SOC/Phillip_Tarrant_Resume.pdf new file mode 100644 index 0000000..2f35ca2 --- /dev/null +++ b/2025/Head-of-SOC/Phillip_Tarrant_Resume.pdf @@ -0,0 +1,71 @@ +%PDF-1.7 +%‘³ΕΧ +1 0 obj +<> +endobj +2 0 obj +<> +endobj +3 0 obj +<> +endobj +4 0 obj +<>/Rotate 0/Trans<<>>/Type/Page>> +endobj +5 0 obj +<>stream +GatU3gMYb8&:O:Sb_lM"Po,[YDLJNo.u42I<[9#/!Pb_X-+,JUZgtoNO(Z5&*8k*.Dr5p"q%+n2"\o'V)OB@$f*ecg3M!usmc.arF7#>g06!E4SqMH24N.PDAkqlEF+tK)SZs-lF;VpGp;:XY?>UijlunRSe;FgVfZ1*u\q_HXPEVGk">R_"^[2rN#7iFFtfKd^d=MnBHNOu)n:5*qrRLKh(&=1m^C,oi=:JFEIE-VC09Oamlscu6FY;'&S]'S/T.-d#YCS?h@11hiOn^J`dI3?,/`d!/XWlC$\9c2Sr`^csMcRp`lQWQtl3\)dY_I;S5@XuRq_'Cn'=D,Wa,e00,U""<6DY1r8XYH$l+m)N0bnG&r0e8V*$E4_0I;iS.Ec"9S^KPLZkgX'#J=H9`r72,F<'s>:N=8(2@Au[jl=V0IFq-&d%-u[fB/Lu\bqb6#iUkYd0__,@7i__r8N$L)-B23>Xi^XmNk&;4bCc+)&1CUg6l;*Jmh(hH@YJ4Z@@9qLW2r7-_e.:RJ1SN2D'7tu6=<\>W$F.TM@7d#r&4e@0QAuMJU!un;NYt#J>A$/XKtr[)o`?2Zgs/YM)Gg2k8KZkP1p+h2dS)bGf:GX,9eCpdI)4]9cJF*kRS^.8ljJDj;AB43=VRfd\CBN>aRBi0L7(VqkiZ.($TJuI2PQ?&of&U/^_L]@c.$\M4OS),O;I*DP]lMlGieQ8(?mh6@#U5UIA%6,r()c*Eo[6VPIWr5=Eibe/3]/MT59S>f9F^kW&Nq$o=tJ;`m<_2Q]5EN>Yq37c=pdThJN*R-'5#[&l)LgshSWMb6/$7q\s3(TTdf8u>t;eUQ&r86.Xds`7IOu/s[CJ-$_:Z`=O(Qca2&?Wm+1"mg-OQ`;OH^WsenPu3e'X;2:te`^:\nHUFRdBmeg,a$ae6K4>(]j\980X$om-]D/$O/8g93$`ACRS/hIumQFN%KRcVl=tM/uRF]l#^Z:l>%'dLq.;:WKU,.&197t!Fc28(-q22gGQ?gamS('~> +endstream +endobj +6 0 obj +<> +endobj +7 0 obj +<> +endobj +8 0 obj +<> +endobj +9 0 obj +<> +endobj +10 0 obj +<>/Rotate 0/Trans<<>>/Type/Page>> +endobj +11 0 obj +<>stream +Gat=,?#uJp'Re<2\1aCEG@D@BpuAVRdN-XlD79.J?5/Je)^,ebfM-ko*W^GQ0#:\OBF=3VY(b:?CsBPL#(&-S7[?0N4#<]1\hoKKnh&7Cl,&`%SuW@3+%*GUaokulEm7s.%8P[0!"iR():+=h/d(O=rZFlkjCP?U'\8%nK-T$Io#B[B`3\sj);S:KJK)o`fUeop[r(EY.kaJO/d$$##1>EO)bqnK>fZ>BYC24]5T['Qn"`)L#F7oK`Y!+LY`*5^M:=4MNllc+RF?5de(>8icb;#_/>r!,0X^S@o=5cQTh1=aN^.5L%=sAM](Ea0"UC,N"MOH;\2RQ/*1ea(mXCe??!;18UH9bWR1L&cXp+)fbAKr\?X:pskg.h8i@)o4JA/`L9bN8mD,Op::OlZROV:_`UA:D+X%Sfppd"N^nKST"aa9S%W@=,4Xd:04p%aI3]j$-[Zqg8'efE#-([QC[dq#kYBa;"mtZ#&'Nk,GmghMKT+$'rS0YeF&BBuC;]$q!VclV])dTL\:Bcegp$EN:g&"gj*7R7KPS.G\l.*'lERGCC_^^ej7R"+tIai0nnWTp'"6(^Gp4*/lhVMXI,&@!_3AYAh5oH'<=<'Lj0Y6hhciR\0Q74I:<(]>W8,eflRJ/%na'm*8U/Cbd7kGfi?/p+PC$%2Lnk>RW%D2OaP6]Gr1fBVIMb%,<`EZ5kig-_`!1ItDoTZ2$dtph7Lb^UL-CPK%XQYi$',K0YGg?;>B/,,YO7HZT^_Sh9jkY<[t5,O_2#p[Nu#'._+4+XAAP`".5IMf?"_JHOmPN<%>W-DY,#_j[22.g`"g/c[eQO0'@7e:!E\H^KC+d%+I^9_i^ZU9(B5,Y,$/*n[F6Gn!1@mZI6^<@W7l:7"*h8,/_^eU+I&24Zk+O38r04*8!ZAT=B.iEj@j\PTi\k/o7Cj5QVFhoQ_;Pb#Y&KC_J91YRG1NkBSr1!>euor6OecAH)Tpm$C/'6W5IQ1=g-2I+?@!EJ*"67HiV1LaVeV\!?gD82"AI.g%sRB&[2o^Mc.nRp;)Y=gZ%o\PJTcDX5IqX5=r]4,f9IR`7Nh@gM1u40P5PP=Ao^G?N3P(VVkmRZ3M*b_DqE,*DVX=ol$Q'6-EXnUInKVZJmO%h)#;W9[6/B=*%OsYAYQ=gcKGPOL?$a,FOVhL\NQnSugn3#O-Q +endstream +endobj +12 0 obj +<>/Rotate 0/Trans<<>>/Type/Page>> +endobj +13 0 obj +<>stream +Gat=j968Q9'SZ;['mIJJ/Z#H(G*aQJOeFH44ET&3,2YAS[M0uID>l]M<`09L>f_00MecJpma4%XIIQIkq`A]rhA(!UiI`4;YlI"W6r7.+H#`?6^u(/G1J#2s0\*hMVQ0fFc$u1=hJHqln7e2+Nl1*nNZ,VUDmceg31#nl8P>XVtWp!976#"/R\PMg9+&AX$u(Q#*BPH7hjpa;QiPm3D-lpjkW'bglIOj#sQM<\"4qI$@*>+DQpJX3nS6L=Hf.,6>)r@t^P2N*F-1B-$X2$`n*OR4EF[!dg;0Os0NAG4e#N$dHa/jVEkeZqIOTC'hO1<]*\Bpdc`PlQDhm=gRo3b[g?^J2tn1=8tL_(W_q@E,tJMeE]jspdjW!cKq0@M[S_6f_M!64mM>m*HH:mCfC*fOq[;NQok.WSt6\d)U'gnA.8F\h4a!PK<]6tJ-TML,U[+M1rLe6IWiOBZKePSWb`ZG%43hWQgC24Ve)4;Kk?RUQJ8iTr"Z!g>,,7q&HtP)a2YX.&D^Ya8H>ON[Vp&r%5/\0A<_i/JW*hQ6#UOR,O=)D03d:+3qgfH:'Le87F=='l4<-"@hbhp7+/9eLa3"K6MmGJ4lg0!A@LCg:bH/5KI2`e##eORfH2 +endstream +endobj +xref +0 14 +0000000000 65535 f +0000000017 00000 n +0000000066 00000 n +0000000138 00000 n +0000000225 00000 n +0000000396 00000 n +0000002314 00000 n +0000002367 00000 n +0000002466 00000 n +0000002570 00000 n +0000002681 00000 n +0000002854 00000 n +0000004683 00000 n +0000004856 00000 n +trailer +<< +/Root 1 0 R +/Info 3 0 R +/Size 14/ID[]>> +startxref +5960 +%%EOF diff --git a/2025/Head-of-SOC/Resume.md b/2025/Head-of-SOC/Resume.md new file mode 100644 index 0000000..018d6e0 --- /dev/null +++ b/2025/Head-of-SOC/Resume.md @@ -0,0 +1,162 @@ +# PHILLIP TARRANT + +**Head of Security Operations | SOC Director** + +Morrison, TN | (706) 294-6733 | ptarrant@gmail.com | [LinkedIn](https://www.linkedin.com/in/phillip-tarrant-cyber) + +--- + +## PROFESSIONAL SUMMARY + +Results-driven Security Operations leader with 20+ years in cybersecurity and proven expertise scaling SOC operations in high-growth MSSP environments. Successfully grew SOC client base by 225% while managing a team of 17 direct reports and improving operational margins from 18% to 52%. Hands-on leader combining strategic vision with deep technical expertise in SIEM, SOAR, DFIR, and threat detection. Track record of building operational structure through SOPs, playbooks, and automation that drove 47% automated ticket resolution at scale. + +--- + +## CORE COMPETENCIES + +| SOC Leadership & Operations | Technical Expertise | +|:---------------------------|:-------------------| +| Team Building & Development (17+ direct reports) | SIEM: Splunk, Sentinel, ELK, Stellar Cyber | +| SOC Scaling & Growth Strategy | SOAR: Swimlane, D3, Torq | +| Playbook & Workflow Development | EDR: SentinelOne, Defender, Darktrace | +| SOP Creation & Process Design | DFIR & Malware Analysis | +| KPI Development & Metrics Reporting | Threat Hunting & Detection Engineering | +| P&L Management & Profitability | Python, PowerShell, Automation | +| Vendor Management & Negotiations | Cloud Security: AWS, Azure | +| Executive Communication | NIST, PCI-DSS, HIPAA Compliance | + +--- + +## PROFESSIONAL EXPERIENCE + +### Senior Information Security Consultant +**Confidential** | Remote | January 2025 - Present + +Contract consulting providing SOC leadership and cybersecurity expertise to multiple organizations. + +- Served as interim SOC Director at ATS Cyber Security Services, restructuring SOC workflows and elevating team capabilities through targeted training programs +- Currently leading SOC operations for US Defense Space market supplier across multiple Microsoft tenants and international locations +- Managing full SOC lifecycle including alert triage, DFIR engagements, and vulnerability management +- Designed and implemented automation operations including SDLC processes and deployment pipelines +- Managed enterprise Vulnerability Management Program for major fintech client using Qualys, building custom reports and automation scripts + +--- + +### Director of Automation +**Compuquip Cybersecurity** | Doral, FL | June 2024 - December 2024 + +Led Automation Team to transform SOC operational efficiency through intelligent automation. + +- **Built automation infrastructure handling 3,500 tickets weekly with 47% closed without human intervention** +- Designed, programmed, and deployed AI-powered tools using custom prompts and logic engines for security automation +- Spearheaded new automation architecture using Python, AWS Lambda, and SOAR platforms +- Drove team development in automation workflows and modern SOAR technologies +- Created custom heuristics, filtering rulesets, and rule engines for automated alert triage + +--- + +### SOC Director +**Compuquip Cybersecurity** | Doral, FL | March 2023 - June 2024 + +Directed Security Operations Center serving MSSP clients, overseeing all SOC, Red Team, and managed services operations. + +- **Scaled SOC client base from 16 to 52 customers (225% growth) through service expansion** +- **Improved SOC profitability from 18% to 52% margin (80% in peak quarter), contributing to 15% annual net income growth** +- **Managed team of 17 direct reports** including SOC analysts, engineers, and specialists +- Part of executive leadership team with COO/CEO/CFO, participating in quarterly strategic planning +- Oversaw Red Team/Offensive Security operations and Managed Remediation Service projects +- Managed DFIR engagements, MDR services, proactive vulnerability scanning, patching, and penetration testing +- Developed and maintained situational awareness reports for APT and foreign adversary incidents +- Created threat trend analysis reports and operational metrics for executive visibility + +--- + +### SOC Technical Manager +**Compuquip Cybersecurity** | Tampa, FL | January 2021 - March 2023 + +Managed SOC operations with focus on process development, team mentorship, and incident research. + +- Authored comprehensive SOPs and training documentation establishing operational standards +- Led incident research activities and mentored SOC engineers on advanced investigation techniques +- Developed SOC playbooks and workflows standardizing response procedures +- Generated end-of-month operational reports for management and customer stakeholders +- Maintained threat intelligence and situational awareness reports for advanced persistent threats +- Created threat trend analysis reports and performance metrics + +--- + +### Sr. Cyber Security Architect +**Travel Syndication Technology (TST)** | Alpharetta, GA | April 2020 - January 2021 + +Responsible for security architecture, compliance programs, and security operations strategy. + +- Developed and maintained cloud security posture and protection controls +- Created custom automation tools for infrastructure attack simulation and detection design +- Led organization through PCI and NIST 800-series compliance audits +- Formulated and managed phishing awareness and developer security training programs +- Designed automated security verification and testing programs + +--- + +### Senior Cyber Security Engineer +**Intercontinental Exchange** | Marietta, GA | March 2020 - April 2020 + +Architecture and Automation Team member focused on SOC tooling and data pipeline optimization. + +- Designed security data flow architecture from endpoints through aggregation, parsing, and storage +- Developed custom tools automating SOC triage and response activities +- Built vulnerability and threat hunting dashboards for tracking and mitigation +- Incorporated security into CI/CD pipelines including cloud-based deployments + +--- + +### Cyber Security Engineer +**Intercontinental Exchange** | Marietta, GA | August 2018 - March 2020 + +Incident Response and Digital Forensics Team lead investigator. + +- Served as lead investigator on critical security incidents with thorough forensic investigations +- Created extensive documentation establishing IR team processes and procedures +- Led malware analysis operations in isolated sandbox environments +- Developed training programs including custom malware writing exercises for junior analysts +- Managed multi-server compromise investigations coordinating across three teams and time zones + +--- + +### Technical Services Manager +**The National Wild Turkey Federation** | Edgefield, SC | October 2015 - August 2018 + +Managed IT team of 8 direct reports supporting 300+ staff members. + +- Directed team of technicians and developers with full performance management responsibilities +- Managed security for entire web presence including network and application security +- Negotiated vendor contracts saving $50,000+ annually through in-house migrations +- Oversaw infrastructure expansion doubling server capacity + +--- + +## CERTIFICATIONS + +| Certification | Issuer | +|:-------------|:-------| +| **GWAPT** - Web Application Penetration Tester | GIAC | +| **GCFA** - Forensic Analyst | GIAC | +| **GCIH** - Incident Handler | GIAC | +| **Lethal Forensicator Coin** | SANS (Award for Digital Forensics Excellence) | + +--- + +## EDUCATION + +**Associate Degree in Network Administration** | Virginia College | 2014-2016 | GPA: 4.0 + +--- + +## KEY ACHIEVEMENTS + +- **SOC Scaling**: Grew MSSP SOC from 16 to 52 clients while maintaining service excellence +- **Operational Excellence**: Improved SOC margins from 18% to 52% through process optimization +- **Automation Leadership**: Built systems processing 3,500 weekly tickets with 47% automated resolution +- **Team Development**: Successfully led and mentored teams up to 17 direct reports +- **Executive Partnership**: Collaborated with C-suite on strategic direction as part of leadership team +- **Enterprise Scale**: Managed operations for 50+ clients, 150,000+ assets, 1M+ users diff --git a/CLAUDE.md b/CLAUDE.md index 10dfbad..0e9841d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,49 +1,50 @@ -# CLAUDE.md +# Resume Generator with docx-js -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. +## Overview +This project generates professional Word documents (.docx) from JSON Resume format using the `docx` npm package. -## Repository Purpose - -This repository generates resumes based on existing resume documents and recent work history. Resumes can be general-purpose or tailored for specific job roles/titles. - -## Output Structure - -All generated resumes must follow this folder structure: -``` -YEAR/ROLE/Resume.md -YEAR/ROLE/Resume.pdf (or Resume.docx if PDF not possible) +## Setup +```bash +npm install docx ``` -Example: `2025/Security-Director/Resume.md` +## Usage +1. Place your resume data in `resume.json` following the JSON Resume schema (https://jsonresume.org/schema/) +2. Run: `node generate_resume.js` +3. Output: `Phillip_Tarrant_Resume_{YEAR}.docx` -## Output Formats +## Key docx-js Patterns -Every resume generation requires two outputs: -1. **Markdown version** - Primary editable format -2. **PDF version** - Preferred final format (use MS Word .docx if PDF generation is not possible) +### Page Setup +- Always set explicit page size (US Letter: 12240 x 15840 DXA, where 1440 DXA = 1 inch) +- Set margins in DXA units -## Source Materials +### Text Formatting +- Use `TextRun` for text with formatting (bold, italic, size, font) +- Size is in half-points (22 = 11pt, 24 = 12pt, 32 = 16pt) +- Always specify font explicitly for consistency -Reference these files in `sources/` when generating resumes: +### Lists/Bullets +- Never use unicode bullets manually (like "β€’" in text) +- Use `numbering` config with `LevelFormat.BULLET` +- Reference the numbering config in paragraphs -**Resume Documents:** -- `sources/Phillip_Tarrant_Resume_2024.docx` - Most recent general resume -- `sources/Phillip_Tarrant_Resume_2024_c_level.docx` - Executive/C-level focused version -- `sources/Phillip_Tarrant_Resume_2023.docx` - Previous year resume +### Critical Rules +1. Never use `\n` for line breaks - use separate Paragraph elements +2. Always set table `width` when using tables +3. PageBreak must be inside a Paragraph +4. Use Arial as default font (universally supported) -**Work History Details:** -- `sources/compuquip.md` - Compuquip role accomplishments -- `sources/contractor.md` - Recent contract roles -- `sources/briarwood.md` - Briarwood experience -- `sources/ice.md` - ICE experience -- `sources/morgan.md` - Morgan experience -- `sources/nwtf.md` - NWTF experience -- `sources/tst.md` - TST experience -- `sources/older_experience.md` - Earlier career history +## Customization +- Modify margins in `sections[0].properties.page.margin` +- Change fonts by updating the `font` property in TextRun objects +- Adjust spacing with `spacing: { before: X, after: Y }` on Paragraphs -## Resume Generation Workflow - -1. **General resume**: Use 2024 resume as base, incorporate recent history from markdown files -2. **Role-specific resume**: Tailor content to emphasize relevant experience for the target role/title -3. Create the YEAR/ROLE directory structure before generating files -4. Generate both Markdown and PDF/Word outputs +## JSON Resume Schema +The input JSON should follow the standard JSON Resume format with these sections: +- `basics`: name, label, email, phone, url, summary, location, profiles +- `work`: array of positions with name, position, startDate, endDate, summary, highlights +- `education`: institution, area, studyType, startDate, endDate, score +- `certificates`: name, issuer, date +- `awards`: title, awarder, date, summary +- `skills`: array of skill categories with name, level, keywords diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 30fd982..0000000 --- a/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -# Multi-stage build for JSON Resume HTML generation -# Uses jsonresume-theme-even for rendering - -FROM node:20-alpine AS builder - -WORKDIR /app - -# Copy resume.json -COPY resume.json . - -# Install theme and generate HTML using its built-in CLI -RUN mkdir -p www && npx jsonresume-theme-even < resume.json > www/index.html - -# Serve with nginx -FROM nginx:alpine -COPY --from=builder /app/www /usr/share/nginx/html - -EXPOSE 80 diff --git a/Phillip_Tarrant_Resume.docx b/Phillip_Tarrant_Resume.docx new file mode 100644 index 0000000..9fb008a Binary files /dev/null and b/Phillip_Tarrant_Resume.docx differ diff --git a/Phillip_Tarrant_Resume_2026.docx b/Phillip_Tarrant_Resume_2026.docx new file mode 100644 index 0000000..5458f3d Binary files /dev/null and b/Phillip_Tarrant_Resume_2026.docx differ diff --git a/README.md b/README.md deleted file mode 100644 index de6c0f7..0000000 --- a/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Resume - -Personal resume repository using the [JSON Resume](https://jsonresume.org) standard. - -## Quick Start - -Generate HTML resume with Docker: - -```bash -docker build -t resume . -docker run resume > resume.html -``` - -## Structure - -``` -resume.json # JSON Resume data file -Dockerfile # Builds HTML using jsonresume-theme-even -sources/ # Source documents and work history details -``` - -## JSON Resume - -The `resume.json` file follows the [JSON Resume schema](https://jsonresume.org/schema). Edit this file to update resume content, then rebuild the Docker image to generate updated HTML. - -## Themes - -To use a different theme, modify the Dockerfile's `npx jsonresume-theme-even` line to use another theme package (e.g., `jsonresume-theme-elegant`, `jsonresume-theme-stackoverflow`). diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index fd99447..0000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,5 +0,0 @@ -services: - resume: - image: git.sneakygeek.net/ptarrant/resume:latest - ports: - - "8080:80" diff --git a/generate_resume.js b/generate_resume.js new file mode 100644 index 0000000..4b392bd --- /dev/null +++ b/generate_resume.js @@ -0,0 +1,382 @@ +const fs = require('fs'); +const { + Document, Packer, Paragraph, TextRun, AlignmentType, + HeadingLevel, LevelFormat, ExternalHyperlink, BorderStyle +} = require('docx'); + +// ============================================ +// CONFIGURATION - Modify these paths as needed +// ============================================ +const INPUT_FILE = './resume.json'; +const OUTPUT_FILE = `./Phillip_Tarrant_Resume_${new Date().getFullYear()}.docx`; + +// Load resume data +const resumeData = JSON.parse(fs.readFileSync(INPUT_FILE, 'utf8')); + +// ============================================ +// HELPER FUNCTIONS +// ============================================ + +// Create a bullet point paragraph +function createBulletParagraph(text, reference) { + return new Paragraph({ + numbering: { reference: reference, level: 0 }, + spacing: { after: 60 }, + children: [new TextRun({ text: text, size: 22, font: "Arial" })] + }); +} + +// Format date from YYYY-MM to "Mon YYYY" +function formatDate(dateStr) { + if (!dateStr) return ''; + const date = new Date(dateStr + '-01'); + return date.toLocaleDateString('en-US', { month: 'short', year: 'numeric' }); +} + +// ============================================ +// BUILD DOCUMENT CONTENT +// ============================================ +const children = []; + +// --- HEADER SECTION --- + +// Name - centered, bold, larger +children.push(new Paragraph({ + alignment: AlignmentType.CENTER, + spacing: { after: 80 }, + children: [new TextRun({ + text: resumeData.basics.name, + bold: true, + size: 32, // 16pt + font: "Arial" + })] +})); + +// Title/Label - centered +children.push(new Paragraph({ + alignment: AlignmentType.CENTER, + spacing: { after: 80 }, + children: [new TextRun({ + text: resumeData.basics.label, + size: 24, // 12pt + font: "Arial" + })] +})); + +// Contact line 1: email β€’ phone +children.push(new Paragraph({ + alignment: AlignmentType.CENTER, + spacing: { after: 40 }, + children: [new TextRun({ + text: `${resumeData.basics.email} β€’ ${resumeData.basics.phone}`, + size: 22, // 11pt + font: "Arial" + })] +})); + +// Contact line 2: LinkedIn β€’ Location +const location = `${resumeData.basics.location.city}, ${resumeData.basics.location.region}`; +children.push(new Paragraph({ + alignment: AlignmentType.CENTER, + spacing: { after: 200 }, + children: [ + new ExternalHyperlink({ + link: resumeData.basics.url, + children: [new TextRun({ + text: resumeData.basics.url.replace('https://', ''), + style: "Hyperlink", + size: 22, + font: "Arial" + })] + }), + new TextRun({ + text: ` β€’ ${location}`, + size: 22, + font: "Arial" + }) + ] +})); + +// --- SUMMARY SECTION --- +children.push(new Paragraph({ + spacing: { after: 240 }, + children: [new TextRun({ + text: resumeData.basics.summary, + size: 22, + font: "Arial" + })] +})); + +// --- CAREER EXPERIENCE SECTION --- +children.push(new Paragraph({ + spacing: { before: 120, after: 200 }, + children: [new TextRun({ + text: "Career Experience", + bold: true, + size: 26, // 13pt + font: "Arial" + })] +})); + +// Work experience entries +resumeData.work.forEach((job, index) => { + const startDate = formatDate(job.startDate); + const endDate = job.endDate ? formatDate(job.endDate) : 'Present'; + const dateRange = `${startDate} – ${endDate}`; + + const companyLine = job.location ? `${job.name}, ${job.location}` : job.name; + + // Job title and company + children.push(new Paragraph({ + spacing: { before: 160, after: 60 }, + children: [ + new TextRun({ + text: job.position, + bold: true, + size: 22, + font: "Arial" + }), + new TextRun({ + text: `\n${companyLine}`, + size: 22, + font: "Arial" + }), + new TextRun({ + text: ` ${dateRange}`, + size: 22, + font: "Arial", + italics: true + }) + ] + })); + + // Job summary + if (job.summary) { + children.push(new Paragraph({ + spacing: { after: 100 }, + children: [new TextRun({ + text: job.summary, + size: 22, + font: "Arial" + })] + })); + } + + // Highlights as bullet points + if (job.highlights && job.highlights.length > 0) { + job.highlights.forEach(highlight => { + children.push(createBulletParagraph(highlight, "bullets")); + }); + } + + // Spacing after each job + children.push(new Paragraph({ spacing: { after: 120 }, children: [] })); +}); + +// --- EDUCATION, CERTIFICATIONS, AND AWARDS SECTION --- +children.push(new Paragraph({ + spacing: { before: 200, after: 160 }, + children: [new TextRun({ + text: "Education, Certifications, and Awards", + bold: true, + size: 26, + font: "Arial" + })] +})); + +// Certificates +if (resumeData.certificates) { + resumeData.certificates.forEach(cert => { + const year = cert.date ? new Date(cert.date).getFullYear() : ''; + children.push(new Paragraph({ + spacing: { after: 60 }, + children: [ + new TextRun({ + text: cert.name, + bold: true, + size: 22, + font: "Arial" + }), + new TextRun({ + text: `, ${cert.issuer}`, + size: 22, + font: "Arial" + }), + new TextRun({ + text: year ? `, ${year}` : '', + size: 22, + font: "Arial" + }) + ] + })); + }); +} + +// Awards +if (resumeData.awards) { + resumeData.awards.forEach(award => { + const year = award.date ? new Date(award.date).getFullYear() : ''; + children.push(new Paragraph({ + spacing: { after: 60 }, + children: [ + new TextRun({ + text: award.title, + bold: true, + size: 22, + font: "Arial" + }), + new TextRun({ + text: `, ${award.awarder}`, + size: 22, + font: "Arial" + }), + new TextRun({ + text: year ? `, ${year}` : '', + size: 22, + font: "Arial" + }) + ] + })); + if (award.summary) { + children.push(new Paragraph({ + spacing: { after: 60 }, + indent: { left: 360 }, + children: [new TextRun({ + text: award.summary, + size: 22, + font: "Arial", + italics: true + })] + })); + } + }); +} + +// Education +if (resumeData.education) { + resumeData.education.forEach(edu => { + const dateRange = edu.startDate && edu.endDate ? `${edu.startDate} – ${edu.endDate}` : ''; + children.push(new Paragraph({ + spacing: { after: 60 }, + children: [ + new TextRun({ + text: `${edu.studyType} in ${edu.area}`, + bold: true, + size: 22, + font: "Arial" + }), + new TextRun({ + text: `, ${edu.institution}`, + size: 22, + font: "Arial" + }), + new TextRun({ + text: dateRange ? `, ${dateRange}` : '', + size: 22, + font: "Arial" + }) + ] + })); + if (edu.score) { + children.push(new Paragraph({ + spacing: { after: 60 }, + indent: { left: 360 }, + children: [new TextRun({ + text: `GPA: ${edu.score}`, + size: 22, + font: "Arial", + italics: true + })] + })); + } + }); +} + +// --- TECHNICAL SKILLS SECTION --- +children.push(new Paragraph({ + spacing: { before: 200, after: 160 }, + children: [new TextRun({ + text: "Technical Skills", + bold: true, + size: 26, + font: "Arial" + })] +})); + +if (resumeData.skills) { + resumeData.skills.forEach(skillCategory => { + children.push(new Paragraph({ + spacing: { after: 60 }, + children: [ + new TextRun({ + text: `${skillCategory.name}: `, + bold: true, + size: 22, + font: "Arial" + }), + new TextRun({ + text: skillCategory.keywords.join(", "), + size: 22, + font: "Arial" + }) + ] + })); + }); +} + +// ============================================ +// CREATE AND SAVE DOCUMENT +// ============================================ +const doc = new Document({ + styles: { + default: { + document: { + run: { font: "Arial", size: 22 } + } + } + }, + numbering: { + config: [ + { + reference: "bullets", + levels: [{ + level: 0, + format: LevelFormat.BULLET, + text: "β€’", + alignment: AlignmentType.LEFT, + style: { + paragraph: { + indent: { left: 720, hanging: 360 } + } + } + }] + } + ] + }, + sections: [{ + properties: { + page: { + size: { + width: 12240, // 8.5 inches (1440 DXA = 1 inch) + height: 15840 // 11 inches + }, + margin: { + top: 720, // 0.5 inch + right: 1080, // 0.75 inch + bottom: 720, // 0.5 inch + left: 1080 // 0.75 inch + } + } + }, + children: children + }] +}); + +// Save the document +Packer.toBuffer(doc).then(buffer => { + fs.writeFileSync(OUTPUT_FILE, buffer); + console.log(`Resume created successfully: ${OUTPUT_FILE}`); +}).catch(err => { + console.error('Error creating document:', err); + process.exit(1); +}); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..354ddcf --- /dev/null +++ b/package-lock.json @@ -0,0 +1,204 @@ +{ + "name": "resume", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "docx": "^9.5.1" + } + }, + "node_modules/@types/node": { + "version": "24.10.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.9.tgz", + "integrity": "sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/docx": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/docx/-/docx-9.5.1.tgz", + "integrity": "sha512-ABDI7JEirFD2+bHhOBlsGZxaG1UgZb2M/QMKhLSDGgVNhxDesTCDcP+qoDnDGjZ4EOXTRfUjUgwHVuZ6VSTfWQ==", + "license": "MIT", + "dependencies": { + "@types/node": "^24.0.1", + "hash.js": "^1.1.7", + "jszip": "^3.10.1", + "nanoid": "^5.1.3", + "xml": "^1.0.1", + "xml-js": "^1.6.8" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/nanoid": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "license": "MIT" + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ee0ce1b --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "docx": "^9.5.1" + } +} diff --git a/resume.html b/resume.html deleted file mode 100644 index 3828e1a..0000000 --- a/resume.html +++ /dev/null @@ -1,615 +0,0 @@ - - - - - - Phillip Tarrant - - - - - - - - - -
- -

Phillip Tarrant

Cybersecurity Director | Automation Leader

-

Accomplished and analytical professional with 20+ years of experience in cybersecurity, server infrastructures, and data-center operations. Proven expertise in AI use in Cyber Operations, digital forensics, penetration testing, information system management, malware reversing, threat detection, and threat hunting. Proactive leader with a proven record of managing multiple large teams and leading the charge to complete project goals. Managed MSSP operations for 50+ large business clients encompassing over 150,000 assets and 1 million+ users.

- -
- -
-

Work

-
- -
-
-

Senior Information Security Consultant

-
- -
- Confidential -
-
– Present
-
Remote
- -
-
-
- -
- -

Contract consulting role providing cybersecurity leadership and technical expertise.

- -
    -
  • Develop, design, and review risk assessments and vulnerability scans of client networks and systems

  • Developing and implementing robust security controls and countermeasures to mitigate identified risks

  • Designing and deploying secure architectures for cloud, on-premises, and hybrid environments

  • Providing guidance on compliance with industry regulations (HIPAA, PCI-DSS, GDPR, NIST 800-53)

  • Collaborating with clients to develop and implement incident response and disaster recovery plans

  • Conducting regular security audits and assessments to ensure ongoing compliance and security posture

  • Short-term director role at American Technology Services (ATS) restructuring SOC flow and training

  • Managed Vulnerability Management Program for largest fintech client using Qualys

  • Currently managing SOC operations for US Defense Space market supplier across multiple Microsoft tenants

  • -
- -
- -
-
- -
-
-

Compuquip Cybersecurity

-
- - -
- -
-
-
- -
- -
-
Director of Automation
-
-
–
-
Doral, Florida
-
-
- -

Lead the Automation Team to deliver the automation needs of the business.

- -
    -
  • Spearheaded new automation processes and procedures including standup of new architecture and infrastructure

  • Drove and mentored the team in new Automation workflows using Python, AWS Lambda and SOAR technology

  • Developed custom AI processes to handle several key business needs using custom prompts and data

  • Built automation handling 3,500 tickets weekly with 47% closed without human involvement

  • Designed, programmed, and deployed AI tools, prompts, code, and logic for security automation

  • -
- -
- -
- -
-
SOC Director
-
-
–
-
Doral, Florida
-
-
- -

Directed Security Operations Center and Red Team operations for MSSP clients.

- -
    -
  • Grew SOC client base from 16 to 52 customers over tenure with expansion of services

  • Improved SOC profitability from 18% to 52% margin (80% in one quarter) contributing to 15% annual net income growth

  • Directly managed team of 17 reports

  • Oversaw Red team / Offensive Security Teams and Managed Remediation Service projects

  • Managed DFIR engagements, MDR services, Proactive Vulnerability Scanning, Patching, and Pentesting

  • Maintained situational awareness reports for advanced threats (APT and FO incidents)

  • Part of leadership team with COO/CEO/CFO involved in quarterly strategic planning

  • -
- -
- -
- -
-
SOC Technical Manager
-
-
–
-
Tampa, Florida
-
-
- -

Managed SOC Operations and led incident research and engineering teams.

- -
    -
  • Authored SOPs and training documentation for SOC team

  • Lead Incident Research and mentored SOC Engineers

  • Developed threat trend analysis reports and metrics

  • Managed SOC Operations and developed SOC playbooks/workflows

  • Generated end-of-month reports for managers and customers

  • Maintained situational awareness reports for advanced threats

  • -
- -
- -
-
- -
-
-

Sr. Cyber Security Architect

-
- -
- Travel Syndication Technology (TST) -
-
–
-
Alpharetta, Georgia
- -
-
-
- -
- -

Responsible for security architecture, training programs, and compliance across the organization.

- -
    -
  • Formulated and oversaw phishing and developer security training programs

  • Developed and maintained cloud security protections and security posture

  • Created custom tools to automate attacks against infrastructure and design detections

  • Saved $10,000+ through effective vendor/supplier negotiations

  • Steered organization through PCI and NIST 800 series audits

  • Devised, created, and upgraded cybersecurity related policies and procedures

  • Designed and implemented automated security verification and attack programs

  • -
- -
- -
-
- -
-
-

Intercontinental Exchange

-
- - -
- -
-
-
- -
- -
-
Senior Cyber Security Engineer
-
-
–
-
Marietta, Georgia
-
-
- -

Part of the Architecture and Automation Team focused on security data flow and automation.

- -
    -
  • Designed and maintained security data flow from network endpoints through aggregation, parsing, and storage

  • Created methods, processes, and algorithms to extract knowledge from structured/unstructured data

  • Designed custom tools to automate SOC triage and response activities

  • Incorporated security into infrastructure CI/CD pipelines including cloud technologies

  • Formulated vulnerability and threat hunting dashboard for tracking and mitigation

  • -
- -
- -
- -
-
Cyber Security Engineer
-
-
–
-
Marietta, Georgia
-
-
- -

Part of the Incident Response / Digital Forensics Team as lead investigator.

- -
    -
  • Served as lead investigator on critical incidents with thorough investigations

  • Created extensive documentation on processes and procedures for the entire IR team

  • Served as leader in Malware Analysis in isolated sandboxed environments

  • Developed skills of junior agents including custom malware writing through training

  • Managed multi-server compromise investigations coordinating across three teams and time zones

  • -
- -
- -
-
- -
-
-

The National Wild Turkey Federation

-
- - -
- -
-
-
- -
- -
-
Technical Services Manager
-
-
–
-
Edgefield, South Carolina
-
-
- -

Managed IT team supporting 300+ staff members with focus on infrastructure and security.

- -
    -
  • Managed team of technicians and developers facilitating 300+ staff members

  • Oversaw 8 direct reports with performance management responsibilities

  • Conducted vendor/supplier negotiations to minimize costs

  • Managed security of entire web presence including network and programming code

  • Efficiently managed doubling of server space and usage

  • Migrated 3rd party tools to in-house solutions saving $50,000+ yearly

  • -
- -
- -
- -
-
Network / Server Administrator
-
-
–
-
Edgefield, South Carolina
-
-
- -

Managed Windows and Linux server environments with focus on infrastructure and automation.

- -
    -
  • Designed, managed, and monitored infrastructure systems (LANs, WANs, Security)

  • Developed and maintained process automation through scripting and programming

  • Administered servers, computers, printers, routers, switches, firewalls, and phones

  • Spearheaded performance tuning, hardware upgrades, and resource optimization

  • -
- -
- -
-
- -
-
-

System Administrator

-
- -
- Morgan Thermal Ceramics -
-
–
-
Augusta, Georgia
- -
-
-
- -
- -

Contract role managing network support and infrastructure upgrades.

- -
    -
  • Managed network support and upgrades including fiber optic link installation

  • Served key role implementing 35 managed switches with several VLANs

  • Resolved major data outage in main switch room without assistance

  • Completed three-month contract in one month

  • Developed automated cloning system to minimize cost and speed deployment

  • -
- -
- -
-
- -
-
-

IT Coordinator / Network Administrator / System Administrator

-
- -
- Briarwood Academy -
-
–
-
Warrenton, Georgia
- -
-
-
- -
- -

Oversaw IT department budgets and deployment strategies for the school.

- -
    -
  • Oversaw budgets and deployment strategies for entire IT department

  • Administered servers, desktop computers, printers, routers, switches, firewalls

  • Shifted all servers from physical to virtual to save space and minimize costs

  • Rolled out wireless for entire campus comprising several acres

  • Negotiated and delivered fiber link for the school free of charge

  • Managed Linux NAS storage solutions for 200+ workstations

  • -
- -
- -
-
- -
-
-

Computer Service Technician

-
- -
- Pronet -
-
–
-
Georgia
- -
-
-
- -
- -

IT expert for hire in block time situations and emergency disaster recovery.

- -
- -
-
- -
-
-

Tier 3 Support

-
- -
- Sitel Group -
-
–
- - -
-
-
- -
- -

Assisted Tier 2 technicians with customer service issues and tested new developing technologies.

- -
- -
-
- -
-
- -
-

Education

-
- -
-
-

Virginia College

-
-
Associate in Network Administration
-
–
-
-
- -
- -
-
- - -
-

Awards

-
- -
-
-

Lethal Forensicator Coin Winner

-
-
Awarded by SANS/GIAC
-
-
-

SANS Challenge Coin for excellence in digital forensics

-
- -
-
- -
-

Certificates

-
- -
-
-

GWAPT - Web Application Penetration Tester

-
-
Issued by GIAC
-
-
-
- -
-
-

GCFA - Forensic Analyst

-
-
Issued by GIAC
-
-
-
- -
-
-

GCIH - Incident Handler

-
-
Issued by GIAC
-
-
-
- -
-
-

A+ Certification

-
-
Issued by CompTIA
-
-
-
- -
-
- - -
-

Skills

-
- -
-

Security Operations & SIEM

- -
    -
  • Splunk
  • ELK Stack
  • Microsoft Sentinel
  • Microsoft Defender
  • Sentinel One
  • Rapid7 IDR
  • Stellar Cyber
  • -
- -
- -
-

SOAR Platforms

- -
    -
  • Swimlane
  • D3 SOAR
  • Torq
  • Playbook Development
  • Workflow Automation
  • -
- -
- -
-

EDR & Threat Detection

- -
    -
  • Darktrace
  • Tanium
  • Vectra
  • FireEye
  • Sentinel One
  • Detection Engineering
  • -
- -
- -
-

DFIR & Forensics

- -
    -
  • Volatility
  • Malware Analysis
  • Reverse Engineering
  • Incident Response
  • Evidence Collection
  • Multi-host Investigation
  • -
- -
- -
-

Penetration Testing & Red Team

- -
    -
  • Metasploit
  • Web Application Security
  • Attack Simulation
  • Red Team Oversight
  • Purple Team Testing
  • Vulnerability Assessment
  • -
- -
- -
-

Cloud Platforms & Security

- -
    -
  • AWS
  • Azure
  • Oracle Cloud
  • Lambda
  • EC2
  • Cloud Security Architecture
  • Hybrid Environments
  • -
- -
- -
-

AI/ML & Automation

- -
    -
  • AWS Bedrock
  • Large Language Models
  • RAG
  • Machine Learning
  • Python Automation
  • Custom Tool Development
  • -
- -
- -
-

Programming & Scripting

- -
    -
  • Python
  • PowerShell
  • Bash
  • SQL
  • YAML
  • -
- -
- -
-

Infrastructure & Systems

- -
    -
  • Windows Server
  • Linux/UNIX
  • Active Directory
  • VMware
  • Docker
  • Kubernetes
  • Network Architecture
  • -
- -
- -
-

Compliance & Frameworks

- -
    -
  • NIST 800-53
  • PCI-DSS
  • HIPAA
  • GDPR
  • CIS Benchmarks
  • Security Audits
  • -
- -
- -
-

Leadership & Management

- -
    -
  • Team Leadership (17+ reports)
  • MSSP Operations
  • Budget Management
  • Vendor Negotiations
  • Training Programs
  • Hiring & Mentorship
  • -
- -
- -
-
- -
-

Languages

-
-

English

Native speaker
-
-
- - - - \ No newline at end of file diff --git a/resume.json b/resume.json index 6fd0b33..0d2fa3e 100644 --- a/resume.json +++ b/resume.json @@ -28,63 +28,24 @@ "startDate": "2025-01", "summary": "Contract consulting role providing cybersecurity leadership and technical expertise.", "highlights": [ - "Develop, design, and review risk assessments and vulnerability scans of client networks and systems", - "Developing and implementing robust security controls and countermeasures to mitigate identified risks", - "Designing and deploying secure architectures for cloud, on-premises, and hybrid environments", - "Providing guidance on compliance with industry regulations (HIPAA, PCI-DSS, GDPR, NIST 800-53)", - "Collaborating with clients to develop and implement incident response and disaster recovery plans", - "Conducting regular security audits and assessments to ensure ongoing compliance and security posture", - "Director role at MSSP restructuring SOC flow and training SOC Staff", - "Managed Vulnerability Management Program for one of the largest fintech client in the US using Qualys", - "Currently managing SOC operations for US Defense Space market supplier across multiple Microsoft tenants" + "Managing SOC operations for US Defense Space market supplier across multiple Microsoft tenants", + "Managed Vulnerability Management Program for one of the largest fintech clients in the US using Qualys", + "Director role at MSSP restructuring SOC flow and training SOC staff", + "Designing secure architectures and providing compliance guidance (HIPAA, PCI-DSS, GDPR, NIST 800-53)" ] }, { "name": "Compuquip Cybersecurity", - "position": "Director of Automation", - "location": "Doral, Florida", - "startDate": "2024-06", - "endDate": "2024-12", - "summary": "Lead the Automation Team to deliver the automation needs of the business.", - "highlights": [ - "Spearheaded new automation processes and procedures including standup of new architecture and infrastructure", - "Drove and mentored the team in new Automation workflows using Python, AWS Lambda and SOAR technology", - "Developed custom AI processes to handle several key business needs using custom prompts and data", - "Built automation handling 3,500 tickets weekly with 47% closed without human involvement", - "Designed, programmed, and deployed AI tools, prompts, code, and logic for security automation" - ] - }, - { - "name": "Compuquip Cybersecurity", - "position": "SOC Director", - "location": "Doral, Florida", - "startDate": "2023-03", - "endDate": "2024-06", - "summary": "Directed Security Operations Center and Red Team operations for MSSP clients.", - "highlights": [ - "Grew SOC client base from 16 to 52 customers over tenure with expansion of services", - "Improved SOC profitability from 18% to 52% margin (80% in one quarter) contributing to 15% annual net income growth", - "Directly managed team of 17 reports", - "Oversaw Red team / Offensive Security Teams and Managed Remediation Service projects", - "Managed DFIR engagements, MDR services, Proactive Vulnerability Scanning, Patching, and Pentesting", - "Maintained situational awareness reports for advanced threats (APT and FO incidents)", - "Part of leadership team with COO/CEO/CFO involved in quarterly strategic planning" - ] - }, - { - "name": "Compuquip Cybersecurity", - "position": "SOC Technical Manager", - "location": "Tampa, Florida", + "position": "SOC Technical Manager β†’ SOC Director β†’ Director of Automation", + "location": "Tampa/Doral, Florida", "startDate": "2021-01", - "endDate": "2023-03", - "summary": "Managed SOC Operations and led incident research and engineering teams.", + "endDate": "2024-12", + "summary": "Progressive leadership roles managing SOC operations, Red Team, and security automation for MSSP clients.", "highlights": [ - "Authored SOPs and training documentation for SOC team", - "Lead Incident Research and mentored SOC Engineers", - "Developed threat trend analysis reports and metrics", - "Managed SOC Operations and developed SOC playbooks/workflows", - "Generated end-of-month reports for managers and customers", - "Maintained situational awareness reports for advanced threats" + "Grew SOC client base from 16 to 52 customers; improved profitability from 18% to 52% margin", + "Built automation handling 3,500 tickets weekly with 47% closed without human involvement", + "Managed team of 17 direct reports across SOC, Red Team, and DFIR engagements", + "Developed AI-powered security automation using Python, AWS Lambda, and SOAR platforms" ] }, { @@ -95,43 +56,22 @@ "endDate": "2021-01", "summary": "Responsible for security architecture, training programs, and compliance across the organization.", "highlights": [ - "Formulated and oversaw phishing and developer security training programs", - "Developed and maintained cloud security protections and security posture", - "Created custom tools to automate attacks against infrastructure and design detections", - "Saved $10,000+ through effective vendor/supplier negotiations", "Steered organization through PCI and NIST 800 series audits", - "Devised, created, and upgraded cybersecurity related policies and procedures", - "Designed and implemented automated security verification and attack programs" + "Created custom tools to automate attacks against infrastructure and design detections", + "Saved $10,000+ through effective vendor/supplier negotiations" ] }, { "name": "Intercontinental Exchange", - "position": "Senior Cyber Security Engineer", - "location": "Marietta, Georgia", - "startDate": "2020-03", - "endDate": "2020-04", - "summary": "Part of the Architecture and Automation Team focused on security data flow and automation.", - "highlights": [ - "Designed and maintained security data flow from network endpoints through aggregation, parsing, and storage", - "Created methods, processes, and algorithms to extract knowledge from structured/unstructured data", - "Designed custom tools to automate SOC triage and response activities", - "Incorporated security into infrastructure CI/CD pipelines including cloud technologies", - "Formulated vulnerability and threat hunting dashboard for tracking and mitigation" - ] - }, - { - "name": "Intercontinental Exchange", - "position": "Cyber Security Engineer", + "position": "Cyber Security Engineer β†’ Senior Cyber Security Engineer", "location": "Marietta, Georgia", "startDate": "2018-08", - "endDate": "2020-03", - "summary": "Part of the Incident Response / Digital Forensics Team as lead investigator.", + "endDate": "2020-04", + "summary": "Incident Response/Digital Forensics lead, promoted to Architecture and Automation Team.", "highlights": [ - "Served as lead investigator on critical incidents with thorough investigations", - "Created extensive documentation on processes and procedures for the entire IR team", - "Served as leader in Malware Analysis in isolated sandboxed environments", - "Developed skills of junior agents including custom malware writing through training", - "Managed multi-server compromise investigations coordinating across three teams and time zones" + "Lead investigator on critical incidents; managed multi-server compromise investigations across three teams", + "Led Malware Analysis in sandboxed environments; mentored junior analysts", + "Designed security data flow pipelines and automated SOC triage tools" ] }, { @@ -142,73 +82,17 @@ "endDate": "2018-08", "summary": "Managed IT team supporting 300+ staff members with focus on infrastructure and security.", "highlights": [ - "Managed team of technicians and developers facilitating 300+ staff members", - "Oversaw 8 direct reports with performance management responsibilities", - "Conducted vendor/supplier negotiations to minimize costs", - "Managed security of entire web presence including network and programming code", - "Efficiently managed doubling of server space and usage", - "Migrated 3rd party tools to in-house solutions saving $50,000+ yearly" + "Managed team of 8 technicians and developers supporting 300+ staff members", + "Migrated 3rd party tools to in-house solutions saving $50,000+ yearly", + "Managed security of entire web presence including network and application code" ] }, { - "name": "The National Wild Turkey Federation", - "position": "Network / Server Administrator", - "location": "Edgefield, South Carolina", - "startDate": "2015-01", - "endDate": "2015-10", - "summary": "Managed Windows and Linux server environments with focus on infrastructure and automation.", - "highlights": [ - "Designed, managed, and monitored infrastructure systems (LANs, WANs, Security)", - "Developed and maintained process automation through scripting and programming", - "Administered servers, computers, printers, routers, switches, firewalls, and phones", - "Spearheaded performance tuning, hardware upgrades, and resource optimization" - ] - }, - { - "name": "Morgan Thermal Ceramics", - "position": "System Administrator", - "location": "Augusta, Georgia", - "startDate": "2014-10", - "endDate": "2014-12", - "summary": "Contract role managing network support and infrastructure upgrades.", - "highlights": [ - "Managed network support and upgrades including fiber optic link installation", - "Served key role implementing 35 managed switches with several VLANs", - "Resolved major data outage in main switch room without assistance", - "Completed three-month contract in one month", - "Developed automated cloning system to minimize cost and speed deployment" - ] - }, - { - "name": "Briarwood Academy", - "position": "IT Coordinator / Network Administrator / System Administrator", - "location": "Warrenton, Georgia", - "startDate": "2006-08", - "endDate": "2014-04", - "summary": "Oversaw IT department budgets and deployment strategies for the school.", - "highlights": [ - "Oversaw budgets and deployment strategies for entire IT department", - "Administered servers, desktop computers, printers, routers, switches, firewalls", - "Shifted all servers from physical to virtual to save space and minimize costs", - "Rolled out wireless for entire campus comprising several acres", - "Negotiated and delivered fiber link for the school free of charge", - "Managed Linux NAS storage solutions for 200+ workstations" - ] - }, - { - "name": "Pronet", - "position": "Computer Service Technician", - "location": "Georgia", - "startDate": "2005-05", - "endDate": "2006-08", - "summary": "IT expert for hire in block time situations and emergency disaster recovery." - }, - { - "name": "Sitel Group", - "position": "Tier 3 Support", - "startDate": "1999-05", - "endDate": "2001-05", - "summary": "Assisted Tier 2 technicians with customer service issues and tested new developing technologies." + "name": "Earlier Experience", + "position": "IT & Systems Administration Roles", + "startDate": "1999-01", + "endDate": "2015-01", + "summary": "Progressive IT roles including Network/Server Administrator at NWTF, System Administrator at Morgan Thermal Ceramics, IT Coordinator at Briarwood Academy, and Technical Support at Sitel Group." } ], "education": [ @@ -237,11 +121,6 @@ "name": "GCIH - Incident Handler", "issuer": "GIAC", "date": "2018-01-01" - }, - { - "name": "A+ Certification", - "issuer": "CompTIA", - "date": "2001-01-01" } ], "awards": [ @@ -394,7 +273,7 @@ } ], "meta": { - "theme": "executive-slate", + "theme": "elegant", "version": "v1.0.0", "lastModified": "2025-12-08" }