updating generation code to straight JS
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"WebFetch(domain:jsonresume.org)"
|
||||
],
|
||||
"deny": [],
|
||||
"ask": []
|
||||
}
|
||||
}
|
||||
@@ -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 }}
|
||||
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
node_modules/
|
||||
*.docx
|
||||
package-lock.json
|
||||
.claude/
|
||||
71
2025/Head-of-SOC/Phillip_Tarrant_Resume.pdf
Normal file
71
2025/Head-of-SOC/Phillip_Tarrant_Resume.pdf
Normal file
@@ -0,0 +1,71 @@
|
||||
%PDF-1.7
|
||||
%<25><><EFBFBD><EFBFBD>
|
||||
1 0 obj
|
||||
<</Pages 2 0 R /Type/Catalog>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<</Count 3/Kids[ 4 0 R 10 0 R 12 0 R ]/Type/Pages>>
|
||||
endobj
|
||||
3 0 obj
|
||||
<</CreationDate(D:20251208124202)/Creator(PDFium)/Producer(PDFium)>>
|
||||
endobj
|
||||
4 0 obj
|
||||
<</Contents 5 0 R /MediaBox[ 0 0 612 792]/Parent 2 0 R /Resources<</Font 6 0 R /ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Rotate 0/Trans<<>>/Type/Page>>
|
||||
endobj
|
||||
5 0 obj
|
||||
<</Filter[/ASCII85Decode/FlateDecode]/Length 1829>>stream
|
||||
GatU3gMYb8&:O:Sb_lM"Po,[YDLJNo.u42I<[9#/!Pb_X-+,J<bNpj`W9D9GG'Sp\0Jo4bJ4/gBk00>UZgtoNO(Z5&*8k*.Dr5p"q%+n2"\o'V)OB@$f*ecg3M!usmc.arF7#>g06!E4SqMH24N.PDAkqlEF+tK)SZs-lF;VpGp;:XY?>Uijlun<An-t%X+T)CtcW6amO8+!<H9-5NnX&:"OjiW\?TEhe>RSe;FgVfZ1*u\q_HXPEVGk">R_"^[2rN#7iFFtf<MP6p;A--^:NOB.-PC\^^1R;*`[h$-AG1k"1\[4*\&Eo0)(UI7`aNt8TX)DeM/;NgZoaA[5rJX/A:>Kd^d=MnBHNOu)n:5*qrRLKh(&=1m^C<p,$`s[mbrJ;)_Q@(%rCt:mFanfhpq9ng_HtU0DdjQc_f!`_rJ!`WlBPLnMKH'`a2<4C!%VB4GEreWM/7SVbnn25/CMjE<-_X5t4F>,oi=:JFEIE-VC09Oamlscu6FY;'&S]'S/T.-d#Y<P"%dXAj)UD.M4FK4GEai2;gsq9$CV]!OJ1m))7:SZ(h/Q8\oJj[;oXsOc7;'T4jd2XX"Nni_;ZG(aCsqAi@I;M*[,Vka=0*W-i&f9I'r@bYpA!V'Y6&5#?,4Hn@pEn-9^9<LQ$\9HA*7$r0*F)5lBJ5_nls1=E"p%d^,Dco#F$+?[GI`;%e4AUiG>CS?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&;4b<qbc[KN`fM.NP]:uL4)Vrg-N0rE#'o`!!Wr@s=.[ZW*[]RSDrp=SbQg@$V!YIenY(bU)+;G862Qjq7lb:Q)!(m^X\7##qHHHuq/TrBB73]^HNe3s6`jC=@0UTFQ[,\ASD1!S5>Cc+)&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.$\M<Dh/;13sJ'bD[\:>4OS),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&r<dV($0>86.Xds`7IOu/s[CJ-$<G#f!kgrRZ2!WR)hjse[VS"E^VU+IL/e^ZCZjC%`-71=>_:Z`=O(Qca2&?Wm+1"mg-OQ`;OH^Wsen<A)m'`QT<kc^9Da*Jd&T@NgIC'sQcun-ZT46Tn@oHh.M.T;?(u+mG4\R<.\RKoqe\f@@8._jXFkAMU+>Pu3e'X;2:te`^:\nHUFRdBmeg,a$ae6K4>(]j\980X$om-]D/$O/8g93$`ACRS/hIumQFN%KRcVl=tM/uRF]l#^Z:l<LN1,i<7IDSfhD-H<AZtXtYN#E;.DGa#u,rmTQf5p<)3`X/:ru=8*.N;p&OB+>>%'dLq<qe&lm_7^FRiYrbO-mf3@4'2?J@M>.;:WKU,.&197t!Fc28(-q22gGQ?gamS('~>
|
||||
endstream
|
||||
endobj
|
||||
6 0 obj
|
||||
<</F1 7 0 R /F2 8 0 R /F3 9 0 R >>
|
||||
endobj
|
||||
7 0 obj
|
||||
<</BaseFont/Helvetica/Encoding/WinAnsiEncoding/Name/F1/Subtype/Type1/Type/Font>>
|
||||
endobj
|
||||
8 0 obj
|
||||
<</BaseFont/Helvetica-Bold/Encoding/WinAnsiEncoding/Name/F2/Subtype/Type1/Type/Font>>
|
||||
endobj
|
||||
9 0 obj
|
||||
<</BaseFont/Helvetica-BoldOblique/Encoding/WinAnsiEncoding/Name/F3/Subtype/Type1/Type/Font>>
|
||||
endobj
|
||||
10 0 obj
|
||||
<</Contents 11 0 R /MediaBox[ 0 0 612 792]/Parent 2 0 R /Resources<</Font 6 0 R /ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Rotate 0/Trans<<>>/Type/Page>>
|
||||
endobj
|
||||
11 0 obj
|
||||
<</Filter[/ASCII85Decode/FlateDecode]/Length 1739>>stream
|
||||
Gat=,?#uJp'Re<2\1aCEG@D@BpuAVRdN-XlD79.J?5/Je)^,ebfM-ko*W^GQ0#:\OB<Ws5EmMG^S9pfg!kcD4R[-@6f(@pB87=pP%>F=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['<QZT5a@F!"\tj:;:/caW9>Qn"`)<A4V6ZC^<0G^r)^fUGd]O/Vc@8eeAO>L#F7oK`Y!+LY`<oU7Zdag`hr>*5^M:=4MNllc+RF?5de(>8icb;#_/>r!<GFM"*En-*&WYZTl"e^VT>,0X^S@o=5cQTh1=aN^.5L%=<Ym_C;NKCJlV*j1e5YN=i]Wt+SMgutWHY-g-VEp83B<$WS;a@/Ga%rt>sAM](Ea0"UC,N"MOH;\2RQ/*1ea(mX<aK;=Z=ku:+k`lNi]MB<m^?!B;16S\B9Nbgk.cJ6je$QNn#nQc,]E>Ce<EbT7ZGLBP?)%Tpq+&jbOXn]cb#AE+M<s3XAJ*"UtgohUYT`>??!;18UH9<Qq;YIjtasH_TSUPt+*ZI<811K,T_Ua*2<@<i;l#rrEg?73fp`>bWR1L&cXp+)fbAKr\?X:pskg.h8i@)o4JA/`L9bN8mD,Op::OlZROV:_`UA:D+X%Sfppd"N^nKST"a<Nbg9e-coMGC)/Kq&FF);\g9n*3M&H@F>a9S%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<s@PU1$U9E8^&Q5Tn/!*Y1TLV!DRknTaigo"E"/+m_gn4qL#D2^k$=g(/:!K$%;iBO[YF3L]Z0KUm#4YE"8[%>*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<J$h'PV@p7&bf$)?qu5u$8^4PAkrTA8i!7jfou!H++H*_UB=NS,bSEq%[GZ;[[G-*o05B#Im4Ws=Pg.GI4J<bW)6]Nb@i"b8^B$Cm(Ob)11]~>
|
||||
endstream
|
||||
endobj
|
||||
12 0 obj
|
||||
<</Contents 13 0 R /MediaBox[ 0 0 612 792]/Parent 2 0 R /Resources<</Font 6 0 R /ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Rotate 0/Trans<<>>/Type/Page>>
|
||||
endobj
|
||||
13 0 obj
|
||||
<</Filter[/ASCII85Decode/FlateDecode]/Length 1014>>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#nl8<pe087<hsC9FA/R^B/No1-N*Z9l&_$p6bL5tTu<hVHQk']5U/dkQ9JlSksl$R\51p1HP]?2Xq9lJ(W]K:_k`:K+dC&qjMbZ(b].-u!(_1c0&d`Q;!q$X>P>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<q7iD;3o^c`(F1kg2\fp_"fE`Xe,A1B+L0A'ZU*[\8M^iYsqI[Y@?t<0l2s9H38o(8PTBZ%;;Q-nP3?>>,,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<b`.Q7&Hou%=34.P)2nI_\1/1VMYn0Y[1\T3M9*Z[SVX`LT\X_b[\@g()$7EnHc66Psl7EP%TZ!C1"W_HY7gYAm0F2),ll?4!35*BRi5KT;cJ97#MA,f<L(8jB]hb"IcKo<?42OEX#<#i7Y#2s,Nh6c,4nOnc]\_[Bl'J-3jcCRFI5s:AaoDZ2!V-bC7K~>
|
||||
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[<F9B98603F188DAF209E01A59031F93DD><F9B98603F188DAF209E01A59031F93DD>]>>
|
||||
startxref
|
||||
5960
|
||||
%%EOF
|
||||
162
2025/Head-of-SOC/Resume.md
Normal file
162
2025/Head-of-SOC/Resume.md
Normal file
@@ -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
|
||||
77
CLAUDE.md
77
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
|
||||
|
||||
18
Dockerfile
18
Dockerfile
@@ -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
|
||||
BIN
Phillip_Tarrant_Resume.docx
Normal file
BIN
Phillip_Tarrant_Resume.docx
Normal file
Binary file not shown.
BIN
Phillip_Tarrant_Resume_2026.docx
Normal file
BIN
Phillip_Tarrant_Resume_2026.docx
Normal file
Binary file not shown.
28
README.md
28
README.md
@@ -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`).
|
||||
@@ -1,5 +0,0 @@
|
||||
services:
|
||||
resume:
|
||||
image: git.sneakygeek.net/ptarrant/resume:latest
|
||||
ports:
|
||||
- "8080:80"
|
||||
382
generate_resume.js
Normal file
382
generate_resume.js
Normal file
@@ -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);
|
||||
});
|
||||
204
package-lock.json
generated
Normal file
204
package-lock.json
generated
Normal file
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
5
package.json
Normal file
5
package.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"docx": "^9.5.1"
|
||||
}
|
||||
}
|
||||
615
resume.html
615
resume.html
@@ -1,615 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en" style="">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
|
||||
<title>Phillip Tarrant</title>
|
||||
<meta name="description" content="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." />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700&display=swap" />
|
||||
<style>
|
||||
:root{color-scheme:light dark;--color-background-light: #ffffff;--color-dimmed-light: #f3f4f5;--color-primary-light: #191e23;--color-secondary-light: #6c7781;--color-accent-light: #0073aa;--color-background-dark: #191e23;--color-dimmed-dark: #23282d;--color-primary-dark: #fbfbfc;--color-secondary-dark: #ccd0d4;--color-accent-dark: #00a0d2;--color-background: var(--color-background-light);--color-dimmed: var(--color-dimmed-light);--color-primary: var(--color-primary-light);--color-secondary: var(--color-secondary-light);--color-accent: var(--color-accent-light);--scale-ratio: 1.25;--scale0: 1rem;--scale1: calc(var(--scale0) * var(--scale-ratio));--scale2: calc(var(--scale1) * var(--scale-ratio));--scale3: calc(var(--scale2) * var(--scale-ratio));--scale4: calc(var(--scale3) * var(--scale-ratio));--scale5: calc(var(--scale4) * var(--scale-ratio))}@media (prefers-color-scheme: dark){:root{--color-background: var(--color-background-dark);--color-dimmed: var(--color-dimmed-dark);--color-primary: var(--color-primary-dark);--color-secondary: var(--color-secondary-dark);--color-accent: var(--color-accent-dark)}}*{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{background:var(--color-background);color:var(--color-primary);display:grid;font:1em/1.5 Lato,sans-serif;gap:2em;grid-template-columns:[full-start] 1fr [main-start side-start] minmax(min-content,12em) [side-end content-start] minmax(min-content,36em) [main-end content-end] 1fr [full-end];grid-template-rows:auto [content] 0;margin-bottom:4em}body:before{content:"";grid-column:full;grid-row:content}ol,ul{padding-left:1em}:not(.icon-list,.tag-list)>li+li{margin-top:.4em}li::marker,.network{color:var(--color-secondary)}a{color:var(--color-accent);text-decoration:none}a:focus,a:hover{text-decoration:underline}h1,h2,h3,h5{font-weight:400}h1,h2,h3{line-height:1.2}h1{font-size:var(--scale5)}h2{color:var(--color-secondary);font-size:var(--scale4)}h3{color:var(--color-secondary);font-size:var(--scale3);grid-column:side;margin-bottom:1rem}h4{font-size:var(--scale2)}h5{font-size:var(--scale1)}h6{font-size:var(--scale0)}blockquote{border-left:.2em solid var(--color-dimmed);padding-left:1em}cite{color:var(--color-secondary);font-style:inherit}cite:before{content:"— "}svg{margin-right:.2em;vertical-align:text-bottom}.masthead{background:var(--color-dimmed);display:inherit;gap:inherit;grid-column:full;grid-template-columns:inherit;padding:4em 0;text-align:center}.masthead>*,section{grid-column:main}.masthead>img{border:4px solid;border-radius:50%;margin:0 auto;max-width:12em}article>*+*,blockquote>*+*,.timeline>div>*+*{margin-top:.6em}.meta{color:var(--color-secondary)}.stack{display:grid;gap:1.5em}.icon-list{display:flex;flex-wrap:wrap;gap:.4em 1em;justify-content:center;list-style:none;padding:0}.grid-list{display:grid;gap:1em}.tag-list{display:flex;flex-wrap:wrap;gap:.4em;list-style:none;padding:0}.tag-list>li{background:var(--color-dimmed);border-radius:.2em;padding:.2em .6em}.timeline>div{position:relative}.timeline>div:not(:last-child){padding-bottom:1rem}.timeline>div:not(:last-child):before{content:"";position:absolute;top:1rem;left:-15px;width:2px;height:100%;background:var(--color-secondary)}.timeline>div:not(:only-child):after{content:"";position:absolute;top:.6rem;left:-20px;width:8px;height:8px;background:var(--color-secondary);border:2px solid var(--color-background);border-radius:50%}@media print,(min-width: 48em){h3{text-align:right;margin-bottom:inherit}.masthead{text-align:inherit}.masthead>*,section{grid-column:content}.masthead img{grid-column:side;grid-row:span 2;max-width:100%}section{display:contents}.icon-list{flex-direction:column}.grid-list{grid-template-columns:repeat(auto-fit,minmax(calc((100% - 1em)/2),1fr))}}time+time-duration:before{content:"· "}@media print{time-duration{display:none}}
|
||||
</style>
|
||||
<script type="module">
|
||||
const pluralize = (num, str) => `${num} ${num === 1 ? str : str.concat('s')}`
|
||||
|
||||
class TimeDuration extends HTMLElement {
|
||||
connectedCallback() {
|
||||
const dates = this.getAttribute('dates')
|
||||
if (!dates) return this.remove()
|
||||
|
||||
const duration = dates.split('|').reduce((acc, _date, i, dates) => {
|
||||
if (i % 2) return acc
|
||||
const [startDate, endDate] = dates.slice(i)
|
||||
return acc + (startDate ? +new Date(endDate || Date.now()) - +new Date(startDate) : 0)
|
||||
}, 0)
|
||||
|
||||
const diffDate = new Date(duration)
|
||||
const years = diffDate.getFullYear() - 1970
|
||||
const months = diffDate.getMonth()
|
||||
const days = diffDate.getDate() - 1
|
||||
|
||||
const segments = [
|
||||
years && pluralize(years, 'yr'),
|
||||
months && pluralize(months, 'mo'),
|
||||
days && !years && !months && pluralize(days, 'day'),
|
||||
].filter(Boolean)
|
||||
if (!segments.length) return
|
||||
|
||||
this.textContent = segments.join(' ')
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define('time-duration', TimeDuration)
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class="masthead">
|
||||
|
||||
<div><h1>Phillip Tarrant</h1> <h2>Cybersecurity Director | Automation Leader</h2></div>
|
||||
<article><p>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.</p></article>
|
||||
<ul class="icon-list">
|
||||
|
||||
<li>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-map-pin"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path><circle cx="12" cy="10" r="3"></circle></svg> Morrison, United States
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-mail"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>
|
||||
<a href="mailto:ptarrant@gmail.com">ptarrant@gmail.com</a>
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-phone"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"></path></svg>
|
||||
<a href="tel:(706)294-6733">(706) 294-6733</a>
|
||||
</li>
|
||||
|
||||
<li><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg> <a href="https://www.linkedin.com/in/phillip-tarrant-cyber">www.linkedin.com/in/phillip-tarrant-cyber</a></li>
|
||||
|
||||
<li>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-linkedin"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg> <a href="https://www.linkedin.com/in/phillip-tarrant-cyber">phillip-tarrant-cyber</a>
|
||||
<span class="network">(LinkedIn)</span>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</header>
|
||||
|
||||
<section id="work">
|
||||
<h3>Work</h3>
|
||||
<div class="stack">
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>Senior Information Security Consultant</h4>
|
||||
<div class="meta">
|
||||
|
||||
<div>
|
||||
<strong>Confidential</strong>
|
||||
</div>
|
||||
<div><time datetime="2025-01">Jan 2025</time> – Present <time-duration dates="2025-01|"></time-duration></div>
|
||||
<div>Remote</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<p>Contract consulting role providing cybersecurity leadership and technical expertise.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Develop, design, and review risk assessments and vulnerability scans of client networks and systems</p></li><li><p>Developing and implementing robust security controls and countermeasures to mitigate identified risks</p></li><li><p>Designing and deploying secure architectures for cloud, on-premises, and hybrid environments</p></li><li><p>Providing guidance on compliance with industry regulations (HIPAA, PCI-DSS, GDPR, NIST 800-53)</p></li><li><p>Collaborating with clients to develop and implement incident response and disaster recovery plans</p></li><li><p>Conducting regular security audits and assessments to ensure ongoing compliance and security posture</p></li><li><p>Short-term director role at American Technology Services (ATS) restructuring SOC flow and training</p></li><li><p>Managed Vulnerability Management Program for largest fintech client using Qualys</p></li><li><p>Currently managing SOC operations for US Defense Space market supplier across multiple Microsoft tenants</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>Compuquip Cybersecurity</h4>
|
||||
<div class="meta">
|
||||
|
||||
|
||||
<div><time-duration dates="2024-06|2024-12|2023-03|2024-06|2021-01|2023-03"></time-duration></div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<h5>Director of Automation</h5>
|
||||
<div class="meta">
|
||||
<div><time datetime="2024-06">Jun 2024</time> – <time datetime="2024-12">Dec 2024</time> <time-duration dates="2024-06|2024-12"></time-duration></div>
|
||||
<div>Doral, Florida</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Lead the Automation Team to deliver the automation needs of the business.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Spearheaded new automation processes and procedures including standup of new architecture and infrastructure</p></li><li><p>Drove and mentored the team in new Automation workflows using Python, AWS Lambda and SOAR technology</p></li><li><p>Developed custom AI processes to handle several key business needs using custom prompts and data</p></li><li><p>Built automation handling 3,500 tickets weekly with 47% closed without human involvement</p></li><li><p>Designed, programmed, and deployed AI tools, prompts, code, and logic for security automation</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<h5>SOC Director</h5>
|
||||
<div class="meta">
|
||||
<div><time datetime="2023-03">Mar 2023</time> – <time datetime="2024-06">Jun 2024</time> <time-duration dates="2023-03|2024-06"></time-duration></div>
|
||||
<div>Doral, Florida</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Directed Security Operations Center and Red Team operations for MSSP clients.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Grew SOC client base from 16 to 52 customers over tenure with expansion of services</p></li><li><p>Improved SOC profitability from 18% to 52% margin (80% in one quarter) contributing to 15% annual net income growth</p></li><li><p>Directly managed team of 17 reports</p></li><li><p>Oversaw Red team / Offensive Security Teams and Managed Remediation Service projects</p></li><li><p>Managed DFIR engagements, MDR services, Proactive Vulnerability Scanning, Patching, and Pentesting</p></li><li><p>Maintained situational awareness reports for advanced threats (APT and FO incidents)</p></li><li><p>Part of leadership team with COO/CEO/CFO involved in quarterly strategic planning</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<h5>SOC Technical Manager</h5>
|
||||
<div class="meta">
|
||||
<div><time datetime="2021-01">Jan 2021</time> – <time datetime="2023-03">Mar 2023</time> <time-duration dates="2021-01|2023-03"></time-duration></div>
|
||||
<div>Tampa, Florida</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Managed SOC Operations and led incident research and engineering teams.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Authored SOPs and training documentation for SOC team</p></li><li><p>Lead Incident Research and mentored SOC Engineers</p></li><li><p>Developed threat trend analysis reports and metrics</p></li><li><p>Managed SOC Operations and developed SOC playbooks/workflows</p></li><li><p>Generated end-of-month reports for managers and customers</p></li><li><p>Maintained situational awareness reports for advanced threats</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>Sr. Cyber Security Architect</h4>
|
||||
<div class="meta">
|
||||
|
||||
<div>
|
||||
<strong>Travel Syndication Technology (TST)</strong>
|
||||
</div>
|
||||
<div><time datetime="2020-04">Apr 2020</time> – <time datetime="2021-01">Jan 2021</time> <time-duration dates="2020-04|2021-01"></time-duration></div>
|
||||
<div>Alpharetta, Georgia</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<p>Responsible for security architecture, training programs, and compliance across the organization.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Formulated and oversaw phishing and developer security training programs</p></li><li><p>Developed and maintained cloud security protections and security posture</p></li><li><p>Created custom tools to automate attacks against infrastructure and design detections</p></li><li><p>Saved $10,000+ through effective vendor/supplier negotiations</p></li><li><p>Steered organization through PCI and NIST 800 series audits</p></li><li><p>Devised, created, and upgraded cybersecurity related policies and procedures</p></li><li><p>Designed and implemented automated security verification and attack programs</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>Intercontinental Exchange</h4>
|
||||
<div class="meta">
|
||||
|
||||
|
||||
<div><time-duration dates="2020-03|2020-04|2018-08|2020-03"></time-duration></div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<h5>Senior Cyber Security Engineer</h5>
|
||||
<div class="meta">
|
||||
<div><time datetime="2020-03">Mar 2020</time> – <time datetime="2020-04">Apr 2020</time> <time-duration dates="2020-03|2020-04"></time-duration></div>
|
||||
<div>Marietta, Georgia</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Part of the Architecture and Automation Team focused on security data flow and automation.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Designed and maintained security data flow from network endpoints through aggregation, parsing, and storage</p></li><li><p>Created methods, processes, and algorithms to extract knowledge from structured/unstructured data</p></li><li><p>Designed custom tools to automate SOC triage and response activities</p></li><li><p>Incorporated security into infrastructure CI/CD pipelines including cloud technologies</p></li><li><p>Formulated vulnerability and threat hunting dashboard for tracking and mitigation</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<h5>Cyber Security Engineer</h5>
|
||||
<div class="meta">
|
||||
<div><time datetime="2018-08">Aug 2018</time> – <time datetime="2020-03">Mar 2020</time> <time-duration dates="2018-08|2020-03"></time-duration></div>
|
||||
<div>Marietta, Georgia</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Part of the Incident Response / Digital Forensics Team as lead investigator.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Served as lead investigator on critical incidents with thorough investigations</p></li><li><p>Created extensive documentation on processes and procedures for the entire IR team</p></li><li><p>Served as leader in Malware Analysis in isolated sandboxed environments</p></li><li><p>Developed skills of junior agents including custom malware writing through training</p></li><li><p>Managed multi-server compromise investigations coordinating across three teams and time zones</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>The National Wild Turkey Federation</h4>
|
||||
<div class="meta">
|
||||
|
||||
|
||||
<div><time-duration dates="2015-10|2018-08|2015-01|2015-10"></time-duration></div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<h5>Technical Services Manager</h5>
|
||||
<div class="meta">
|
||||
<div><time datetime="2015-10">Oct 2015</time> – <time datetime="2018-08">Aug 2018</time> <time-duration dates="2015-10|2018-08"></time-duration></div>
|
||||
<div>Edgefield, South Carolina</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Managed IT team supporting 300+ staff members with focus on infrastructure and security.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Managed team of technicians and developers facilitating 300+ staff members</p></li><li><p>Oversaw 8 direct reports with performance management responsibilities</p></li><li><p>Conducted vendor/supplier negotiations to minimize costs</p></li><li><p>Managed security of entire web presence including network and programming code</p></li><li><p>Efficiently managed doubling of server space and usage</p></li><li><p>Migrated 3rd party tools to in-house solutions saving $50,000+ yearly</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
<div>
|
||||
<h5>Network / Server Administrator</h5>
|
||||
<div class="meta">
|
||||
<div><time datetime="2015-01">Jan 2015</time> – <time datetime="2015-10">Oct 2015</time> <time-duration dates="2015-01|2015-10"></time-duration></div>
|
||||
<div>Edgefield, South Carolina</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Managed Windows and Linux server environments with focus on infrastructure and automation.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Designed, managed, and monitored infrastructure systems (LANs, WANs, Security)</p></li><li><p>Developed and maintained process automation through scripting and programming</p></li><li><p>Administered servers, computers, printers, routers, switches, firewalls, and phones</p></li><li><p>Spearheaded performance tuning, hardware upgrades, and resource optimization</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>System Administrator</h4>
|
||||
<div class="meta">
|
||||
|
||||
<div>
|
||||
<strong>Morgan Thermal Ceramics</strong>
|
||||
</div>
|
||||
<div><time datetime="2014-10">Oct 2014</time> – <time datetime="2014-12">Dec 2014</time> <time-duration dates="2014-10|2014-12"></time-duration></div>
|
||||
<div>Augusta, Georgia</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<p>Contract role managing network support and infrastructure upgrades.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Managed network support and upgrades including fiber optic link installation</p></li><li><p>Served key role implementing 35 managed switches with several VLANs</p></li><li><p>Resolved major data outage in main switch room without assistance</p></li><li><p>Completed three-month contract in one month</p></li><li><p>Developed automated cloning system to minimize cost and speed deployment</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>IT Coordinator / Network Administrator / System Administrator</h4>
|
||||
<div class="meta">
|
||||
|
||||
<div>
|
||||
<strong>Briarwood Academy</strong>
|
||||
</div>
|
||||
<div><time datetime="2006-08">Aug 2006</time> – <time datetime="2014-04">Apr 2014</time> <time-duration dates="2006-08|2014-04"></time-duration></div>
|
||||
<div>Warrenton, Georgia</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<p>Oversaw IT department budgets and deployment strategies for the school.</p>
|
||||
|
||||
<ul>
|
||||
<li><p>Oversaw budgets and deployment strategies for entire IT department</p></li><li><p>Administered servers, desktop computers, printers, routers, switches, firewalls</p></li><li><p>Shifted all servers from physical to virtual to save space and minimize costs</p></li><li><p>Rolled out wireless for entire campus comprising several acres</p></li><li><p>Negotiated and delivered fiber link for the school free of charge</p></li><li><p>Managed Linux NAS storage solutions for 200+ workstations</p></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>Computer Service Technician</h4>
|
||||
<div class="meta">
|
||||
|
||||
<div>
|
||||
<strong>Pronet</strong>
|
||||
</div>
|
||||
<div><time datetime="2005-05">May 2005</time> – <time datetime="2006-08">Aug 2006</time> <time-duration dates="2005-05|2006-08"></time-duration></div>
|
||||
<div>Georgia</div>
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<p>IT expert for hire in block time situations and emergency disaster recovery.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>Tier 3 Support</h4>
|
||||
<div class="meta">
|
||||
|
||||
<div>
|
||||
<strong>Sitel Group</strong>
|
||||
</div>
|
||||
<div><time datetime="1999-05">May 1999</time> – <time datetime="2001-05">May 2001</time> <time-duration dates="1999-05|2001-05"></time-duration></div>
|
||||
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<div class="timeline">
|
||||
|
||||
<div>
|
||||
|
||||
<p>Assisted Tier 2 technicians with customer service issues and tested new developing technologies.</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="education">
|
||||
<h3>Education</h3>
|
||||
<div class="stack">
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>Virginia College</h4>
|
||||
<div class="meta">
|
||||
<div>Associate in <strong>Network Administration</strong></div>
|
||||
<div><time datetime="2014">Jan 2014</time> – <time datetime="2016">Jan 2016</time> <time-duration dates="2014|2016"></time-duration></div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="awards">
|
||||
<h3>Awards</h3>
|
||||
<div class="stack">
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>Lethal Forensicator Coin Winner</h4>
|
||||
<div class="meta">
|
||||
<div>Awarded by <strong>SANS/GIAC</strong></div> <time datetime="2019-01-01">Jan 2019</time>
|
||||
</div>
|
||||
</header>
|
||||
<p>SANS Challenge Coin for excellence in digital forensics</p>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="certificates">
|
||||
<h3>Certificates</h3>
|
||||
<div class="stack">
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>GWAPT - Web Application Penetration Tester</h4>
|
||||
<div class="meta">
|
||||
<div>Issued by <strong>GIAC</strong></div> <time datetime="2020-01-01">Jan 2020</time>
|
||||
</div>
|
||||
</header>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>GCFA - Forensic Analyst</h4>
|
||||
<div class="meta">
|
||||
<div>Issued by <strong>GIAC</strong></div> <time datetime="2019-01-01">Jan 2019</time>
|
||||
</div>
|
||||
</header>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>GCIH - Incident Handler</h4>
|
||||
<div class="meta">
|
||||
<div>Issued by <strong>GIAC</strong></div> <time datetime="2018-01-01">Jan 2018</time>
|
||||
</div>
|
||||
</header>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<header>
|
||||
<h4>A+ Certification</h4>
|
||||
<div class="meta">
|
||||
<div>Issued by <strong>CompTIA</strong></div> <time datetime="2001-01-01">Jan 2001</time>
|
||||
</div>
|
||||
</header>
|
||||
</article>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<section id="skills">
|
||||
<h3>Skills</h3>
|
||||
<div class="grid-list">
|
||||
|
||||
<div>
|
||||
<h4>Security Operations & SIEM</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>Splunk</li><li>ELK Stack</li><li>Microsoft Sentinel</li><li>Microsoft Defender</li><li>Sentinel One</li><li>Rapid7 IDR</li><li>Stellar Cyber</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>SOAR Platforms</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>Swimlane</li><li>D3 SOAR</li><li>Torq</li><li>Playbook Development</li><li>Workflow Automation</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>EDR & Threat Detection</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>Darktrace</li><li>Tanium</li><li>Vectra</li><li>FireEye</li><li>Sentinel One</li><li>Detection Engineering</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>DFIR & Forensics</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>Volatility</li><li>Malware Analysis</li><li>Reverse Engineering</li><li>Incident Response</li><li>Evidence Collection</li><li>Multi-host Investigation</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>Penetration Testing & Red Team</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>Metasploit</li><li>Web Application Security</li><li>Attack Simulation</li><li>Red Team Oversight</li><li>Purple Team Testing</li><li>Vulnerability Assessment</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>Cloud Platforms & Security</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>AWS</li><li>Azure</li><li>Oracle Cloud</li><li>Lambda</li><li>EC2</li><li>Cloud Security Architecture</li><li>Hybrid Environments</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>AI/ML & Automation</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>AWS Bedrock</li><li>Large Language Models</li><li>RAG</li><li>Machine Learning</li><li>Python Automation</li><li>Custom Tool Development</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>Programming & Scripting</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>Python</li><li>PowerShell</li><li>Bash</li><li>SQL</li><li>YAML</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>Infrastructure & Systems</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>Windows Server</li><li>Linux/UNIX</li><li>Active Directory</li><li>VMware</li><li>Docker</li><li>Kubernetes</li><li>Network Architecture</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>Compliance & Frameworks</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>NIST 800-53</li><li>PCI-DSS</li><li>HIPAA</li><li>GDPR</li><li>CIS Benchmarks</li><li>Security Audits</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4>Leadership & Management</h4>
|
||||
|
||||
<ul class="tag-list">
|
||||
<li>Team Leadership (17+ reports)</li><li>MSSP Operations</li><li>Budget Management</li><li>Vendor Negotiations</li><li>Training Programs</li><li>Hiring & Mentorship</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="languages">
|
||||
<h3>Languages</h3>
|
||||
<div class="grid-list">
|
||||
<div><h4>English</h4> Native speaker</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
179
resume.json
179
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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user