Compare commits

...

5 Commits

Author SHA1 Message Date
brent s
762e3549df
changing urls 2020-11-25 17:23:29 -05:00
brent s
235bf577f6
updating for new public render 2020-11-25 16:55:46 -05:00
brent s
759132a207
adding some quick things 2020-11-25 14:52:50 -05:00
brent s
fb06ad7ae7
don't forget about these 2020-11-17 03:21:30 -05:00
698bf8325b
checking in some status 2020-11-17 03:17:24 -05:00
14 changed files with 178 additions and 55 deletions

15
cv.adoc
View File

@ -1,4 +1,4 @@
= Curriculum Vitae = Brent Saner | 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,21 +11,26 @@ 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[]
@ -34,8 +39,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[]

View File

@ -1,11 +0,0 @@
== 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)

10
includes/comm.involv.adoc Normal file
View File

@ -0,0 +1,10 @@
=== 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,7 +5,5 @@ 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,6 +46,7 @@ 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)_
@ -102,3 +103,12 @@ 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,12 +1,30 @@
== Professional Experience Highlights == Professional Experience Highlights


* Systems Administrator, then Systems Engineer, for https://getfoxyproxy.org/[Foxyproxy^] as a consultant/independent * https://getfoxyproxy.org/[Foxyproxy^] (Contractor; Linux Systems Administrator, Linux Systems Engineer) (Fully Remote), *_March 2014_ to _present_ (6.5+ years)*
contractor since March 2014 ** Consolidated customer-facing server count from 1500+ to ~750 in underutilized clusters
* NOC engineer for a community/volunteer-driven city-wide WiFi project, Project.Phree for 1 year (now ** Reduced infrastructure costs by ~75%
defunct) ** Redesigned several platforms for GDPR compliance
* Support Representative, Support Supervisor, then Systems Administrator with ** Designed a SSO (Single Sign-On) backend/architecture for customers
https://asmallorange.com/[A Small Orange^] for 2.5 years ** Re-architectured an authentication scheme for a global service to use centralized authentication with bandwidth accounting
* Hardware diagnostician for
https://www.linkedin.com/company/barrister-global-services-network/[Barrister Global Services Network^] for 1 year
* Linux Systems Administrator for http://www.tektonic.net/[Tektonic^] for 1.5 years * https://asmallorange.com/[A Small Orange^] (Support Representative, Support Supervisor, Linux Systems Administrator) (Fully Remote), *_September 2011_ to _Feb 2014_ (~2.5 years)*
* Support Technician and NOC Admin for https://www.acetechgroup.com/[ACE Technology Group^] for 1.5 years ** Redesigned PXE for dedicated server network:
*** 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

9
includes/header.adoc Normal file
View File

@ -0,0 +1,9 @@

[.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::[]

24
includes/hobbies.adoc Normal file
View File

@ -0,0 +1,24 @@
=== 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,6 +3,7 @@
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
@ -12,6 +13,7 @@ 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

11
includes/personal.adoc Normal file
View File

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

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

include::hobbies.adoc[]

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

View File

@ -1,9 +1,29 @@
== 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 <<cv.adoc#technical_experience, technical experience>> if you wish As this is only a bird's-eye view, please instead review my {explink} if you wish
to see technical specifics. to see technical specifics.


* Well-versed in *nix server administration, maintenance, deployment * Highly autonomous, self-motivated, experienced, and skilled in remote/telecommuting environment
** 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.
@ -12,3 +32,6 @@ 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,17 +1,30 @@
== Values == Values


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


* Security, safety, privacy (for both employees/coworkers and customers) === "SSP" ===
* Accurate and followed deadlines *Security*, *safety*, and *privacy*.
* Quality first, quantity second, "quickness" third
** Reduce/avoid technical debt 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.
*** Deploy correctly the first time
*** Extensive planning === Timing ===
*** Future-proofing *Deadlines* should be _accurate_ and _followed_. This allows for a smoother development, deployment, and consumer satisfaction level.
** Separate Dev, Test/Staging, Production environments
** Scalability 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.
* Stability and availability over (individual) uptime
** Balancing === Do it Right, Do it Once ===
** Failover 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:
* 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,8 +1,17 @@
#!/bin/bash #!/bin/bash


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


asciidoctor-pdf -D /srv/http/resume/pdf -n -d article cv.adoc # Use -n to number sections.
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 @@
= Résumé = Brent Saner | 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,28 +11,30 @@ 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/refs.adoc[] include::includes/personal.adoc[]

include::includes/contact.adoc[]


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