Compare commits

..

No commits in common. "master" and "too_big" have entirely different histories.

14 changed files with 55 additions and 178 deletions

15
cv.adoc
View File

@ -1,4 +1,4 @@
= Brent Saner | Curriculum Vitae = Curriculum Vitae
ifeval::["{filetype}" == "pdf"] ifeval::["{filetype}" == "pdf"]
Brent Saner <bts@square-r00t.net> | +1 (504) 338-1513 | Lehigh Valley area, PA Brent Saner <bts@square-r00t.net> | +1 (504) 338-1513 | Lehigh Valley area, PA
endif::[] endif::[]
@ -11,26 +11,21 @@ Last updated {localdatetime}
:imagesdir: images :imagesdir: images
:sectlinks: :sectlinks:
ifeval::["{doctype}" != "article"] ifeval::["{doctype}" != "article"]
ifeval::["{filetype}" != "pdf"]
:toc: preamble :toc: preamble
:toc2: left :toc2: left
endif::[] endif::[]
endif::[]
:idprefix: :idprefix:
:toclevels: 7 :toclevels: 7
:source-highlighter: highlightjs :source-highlighter: highlightjs
:ftype: cv
:ftypef: CV
:techexp: cv.adoc[]#technical_experience
//:techexp: #technical_experience


//include::includes/header.adoc[]


include::includes/intro.adoc[] include::includes/intro.adoc[]
(If you are looking for my résumé instead, which is much more succinct, that can be found <<resume.adoc#, here>>.) (If you are looking for my résumé instead, which is much more succinct, that can be found <<resume.adoc#, here>>.)


include::includes/values.adoc[] include::includes/values.adoc[]


include::includes/accomplish.adoc[]

include::includes/skills.adoc[] include::includes/skills.adoc[]


include::includes/exp.adoc[] include::includes/exp.adoc[]
@ -39,8 +34,8 @@ include::includes/exp2.adoc[]


include::includes/samples.adoc[] include::includes/samples.adoc[]


include::includes/personal.adoc[]

include::includes/refs.adoc[] include::includes/refs.adoc[]


include::includes/contact.adoc[]

include::includes/lastupdate.adoc[] include::includes/lastupdate.adoc[]

11
includes/accomplish.adoc Normal file
View File

@ -0,0 +1,11 @@
== Professional Accomplishments

I have some milestones I'm particularly proud of.

For clients and companies past and present, I have...

* Consolidated server count from 1500+ to ~750 in underutilized clusters
* Reduced infrastructure costs by ~75%
* Redesigned several platforms for GDPR compliance
* Designed a SSO (Single Sign-On) backend/architecture for customers
* Re-architectured an authentication scheme for a global service to use central authentication (with bandwidth accounting)

View File

@ -1,10 +0,0 @@
=== Community Involvement

* Hosts and runs a Systems Operations podcast, https://sysadministrivia.com[Sysadministrivia^], for 6 years ongoing
** Maintains accompanying community of other IT professionals

* Engineered, maintained NOC and designed firmware for a community/volunteer-driven city-wide WiFi project (Project.Phree) for 1 year (now defunct)

* Have volunteered for/participated in and raised funds for the https://www.extra-life.org/[Extra Life] children's health charity in 2013, 2015, 2016, 2017, and 2020.

* Have volunteed Systems Support for the https://tasgiving.org/[2020 TASGiving^] charity event (benefiting https://www.nami.org/Home[NAMI^])

View File

@ -5,5 +5,7 @@ You can reach me via:
. mailto:bts@square-r00t.net?subject=Resume/CV&body=I%20was%20reading%20your%20CV%20and...[Email] . mailto:bts@square-r00t.net?subject=Resume/CV&body=I%20was%20reading%20your%20CV%20and...[Email]
ifeval::["{filetype}" == "pdf"] ifeval::["{filetype}" == "pdf"]
. link:tel:+15043381513[Telephone] via *+1 (504) 338-1513* (US) . link:tel:+15043381513[Telephone] via *+1 (504) 338-1513* (US)
.. Please be sure to leave a voicemail if I don't pick up; while I love the wilds of Pennsylvania, they unfortunately do
cause issues with reception sometimes.
endif::[] endif::[]
. https://www.linkedin.com/in/brentsaner/[LinkedIn^] _(not frequently used)_ . https://www.linkedin.com/in/brentsaner/[LinkedIn^] _(not frequently used)_

View File

@ -46,7 +46,6 @@ technologies as well.
* Scripting _(Intermediate to Advanced)_ * Scripting _(Intermediate to Advanced)_
** Bash _(Intermediate)_ ** Bash _(Intermediate)_
** Python _(Intermediate to Advanced)_ ** Python _(Intermediate to Advanced)_
** Golang _(Beginner to Intermediate)_
* Linux _(Advanced)_ * Linux _(Advanced)_
** CentOS/Red Hat _(Advanced)_ ** CentOS/Red Hat _(Advanced)_
** Debian _(Intermediate to Advanced)_ ** Debian _(Intermediate to Advanced)_
@ -103,12 +102,3 @@ technologies as well.
*** Traffic flow, policies, other concepts _(Advanced)_ *** Traffic flow, policies, other concepts _(Advanced)_
*** netfilter/iptables _(Intermediate)_ *** netfilter/iptables _(Intermediate)_
*** netfilter/ip6tables _(Intermediate)_ *** netfilter/ip6tables _(Intermediate)_
* Documentation
** MediaWiki _(Intermediate)_
** AsciiDoc/AsciiDoctor _(Intermediate to Advanced)_
** Markup _(Advanced)_
* Data
** XML (and XML Schema) _(Intermediate to Advanced)_
** JSON _(Advanced)_
** YAML _(Advanced)_
** INI _(Avanced)_

View File

@ -1,30 +1,12 @@
== Professional Experience Highlights == Professional Experience Highlights


* https://getfoxyproxy.org/[Foxyproxy^] (Contractor; Linux Systems Administrator, Linux Systems Engineer) (Fully Remote), *_March 2014_ to _present_ (6.5+ years)* * Systems Administrator, then Systems Engineer, for https://getfoxyproxy.org/[Foxyproxy^] as a consultant/independent
** Consolidated customer-facing server count from 1500+ to ~750 in underutilized clusters contractor since March 2014
** Reduced infrastructure costs by ~75% * NOC engineer for a community/volunteer-driven city-wide WiFi project, Project.Phree for 1 year (now
** Redesigned several platforms for GDPR compliance defunct)
** Designed a SSO (Single Sign-On) backend/architecture for customers * Support Representative, Support Supervisor, then Systems Administrator with
** Re-architectured an authentication scheme for a global service to use centralized authentication with bandwidth accounting https://asmallorange.com/[A Small Orange^] for 2.5 years

* Hardware diagnostician for

https://www.linkedin.com/company/barrister-global-services-network/[Barrister Global Services Network^] for 1 year
* https://asmallorange.com/[A Small Orange^] (Support Representative, Support Supervisor, Linux Systems Administrator) (Fully Remote), *_September 2011_ to _Feb 2014_ (~2.5 years)* * Linux Systems Administrator for http://www.tektonic.net/[Tektonic^] for 1.5 years
** Redesigned PXE for dedicated server network: * Support Technician and NOC Admin for https://www.acetechgroup.com/[ACE Technology Group^] for 1.5 years
*** Expanding operating system diversity
*** Implementing low-level hardware diagnostics
*** improving existing install options
*** Increasing service stability
** Proposed and deployed live phone customer support via SIP leading to increased responsiveness to customer requests


* https://www.linkedin.com/company/barrister-global-services-network/[Barrister Global Services Network^] (Hardware diagnostician), *_August 2010_ to _September 2011_ (~1 year)*
** Redesigned flow of call handling, allowing to handle an increased ~200% resolution volume in faster timeframes
** Created bootable ISO for field technicians to quickly diagnose issues and report results to triage

* http://www.tektonic.net/[Tektonic^] (Linux Systems Administrator), *_June 2008_ to _October 2009_ (~1.3 years)*
** Managed, maintained, installed ~1000 OpenVZ and Virtuozzo containers

* https://www.acetechgroup.com/[ACE Technology Group^] (Support Technician, NOC Admin) *_August 2007_ to _November 2008_ (1.25 years)*
** Remotely supported ~150 offices
** Maintained in-house VoIP system (Asterisk)
** Maintained OpenVPN bridge between NOC and client offices

View File

@ -1,9 +0,0 @@

[.center]
ifeval::["{filetype}" == "pdf"]
mailto:bts@square-r00t.net[bts@square-r00t.net,About your {ftypef}...] | +1 (504) 338-1513 | Lehigh Valley area, PA
endif::[]
ifeval::["{filetype}" != "pdf"]
mailto:bts@square-r00t.net[bts@square-r00t.net,About your {ftypef}...] | +1 (504) 338-1513 | Lehigh Valley area, PA
endif::[]

View File

@ -1,24 +0,0 @@
=== Hobbies

////
[quote, Ralph Wiggum, The Simpsons (Season 4 Episode 15)]
So... Do you like... stuff?
////

ifeval::["{ftype}" == "cv"]
_A list of interests and hobbies (*outside* of technology) in no particular order, should it make sifting through {ftypef}s more amusing for you._
endif::[]

* Music
** I'm all over the place with genres I listen to. Ask me about a major genre and I'll probably at least have one piece of work in it that I'm fond of.
** Playing instruments:
*** Banjo
*** Didgeridoo
* Reading
** Favourites include Horror/surrealism (Robert Shea, Marc Laidlaw) and sci-fi (Ray Bradbury)
* Games
** The classic PC FPSes: Unreal, Half-Life, Doom, Quake, etc. (Am I old?)
** The occasional tabletop RPG (Call of Cthulhu, Risus)
* Film
** Horror. The cheesier the better.
** Similarly, MST3K

View File

@ -3,7 +3,6 @@
Hello! My name is Brent Saner, and I have a passion for technology. Hello! My name is Brent Saner, and I have a passion for technology.
I don't mean I enjoy playing with the latest gadgets, I mean a *passion*. I don't mean I enjoy playing with the latest gadgets, I mean a *passion*.


ifeval::["{ftype}" == "cv"]
I read RFCs and man pages for fun (so much so that I read RFCs and man pages for fun (so much so that
https://git.square-r00t.net/OpTools/tree/ref/rfc.py[I wrote an RFC client^] - before I found out that the IETF already https://git.square-r00t.net/OpTools/tree/ref/rfc.py[I wrote an RFC client^] - before I found out that the IETF already
https://tools.ietf.org/inventory/reading-tools.shtml[has several^], oops). I have a https://tools.ietf.org/inventory/reading-tools.shtml[has several^], oops). I have a
@ -13,7 +12,6 @@ unique VLAN each, on-site and remote backups, PXE-bootstrapped https://ipxe.org/
using 802.1X backed by RADIUS and LDAP, all with a full x86_64 Linux 1U as my border device. For a home network. using 802.1X backed by RADIUS and LDAP, all with a full x86_64 Linux 1U as my border device. For a home network.


When I say "passion", I mean it. When I say "passion", I mean it.
endif::[]


With this, combined with my 18 years of professional Linux/UNIX experience (21 years hobbyist), I've learned a few With this, combined with my 18 years of professional Linux/UNIX experience (21 years hobbyist), I've learned a few
tricks around the ol' rodeo. Because of my adherence to and knowledge of best practices, care for forward-thinking, and tricks around the ol' rodeo. Because of my adherence to and knowledge of best practices, care for forward-thinking, and

View File

@ -1,11 +0,0 @@
== Personal

ifeval::["{ftype}" == "cv"]
include::comm.involv.adoc[]
endif::[]

include::hobbies.adoc[]

ifeval::["{ftype}" == "cv"]
include::contact.adoc[]
endif::[]

View File

@ -1,29 +1,9 @@
== Professional Skills == Professional Skills
ifeval::["{filetype}" == "pdf"]
ifeval::["{ftype}" == "resume"]
:explink: https://cv.r00t2.io/#technical_experience[technical experience^]
endif::[]
ifeval::["{ftype}" == "cv"]
:explink: <<cv.adoc#technical_experience, technical experience>>
endif::[]
endif::[]
ifeval::["{filetype}" != "pdf"]
ifeval::["{ftype}" == "resume"]
:explink: https://cv.r00t2.io/#technical_experience[technical experience^]
endif::[]
ifeval::["{ftype}" == "cv"]
:explink: <<cv.adoc#technical_experience, technical experience>>
endif::[]
endif::[]


As this is only a bird's-eye view, please instead review my {explink} if you wish As this is only a bird's-eye view, please instead review my <<cv.adoc#technical_experience, technical experience>> if you wish
to see technical specifics. to see technical specifics.


* Highly autonomous, self-motivated, experienced, and skilled in remote/telecommuting environment * Well-versed in *nix server administration, maintenance, deployment
** 10+ consecutive years of telecommuting experience
** Strong written and verbal skills
** Dedicated home office and desire to maintain work/personal life separate
* Well-versed in *nix server administration, maintenance, deployment (18+ years professional experience)
* Documentation (Markdown, Asciidoc, etc.) * Documentation (Markdown, Asciidoc, etc.)
* Architecture * Architecture
** Deploying, designing, etc. ** Deploying, designing, etc.
@ -32,6 +12,3 @@ to see technical specifics.
** Root cause determination ** Root cause determination
** Future mitigation design ** Future mitigation design
* Incorporating best practices to ensure interoperability, safety/security, stability * Incorporating best practices to ensure interoperability, safety/security, stability
** Implementing RFC recommendations (e.g. `MUST` and `MAY` directives)
** Seeking current advisement from upstream documentation and notices
** Applying new security discoveries as applicable to already deployed projects

View File

@ -1,30 +1,17 @@
== Values == Values


In my professional environment, I value and demonstrate the following: In my professional environment, I value the following:


=== "SSP" === * Security, safety, privacy (for both employees/coworkers and customers)
*Security*, *safety*, and *privacy*. * Accurate and followed deadlines

* Quality first, quantity second, "quickness" third
These concepts are paramount for both employees/coworkers/clients and customers. By holding these concepts in mind during all stages of a project or product's lifecycle, I believe that other areas (flexibility, economic growth, etc.) become much more achievable. ** Reduce/avoid technical debt

*** Deploy correctly the first time
=== Timing === *** Extensive planning
*Deadlines* should be _accurate_ and _followed_. This allows for a smoother development, deployment, and consumer satisfaction level. *** Future-proofing

** Separate Dev, Test/Staging, Production environments
When determining deadlines and when developing or deploying *quality* comes first, *quantity* second, and *"quickness"* third. Efficiency is not efficient if it creates more work down the road at the cost of speed. ** Scalability

* Stability and availability over (individual) uptime
=== Do it Right, Do it Once === ** Balancing
By following a procedure and policy that allow for *testing* during development and deployment and by implementing *automation* into that cycle, it allows for *reducing/avoiding technical debt* by paving the road for: ** Failover

* Clear communication with customers when affected
* Deploying correctly the first time
* Extensive planning
* Future-proofing

This is accomplished by a strong focus on:

* *Separate* _Dev_, _Test/Staging_, and _Production_ environments
** *Scalability*

=== Stability ===
In the modern technological world of failover and redundancy, *stability* and *availability* of a service hold priority over individual machines' uptime.

Because of this, I value *balancing* load/resources, deploying *strong failover procedures*, clear *priority levels/SLA* and *clear communication with consumers* when affected.

View File

@ -1,17 +1,8 @@
#!/bin/bash #!/bin/bash


if [[ $(id -u) == 0 ]]; # asciidoctor -B /opt/dev/resume -D /tmp/resume -n /opt/dev/resume/cv.adoc
then asciidoctor -D /srv/http/resume -n cv.adoc
DESTDIR=/srv/http/resume asciidoctor -D /srv/http/resume -n resume.adoc
else
DESTDIR=/tmp/resume
fi


# Use -n to number sections. asciidoctor-pdf -D /srv/http/resume/pdf -n -d article cv.adoc

asciidoctor-pdf -D /srv/http/resume/pdf -n -d article resume.adoc
asciidoctor -D ${DESTDIR}/cv -n -o index.html cv.adoc
asciidoctor -D ${DESTDIR}/resume -n -o index.html resume.adoc

#asciidoctor-pdf -a filetype=pdf -D ${DESTDIR} -d article cv.adoc
asciidoctor-pdf -a filetype=pdf -D ${DESTDIR} cv.adoc
asciidoctor-pdf -a filetype=pdf -D ${DESTDIR} -d article resume.adoc

View File

@ -1,4 +1,4 @@
= Brent Saner | Résumé = Résumé
ifeval::["{filetype}" == "pdf"] ifeval::["{filetype}" == "pdf"]
Brent Saner <bts@square-r00t.net> | +1 (504) 338-1513 | Lehigh Valley area, PA Brent Saner <bts@square-r00t.net> | +1 (504) 338-1513 | Lehigh Valley area, PA
endif::[] endif::[]
@ -11,30 +11,28 @@ Last updated {localdatetime}
:imagesdir: images :imagesdir: images
:sectlinks: :sectlinks:
ifeval::["{doctype}" != "article"] ifeval::["{doctype}" != "article"]
ifeval::["{filetype}" != "pdf"]
:toc: preamble :toc: preamble
:toc2: left :toc2: left
endif::[] endif::[]
endif::[]
:idprefix: :idprefix:
:toclevels: 7 :toclevels: 7
:source-highlighter: highlightjs :source-highlighter: highlightjs
:ftype: resume
:ftypef: résumé
:techexp: https://cv.r00t2.io/#technical_experience


include::includes/header.adoc[]


include::includes/intro.adoc[] include::includes/intro.adoc[]
(If you are looking for my curriculum vitae (CV) instead, which contains much more detail, that can be found (If you are looking for my curriculum vitae (CV) instead, which contains much more detail, that can be found
<<cv.adoc#, here>>.) <<cv.adoc#, here>>.)


include::includes/accomplish.adoc[]

include::includes/skills.adoc[] include::includes/skills.adoc[]


include::includes/exp2.adoc[] include::includes/exp2.adoc[]


include::includes/samples.adoc[] include::includes/samples.adoc[]


include::includes/personal.adoc[] include::includes/refs.adoc[]

include::includes/contact.adoc[]


include::includes/lastupdate.adoc[] include::includes/lastupdate.adoc[]