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

//include::includes/header.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>>.)

include::includes/values.adoc[]

include::includes/accomplish.adoc[]

include::includes/skills.adoc[]

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

include::includes/samples.adoc[]

include::includes/personal.adoc[]

include::includes/refs.adoc[]

include::includes/contact.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]
ifeval::["{filetype}" == "pdf"]
. 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::[]
. https://www.linkedin.com/in/brentsaner/[LinkedIn^] _(not frequently used)_

View File

@ -46,6 +46,7 @@ technologies as well.
* Scripting _(Intermediate to Advanced)_
** Bash _(Intermediate)_
** Python _(Intermediate to Advanced)_
** Golang _(Beginner to Intermediate)_
* Linux _(Advanced)_
** CentOS/Red Hat _(Advanced)_
** Debian _(Intermediate to Advanced)_
@ -102,3 +103,12 @@ technologies as well.
*** Traffic flow, policies, other concepts _(Advanced)_
*** netfilter/iptables _(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

* Systems Administrator, then Systems Engineer, for https://getfoxyproxy.org/[Foxyproxy^] as a consultant/independent
contractor since March 2014
* NOC engineer for a community/volunteer-driven city-wide WiFi project, Project.Phree for 1 year (now
defunct)
* Support Representative, Support Supervisor, then Systems Administrator with
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
* Linux Systems Administrator for http://www.tektonic.net/[Tektonic^] for 1.5 years
* Support Technician and NOC Admin for https://www.acetechgroup.com/[ACE Technology Group^] for 1.5 years
* https://getfoxyproxy.org/[Foxyproxy^] (Contractor; Linux Systems Administrator, Linux Systems Engineer) (Fully Remote), *_March 2014_ to _present_ (6.5+ years)*
** Consolidated customer-facing 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 centralized authentication with bandwidth accounting


* https://asmallorange.com/[A Small Orange^] (Support Representative, Support Supervisor, Linux Systems Administrator) (Fully Remote), *_September 2011_ to _Feb 2014_ (~2.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.
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
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
@ -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.

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
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
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.

* 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.)
* Architecture
** Deploying, designing, etc.
@ -12,3 +32,6 @@ to see technical specifics.
** Root cause determination
** Future mitigation design
* 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

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)
* Accurate and followed deadlines
* Quality first, quantity second, "quickness" third
** Reduce/avoid technical debt
*** Deploy correctly the first time
*** Extensive planning
*** Future-proofing
** Separate Dev, Test/Staging, Production environments
** Scalability
* Stability and availability over (individual) uptime
** Balancing
** Failover
* Clear communication with customers when affected
=== "SSP" ===
*Security*, *safety*, and *privacy*.

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.

=== Timing ===
*Deadlines* should be _accurate_ and _followed_. This allows for a smoother development, deployment, and consumer satisfaction level.

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.

=== Do it Right, Do it Once ===
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:

* 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

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

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

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

include::includes/header.adoc[]

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

include::includes/accomplish.adoc[]

include::includes/skills.adoc[]

include::includes/exp2.adoc[]

include::includes/samples.adoc[]

include::includes/refs.adoc[]

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

include::includes/lastupdate.adoc[]