Compare commits
5 Commits
alternativ
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
762e3549df | ||
|
235bf577f6 | ||
|
759132a207 | ||
|
fb06ad7ae7 | ||
698bf8325b |
15
cv.adoc
15
cv.adoc
@ -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[]
|
||||
|
@ -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
10
includes/comm.involv.adoc
Normal 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^])
|
@ -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)_
|
||||
|
@ -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)_
|
||||
|
@ -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
9
includes/header.adoc
Normal 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
24
includes/hobbies.adoc
Normal 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
|
@ -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
11
includes/personal.adoc
Normal file
@ -0,0 +1,11 @@
|
||||
== Personal
|
||||
|
||||
ifeval::["{ftype}" == "cv"]
|
||||
include::comm.involv.adoc[]
|
||||
endif::[]
|
||||
|
||||
include::hobbies.adoc[]
|
||||
|
||||
ifeval::["{ftype}" == "cv"]
|
||||
include::contact.adoc[]
|
||||
endif::[]
|
@ -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
|
||||
|
@ -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.
|
||||
|
19
render.sh
19
render.sh
@ -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
|
||||
|
14
resume.adoc
14
resume.adoc
@ -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[]
|
||||
|
Loading…
Reference in New Issue
Block a user