From f05f736214a577e15ac4cdda8263906ff39e9709 Mon Sep 17 00:00:00 2001 From: brent s Date: Tue, 19 May 2020 18:09:05 -0400 Subject: [PATCH] content commit --- cv.adoc | 37 +++++++++++++++ includes/accomplish.adoc | 11 +++++ includes/contact.adoc | 11 +++++ includes/exp.adoc | 98 ++++++++++++++++++++++++++++++++++++++++ includes/exp2.adoc | 14 ++++++ includes/intro.adoc | 20 ++++++++ includes/refs.adoc | 5 ++ includes/samples.adoc | 23 ++++++++++ includes/skills.adoc | 14 ++++++ includes/values.adoc | 17 +++++++ resume.adoc | 31 +++++++++++++ 11 files changed, 281 insertions(+) create mode 100644 cv.adoc create mode 100644 includes/accomplish.adoc create mode 100644 includes/contact.adoc create mode 100644 includes/exp.adoc create mode 100644 includes/exp2.adoc create mode 100644 includes/intro.adoc create mode 100644 includes/refs.adoc create mode 100644 includes/samples.adoc create mode 100644 includes/skills.adoc create mode 100644 includes/values.adoc create mode 100644 resume.adoc diff --git a/cv.adoc b/cv.adoc new file mode 100644 index 0000000..5da13eb --- /dev/null +++ b/cv.adoc @@ -0,0 +1,37 @@ += Curriculum Vitae +ifeval::["{filetype}" == "pdf"] +Brent Saner | +1 (504) 338-1513 | Lehigh Valley area, PA +endif::[] +ifeval::["{filetype}" != "pdf"] +Brent Saner +endif::[] +Last updated {localdatetime} +:doctype: book +:data-uri: +:imagesdir: images +:sectlinks: +ifeval::["{doctype}" != "article"] +:toc: preamble +:toc2: left +endif::[] +:idprefix: +:toclevels: 7 +:source-highlighter: highlightjs + + +include::includes/intro.adoc[] +(If you are looking for my résumé instead, which is much more succinct, that can be found <>.) + +include::includes/values.adoc[] + +include::includes/accomplish.adoc[] + +include::includes/exp.adoc[] + +include::includes/exp2.adoc[] + +include::includes/samples.adoc[] + +include::includes/refs.adoc[] + +include::includes/contact.adoc[] diff --git a/includes/accomplish.adoc b/includes/accomplish.adoc new file mode 100644 index 0000000..0fcc94c --- /dev/null +++ b/includes/accomplish.adoc @@ -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 ~150% +* 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) diff --git a/includes/contact.adoc b/includes/contact.adoc new file mode 100644 index 0000000..c45e7cc --- /dev/null +++ b/includes/contact.adoc @@ -0,0 +1,11 @@ +== Contact Information + +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 unfortunaly do + cause issues with reception sometimes. +endif::[] +. https://www.linkedin.com/in/brentsaner/[LinkedIn^] _(not frequently used)_ diff --git a/includes/exp.adoc b/includes/exp.adoc new file mode 100644 index 0000000..912d26b --- /dev/null +++ b/includes/exp.adoc @@ -0,0 +1,98 @@ +== Technical Experience + +Below you will find various technologies I have experience with and, where applicable, specific +software/implementations/features I have used directly. + +Both have signifiers denoting my level of experience and/or familiarity with them, classified as: + +. _Beginner_, some/a marginal understanding/level of working experience with +. _Intermediate_, strong working knowledge +. _Advanced_, I could probably quote you some RFC/documentation details on it (or beyond) + +This is, of course, by no means exhaustive. Anything below _Beginner_ is not listed. + +* HTTP/HTTPS/HTTP2 _(Advanced)_ +** Nginx _(Advanced)_ +** Apache _(Intermediate to Advanced)_ +* Mail _(Intermediate to Advanced)_ +** SMTP/SMTPS/StartTLS SMTP _(Advanced)_ +*** Postfix _(Intermediate)_ +** IMAP/IMAPS/StartTLS IMAP _(Advanced)_ +*** Dovecot _(Advanced)_ +** DKIM _(Intermediate to Advanced)_ +*** OpenDKIM _(Intermediate)_ +** Spam Mitigation _(Intermediate to Advanced)_ +*** SPF _(Advanced)_ +*** RBL _(Advanced)_ +*** SpamAssassin _(Intermediate to Advanced)_ +* VoIP/Telephony _(Beginner to Intermediate)_ +** SIP and POTS _(Beginner to Intermediate)_ +*** Asterisk _(Intermediate)_ +*** FreeSWITCH _(Beginner)_ +* Database Management _(Intermediate)_ +** MySQL _(Intermediate)_ +** MariaDB _(Intermediate)_ +** Postgres _(Beginner)_ +** Sqlite _(Intermediate to Advanced)_ +* Authentication/Identity _(Intermediate)_ +** RADIUS _(Intemediate to Advanced)_ +*** FreeRADIUS _(Intermediate to Advanced)_ +** LDAP _(Intermediate to Advanced)_ +*** OpenLDAP _(Intermediate to Advanced)_ +**** OLC ("On-Line Configuration") _(Advanced)_ +**** StartTLS _(Advanced; e.g. SSF and ACL tied to TLS status)_ +**** "back-ldap" (internal LDAP proxying) _(Intermediate)_ +* Scripting _(Intermediate to Advanced)_ +** Bash _(Intermediate)_ +** Python _(Intermediate to Advanced)_ +* Linux _(Advanced)_ +** CentOS/Red Hat _(Advanced)_ +** Debian _(Intermediate to Advanced)_ +** Arch Linux _(Advanced)_ +* UNIX/UNIX-likes _(Intermediate to Advanced)_ +** OpenBSD _(Intermediate)_ +** FreeBSD _(Intermediate)_ +** NetBSD _(Beginner)_ +** OpenSolaris (and derivatives e.g. Illumos) _(Beginner)_ +* Virtualization _(Intermediate to Advanced)_ +** XEN _(Intermediate)_ +** OpenVZ/Virtuozzo _(Intermediate)_ +** Libvirt + KVM/QEMU _(Intermediate to Advanced)_ +* Network Analysis _(Intermediate)_ +** PCAP Format _(Intermediate)_ +*** Tcpdump _(Intermediate to Advanced)_ +*** Wireshark _(Intermediate)_ +** NetFlow (via FlowTools) _(Beginner)_ +* Hardware _(Intermediate to Advanced)_ +** Assembly/Part Replacement _(Advanced)_ +** Diagnostics _(Intermediate to Advanced)_ +** Repair _(Intermediate to Advanced)_ +* Configuration/Change Management _(Intermediate to Advanced)_ +** Ansible _(Intermediate to Advanced)_ +** SaltStack _(Advanced)_ +* Networking Concepts _(Intermediate to Advanced)_ +** VPN _(Intermediate to Advanced)_ +*** IPsec (both IKEv1 and IKEv2) _(Intermediate to Advanced)_ +**** StrongSwan _(Advanced)_ +*** OpenVPN _(Advanced)_ +*** PPTP _(Intermediate)_ +** IPv4 _(Intermediate to Advanced)_ +*** RFC 1918 subnetting/CIDR allocation _(Advanced)_ +*** DHCP _(Intermediate to Advanced)_ +*** ICMP _(Intermediate)_ +** IPv6 _(Intermediate)_ +*** ICMPv6 _(Intermediate)_ +*** SLAAC _(Intermediate to Advanced)_ +*** DHCPv6 _(Intermediate to Advanced)_ +** PXE _(Advanced)_ +*** iPXE _(Intermediate to Advanced)_ +** QoS (Quality of Service) _(Beginner to Intermediate)_ +** IEEE 802.1X _(Intemediate)_ +** "Smart"/managed switching _(Intermediate to Advanced)_ +*** VLAN tagging _(Intermediate to Advanced)_ +*** Port Mirroring _(Intermediate)_ +*** PoE Device Management _(Intermediate)_ +** Firewalling _(Intermediate to Advanced)_ +*** Traffic flow, policies, other concepts _(Advanced)_ +*** netfilter/iptables _(Intermediate)_ +*** netfilter/ip6tables _(Intermediate)_ diff --git a/includes/exp2.adoc b/includes/exp2.adoc new file mode 100644 index 0000000..65d970c --- /dev/null +++ b/includes/exp2.adoc @@ -0,0 +1,14 @@ +== Professional Experience Highlights + +I... + +* Served as Systems Administrator, then Systems Engineer, for https://getfoxyproxy.org/[Foxyproxy^] as a consultant/ +independent contractor since March 2014 +* Have served as NOC engineer for a community/volunteer-driven city-wide WiFi project, Project.Phree for 1 year (now +defunct) +* Have served as Support Representative, Support Supervisor, then Systems Administrator with +https://asmallorange.com/[A Small Orange^] for 2.5 years +* Have served as a hardware diagnostician for +https://www.linkedin.com/company/barrister-global-services-network/[Barrister Global Services Network^] for 1 year +* Served as a Linux Systems Administrator for http://www.tektonic.net/[Tektonic^] for 1.5 years +* Served as Support Technician and NOC Admin for https://www.acetechgroup.com/[ACE Technology Group^] for 1.5 years diff --git a/includes/intro.adoc b/includes/intro.adoc new file mode 100644 index 0000000..17332c9 --- /dev/null +++ b/includes/intro.adoc @@ -0,0 +1,20 @@ +== Introduction + +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 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 +https://git.square-r00t.net/[large amount of projects^] I work on in my free time. I have a VM lab (almost a necessity +if one works from home), and my home network is segmented into five different VLANs, four different WLANs tied to a +unique VLAN each, on-site and remote backups, PXE-bootstrapped https://ipxe.org/[iPXE^], with 10Gbps house backbone +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. + +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 +sheer joy I take in solving potentially difficult problems, it is my goal (and particular knack) to get your company's +infrastructure and services smooth and stable while retaining flexibility for vast growth. + diff --git a/includes/refs.adoc b/includes/refs.adoc new file mode 100644 index 0000000..1acb14b --- /dev/null +++ b/includes/refs.adoc @@ -0,0 +1,5 @@ +== References + +(As this document is publicly indexed, in order to protect the privacy of those I respect professionaly and care about +personally, references are *only* available <>. Thank you for your understanding in +this matter.) diff --git a/includes/samples.adoc b/includes/samples.adoc new file mode 100644 index 0000000..c44fc35 --- /dev/null +++ b/includes/samples.adoc @@ -0,0 +1,23 @@ +== Samples of Work + +Since I focus more on operations/administration than development, most of my "samples" can be found via +administration *theory*. This is expounded upon a great deal in https://sysadministrivia.com/[my podcast^]. + +Occasionally, however, I also write documentation for our demographic (mostly other Linux sysadmins). Samples of these +can be found here: + +* https://sysadministrivia.com/news/RSYNC[RSYNC^] (not RSYNC over SSH) +* https://sysadministrivia.com/news/howto-podcast[Podcast hosting^] (technical details) +* https://sysadministrivia.com/news/howto-borgserver[Deploying a backup server with privilege separation^] +* https://sysadministrivia.com/news/howto-grubrescue[Booting a rescue ISO directly from GRUB^] + +However, I do have a lot of Python (and some Bash) written. Examples include: + +* https://github.com/johnnybubonic/BDisk[A liveCD/liveUSB/iPXE image creator^] (in the process of a rewrite) +* https://github.com/johnnybubonic/aif-ng[A preseed/Kickstart-like facility for Arch Linux^] (in the process of a rewrite) +* https://github.com/johnnybubonic/vaultpass[A compatability wrapper between "Pass" password manager and Hashicorp's Vault^] +(in progress) +* https://github.com/johnnybubonic/OpTools[A collection of miscellaneous tools^] + +Please note that I only use GitHub for mirroring of select repositories; a full collection of all of my public +repositories can be found https://git.square-r00t.net/[here ^]. diff --git a/includes/skills.adoc b/includes/skills.adoc new file mode 100644 index 0000000..378aadc --- /dev/null +++ b/includes/skills.adoc @@ -0,0 +1,14 @@ +== Professional Skills + +As this is only a bird's-eye view, please instead review my <> if you wish +to see technical specifics. + +* Well-versed in *nix server administration, maintenance, deployment +* Documentation (Markdown, Asciidoc, etc.) +* Architecture +** Deploying, designing, etc. +* Emergency Mitigation/Maintenance +** Downtime management +** Root cause determination +** Future mitigation design +* Incorporating best practices to ensure interoperability, safety/security, stability diff --git a/includes/values.adoc b/includes/values.adoc new file mode 100644 index 0000000..6506739 --- /dev/null +++ b/includes/values.adoc @@ -0,0 +1,17 @@ +== Values + +In my professional environment, I value 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 +*** Have a plan, stick to the plan +*** Future-proofing +** Separate Dev, Test/Staging, Production environments +** Scalability +* Stability and availability over (individual) uptime +** Balancing +** Failover +* Clear communication with customers when affected diff --git a/resume.adoc b/resume.adoc new file mode 100644 index 0000000..e98d44b --- /dev/null +++ b/resume.adoc @@ -0,0 +1,31 @@ += Résumé +Brent Saner | +1 (504) 338-1513 | Lehigh Valley area, PA +Last updated {localdatetime} +:doctype: book +:data-uri: +:imagesdir: images +:sectlinks: +ifeval::["{doctype}" != "article"] +:toc: preamble +:toc2: left +endif::[] +:idprefix: +:toclevels: 7 +:source-highlighter: highlightjs + + +include::includes/intro.adoc[] +(If you are looking for my curriculum vitae (CV) instead, which contains much more detail, that can be found +<>.) + +include::includes/accomplish.adoc[] + +//include::includes/exp.adoc[] + +include::includes/exp2.adoc[] + +include::includes/samples.adoc[] + +include::includes/refs.adoc[] + +include::includes/contact.adoc[]