simplified the code. re-learned the lessons from my previous custom markdown pre processing. much better...
This commit is contained in:
parent
c08375b657
commit
3350a05b3e
@ -1,3 +1,6 @@
|
||||
|
||||
## Contact Info
|
||||
|
||||
Charles N Wyble
|
||||
Senior Systems Engineer
|
||||
reachableceo@reachableceo.com
|
@ -1,3 +1,4 @@
|
||||
Education
|
||||
|
||||
## Education
|
||||
|
||||
High School Graduate , 2002
|
@ -1,3 +0,0 @@
|
||||
README
|
||||
|
||||
This is my short and sweet resume for recruiters/hiring managers. It's meant primarily for human consumption. It links to more detailed profile (Linkedin).
|
@ -1,3 +1,6 @@
|
||||
|
||||
## Projects
|
||||
|
||||
- Fedora to Debian field switch
|
||||
- Datacenter buildout in 86 days for 8 billion dollars
|
||||
- Global AD build out/PCI compliance
|
@ -1,13 +1,21 @@
|
||||
- Linux: RHEL/Debian/Ubuntu, kickstart, PXE, LDAP, SSSD, RPM/Deb package creation, quotas, extended permissions, AppArmor, SeLinux, Centrify, Tripwire, Integrit, OSSEC. 22 years
|
||||
|
||||
## Skills
|
||||
|
||||
- Linux: RHEL/Debian/Ubuntu, kickstart, PXE, LDAP, SSSD, RPM/Deb package creation, quotas, extended permissions, clustering , AppArmor, SeLinux, Centrify, Tripwire, Integrit, OSSEC. 22 years
|
||||
- Unix: HPUX/Solaris 5 years
|
||||
- Windows: Server (2008 - 2016), Windows client automated deployment (7,8,10,11), Active Directory, Group Policy, WSUS, Certificate Services, AD DNS, AD DHCP, complex multiple forest and domain setups, LDAP. 22 years
|
||||
- Server software: Apache, Postfix, Qmail, Dovecot, Courier, Nginx, Matamo, Discourse, Wordpress, Mautic,Dolibarr, Revive, Firefly, Cloudron, Coolify, Gitea, Gitlab, GitHub, Git, Jenkins, Rundeck, N8N, Mysql,Postgresql, LetsEncrypt, ACME, cfssl. 22 years.
|
||||
- Security: PCI Compliance, security hardening,audits, breach response and mitigation, patch and vulnerability management. 22 years
|
||||
- Networking: HAProxy, Ubiquiti Unifi, Opnsense, Pfsense, HP, Cisco, Arista, Dell, DNS, DHCP, IPAM, PXE, IPS, IDS, GRE, IPSEC. Wireguard, OpenVPN, Nebula, Tailscale, RADIUS. Mostly layer2 data center/campus/access some WAN,firewall,layer3. 22 years
|
||||
- Networking: Linux Virtual Server, HAProxy, Ubiquiti Unifi, Opnsense, Pfsense, HP, Cisco, Arista, Dell, DNS, DHCP, IPAM, PXE, IPS, IDS, GRE, IPSEC. Wireguard, OpenVPN, Nebula, Tailscale, RADIUS. Mostly layer2 data center/campus/access some WAN,firewall,layer3. 22 years
|
||||
- Monitoring: librenms, zabbix, zenoss, nagios 22 years
|
||||
- Storage: NFS, Samba, CIFS, Netapp, ZFS, True/Free NAS, 3par, MSA, Equallogic, EMC, generic iscsi. 22 years
|
||||
- Virtualization: VmWare, HyperV, KVM, Xen. 22 years.
|
||||
- Virtualization: VmWare, Parallels,HyperV, KVM, Xen. 22 years.
|
||||
- Git: branching, merging, multiple teams, external vendors, submodules etc. 15 years
|
||||
- Containerization: LXC, Docker, Compose. 12 years
|
||||
- Packer/Ansible 2 years
|
||||
- Packer/lVault 2 years
|
||||
- Configuration management: Slack, Cfengine, Puppet, FetchApply, Ansible (20 years)
|
||||
- Embedded: Raspberry pi, arduino, seeduino, Lego Mindstorms , 5 years.
|
||||
- Programming/Automation: Bash , J2ME, PHP, Ruby, PowerShell, TCL/TK, Java. 10!years.
|
||||
- Ticket / incident / project management: Jira, ServiceNow,Redmine,RT. 20 years.
|
||||
- Currently learning: GCP, AWS, Azure, Kubernetes, Helm (1 year in dev labs)
|
||||
|
@ -1,3 +1,6 @@
|
||||
|
||||
## Work History
|
||||
|
||||
- Insight Global - CDK Global , Senior Systems Engineer, July 2024 - October 2024
|
||||
- TCS - Apple Computer - Senior Systems Engineer, March 2024 - July 2024
|
||||
- Shein.com - Senior SIte Reliability Engineer, December 2022 - August 2023
|
||||
@ -7,4 +10,7 @@
|
||||
- HostGator - Automation and Escalation Engineer, March 2011 - May 2012
|
||||
- RippleTV - Senior Systems Administrator, October 2008 - Jaunary 2010
|
||||
- Walt Disney Internet Group - Site Reliability Engineer, August 2006 - September 2007
|
||||
- Electronic Clearing House - Senior System Administrator - April 2005 - July 2006
|
||||
- GSI Commerce - Systems Administrator - March 2002 - February 2005
|
||||
- Contracting/consulting - Resident Expert System/Network Admin and Programmer 2002 - 2022
|
||||
|
21
CurrentResume/non-cv/generate-noncv/generateNonCv.sh
Normal file
21
CurrentResume/non-cv/generate-noncv/generateNonCv.sh
Normal file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Combine markdown files into single input file for pandoc
|
||||
|
||||
NonCvResumeInputFiles=(
|
||||
"../../common/@ReachableCEO/Resume/Common/Contact-Info.md"
|
||||
"../@ReachableCEO/Resume/Non-CV/Skills.md"
|
||||
"../@ReachableCEO/Resume/Non-CV/Projects.md"
|
||||
"../@ReachableCEO/Resume/Non-CV/Work-History.md"
|
||||
"../../common/@ReachableCEO/Resume/Common/Education.md"
|
||||
)
|
||||
|
||||
rm ../output/intermediate/CharlesNWybleShortResume.md
|
||||
|
||||
IFS=$'\n\t'
|
||||
for file in "${NonCvResumeInputFiles[@]}"; do
|
||||
cat $file >> ../output/intermediate/CharlesNWybleShortResume.md
|
||||
done
|
||||
unset IFS
|
||||
|
||||
# Run pandoc to generate PDF/DOC into output dir
|
@ -0,0 +1,57 @@
|
||||
|
||||
## Contact Info
|
||||
|
||||
Charles N Wyble
|
||||
Senior Systems Engineer
|
||||
reachableceo@reachableceo.com
|
||||
818 280 7059
|
||||
Austin TX / Raleigh NC / Remote
|
||||
|
||||
## Skills
|
||||
|
||||
- Linux: RHEL/Debian/Ubuntu, kickstart, PXE, LDAP, SSSD, RPM/Deb package creation, quotas, extended permissions, clustering , AppArmor, SeLinux, Centrify, Tripwire, Integrit, OSSEC. 22 years
|
||||
- Unix: HPUX/Solaris 5 years
|
||||
- Windows: Server (2008 - 2016), Windows client automated deployment (7,8,10,11), Active Directory, Group Policy, WSUS, Certificate Services, AD DNS, AD DHCP, complex multiple forest and domain setups, LDAP. 22 years
|
||||
- Server software: Apache, Postfix, Qmail, Dovecot, Courier, Nginx, Matamo, Discourse, Wordpress, Mautic,Dolibarr, Revive, Firefly, Cloudron, Coolify, Gitea, Gitlab, GitHub, Git, Jenkins, Rundeck, N8N, Mysql,Postgresql, LetsEncrypt, ACME, cfssl. 22 years.
|
||||
- Security: PCI Compliance, security hardening,audits, breach response and mitigation, patch and vulnerability management. 22 years
|
||||
- Networking: Linux Virtual Server, HAProxy, Ubiquiti Unifi, Opnsense, Pfsense, HP, Cisco, Arista, Dell, DNS, DHCP, IPAM, PXE, IPS, IDS, GRE, IPSEC. Wireguard, OpenVPN, Nebula, Tailscale, RADIUS. Mostly layer2 data center/campus/access some WAN,firewall,layer3. 22 years
|
||||
- Monitoring: librenms, zabbix, zenoss, nagios 22 years
|
||||
- Storage: NFS, Samba, CIFS, Netapp, ZFS, True/Free NAS, 3par, MSA, Equallogic, EMC, generic iscsi. 22 years
|
||||
- Virtualization: VmWare, Parallels,HyperV, KVM, Xen. 22 years.
|
||||
- Git: branching, merging, multiple teams, external vendors, submodules etc. 15 years
|
||||
- Containerization: LXC, Docker, Compose. 12 years
|
||||
- Packer/lVault 2 years
|
||||
- Configuration management: Slack, Cfengine, Puppet, FetchApply, Ansible (20 years)
|
||||
- Embedded: Raspberry pi, arduino, seeduino, Lego Mindstorms , 5 years.
|
||||
- Programming/Automation: Bash , J2ME, PHP, Ruby, PowerShell, TCL/TK, Java. 10!years.
|
||||
- Ticket / incident / project management: Jira, ServiceNow,Redmine,RT. 20 years.
|
||||
- Currently learning: GCP, AWS, Azure, Kubernetes, Helm (1 year in dev labs)
|
||||
|
||||
|
||||
## Projects
|
||||
|
||||
- Fedora to Debian field switch
|
||||
- Datacenter buildout in 86 days for 8 billion dollars
|
||||
- Global AD build out/PCI compliance
|
||||
- other cool project (go through CV to find) #todo
|
||||
- other cool project (go through CV to find) #todo
|
||||
|
||||
## Work History
|
||||
|
||||
- Insight Global - CDK Global , Senior Systems Engineer, July 2024 - October 2024
|
||||
- TCS - Apple Computer - Senior Systems Engineer, March 2024 - July 2024
|
||||
- Shein.com - Senior SIte Reliability Engineer, December 2022 - August 2023
|
||||
- 3M - Site Reliability Engineer, March 2020 - November 2022
|
||||
- Dell Residency - Senior Systems Engineer, October 2019 - March 2020
|
||||
- TippingPoint - Senior Systems Engineer, March 2012 - June 2019
|
||||
- HostGator - Automation and Escalation Engineer, March 2011 - May 2012
|
||||
- RippleTV - Senior Systems Administrator, October 2008 - Jaunary 2010
|
||||
- Walt Disney Internet Group - Site Reliability Engineer, August 2006 - September 2007
|
||||
- Electronic Clearing House - Senior System Administrator - April 2005 - July 2006
|
||||
- GSI Commerce - Systems Administrator - March 2002 - February 2005
|
||||
- Contracting/consulting - Resident Expert System/Network Admin and Programmer 2002 - 2022
|
||||
|
||||
|
||||
## Education
|
||||
|
||||
High School Graduate , 2002
|
@ -1,12 +0,0 @@
|
||||
# ReachableCEOShellFramework
|
||||
|
||||
## Introduction
|
||||
|
||||
My shell scripting framework developed over 20 years of coding bash professionally.
|
||||
|
||||
This is a collection of code/functions/templates/methodologies I've put together over 20 years of coding.
|
||||
|
||||
* Error handling/tracing
|
||||
* Help
|
||||
* Robust CLI argument handling
|
||||
|
@ -1,12 +0,0 @@
|
||||
#<project name>
|
||||
|
||||
|
||||
## Introduction
|
||||
|
||||
This is a project.It does stuff..
|
||||
|
||||
## Assumptions
|
||||
|
||||
## Requirements
|
||||
|
||||
## Dependencies
|
@ -1,33 +0,0 @@
|
||||
function DebugMe() {
|
||||
[[ $script_debug = 1 ]] && "$@" || :
|
||||
|
||||
#to turn debugging on, set script_debug=1
|
||||
#to turn debugging off, set script_debug=0
|
||||
|
||||
# be sure to append || : or || true here or use return 0, since the return code
|
||||
# of this function should always be 0 to not influence anything else with an unwanted
|
||||
# "false" return code (for example the script's exit code if this function is used
|
||||
# as the very last command in the script)
|
||||
|
||||
#This function does nothing when script_debug is unset or empty, but it executes the
|
||||
#given parameters as commands when script_debug is set. Use it like this:
|
||||
|
||||
#debugme logger "Sorting the database"
|
||||
#database_sort
|
||||
#debugme logger "Finished sorting the database, exit code $?"
|
||||
|
||||
|
||||
# * print commands to be executed to stderr as if they were read from input
|
||||
# (script file or keyboard)
|
||||
# * print everything before any ( substitution and expansion, …) is applied
|
||||
set -v
|
||||
|
||||
# * print everything as if it were executed, after substitution and expansion is applied
|
||||
# * indicate the depth-level of the subshell (by default by prefixing a + (plus) sign to
|
||||
# the displayed command)
|
||||
# * indicate the recognized words after word splitting by marking them like 'x y'
|
||||
# * in shell version 4.1, this debug output can be printed to a configurable file
|
||||
#descriptor, rather than sdtout by setting the BASH_XTRACEFD variable.
|
||||
set -x
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function LocalHelp()
|
||||
{
|
||||
echo "$0 is <description here>"
|
||||
echo "$0 takes <num> arguments: "
|
||||
echo "1) <stuff>"
|
||||
echo "2) <other stuff>"
|
||||
echo "<additional info on arguments...>:"
|
||||
echo "<put>"
|
||||
echo "<stuff>"
|
||||
echo "<here>"
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function LookupKV()
|
||||
{
|
||||
|
||||
#Arguments:
|
||||
#$1 <path to key/value table>
|
||||
#$2 unique record identifier
|
||||
|
||||
#Returns:
|
||||
#Variable/array containing all the values in the record
|
||||
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function PreflightCheck()
|
||||
{
|
||||
|
||||
#Common things I check for in the scripts I write.
|
||||
|
||||
#export curr_host="$(hostname)"
|
||||
#export curr_user="$USER"
|
||||
#export host_check="$(echo $curr_host | grep -c <desired hostname>)"
|
||||
#export user_check="$(echo $curr_user | grep -c <desired username>)"
|
||||
|
||||
#if [ $host_check -ne 1 ]; then
|
||||
# echo "Must run on <desired host>."
|
||||
# error_out
|
||||
#fi
|
||||
|
||||
#if [ $user_check -ne 1 ]; then
|
||||
# echo "Must run as <desired user>."
|
||||
# error_out
|
||||
#fi
|
||||
|
||||
#if [ "$ARG_COUNT" -ne <the right num> ]; then
|
||||
# help
|
||||
# error_out
|
||||
#fi
|
||||
|
||||
#Your additional stuff here...
|
||||
echo "All checks passed...."
|
||||
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
bail_out()
|
||||
#Exit code
|
||||
{
|
||||
echo "Exiting...."
|
||||
exit 0
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
function error_out()
|
||||
{
|
||||
echo "Bailing out. See above for reason...."
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
function handle_failure() {
|
||||
local lineno=$1
|
||||
local fn=$2
|
||||
local exitstatus=$3
|
||||
local msg=$4
|
||||
local lineno_fns=${0% 0}
|
||||
if [[ "$lineno_fns" != "-1" ]] ; then
|
||||
lineno="${lineno} ${lineno_fns}"
|
||||
fi
|
||||
echo "${BASH_SOURCE[0]}: Function: ${fn} Line Number : [${lineno}] Failed with status ${exitstatus}: $msg"
|
||||
}
|
||||
|
||||
trap 'handle_failure "${BASH_LINENO[*]}" "$LINENO" "${FUNCNAME[*]:-script}" "$?" "$BASH_COMMAND"' ERR
|
@ -1,41 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
function StrictMode()
|
||||
{
|
||||
|
||||
# Standard strict mode and error handling boilderplate..
|
||||
|
||||
# This is a function I include and execute in every shell script that I write.
|
||||
# It sets up a bunch of error handling odds and ends
|
||||
|
||||
# Bits and pieces Sourced from (as best I recall):
|
||||
# * https://news.ycombinator.com/item?id=24727495
|
||||
# * many other hacker news / slashdot etc posts over the years
|
||||
# * https://www.tothenew.com/blog/foolproof-your-bash-script-some-best-practices/
|
||||
# * https://translucentcomputing.com/2020/05/unofficial-bash-strict-mode-errexit/
|
||||
# * http://redsymbol.net/articles/unofficial-bash-strict-mode/
|
||||
# * the school of hard knocks... (aka my code failures...)
|
||||
|
||||
#Here's the beef (as the commercial says..)
|
||||
|
||||
#use errexit (a.k.a. set -e) to make your script exit when a command fails.
|
||||
#add || true to commands that you allow to fail.
|
||||
set -o errexit
|
||||
|
||||
# Use set -o nounset (a.k.a. set -u) to exit when your script tries to use undeclared
|
||||
# variables.
|
||||
set -o nounset
|
||||
|
||||
#Use set -o pipefail in scripts to catch (for example) mysqldump fails
|
||||
#in e.g. mysqldump |gzip.
|
||||
#The exit status of the last command that threw a non-zero exit code is returned
|
||||
set -o pipefail
|
||||
|
||||
#Function tracing...
|
||||
set -o functrace
|
||||
|
||||
|
||||
export PS4='(${BASH_SOURCE}:${LINENO}): - [${SHLVL},${BASH_SUBSHELL},$?] $ '
|
||||
|
||||
}
|
@ -1,66 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
#Framework variables are read from hee
|
||||
source vars/FrameworkVars
|
||||
|
||||
#Boilerplate and support functions
|
||||
FrameworkIncludeFiles="$(ls -1 --color=none includes/*)"
|
||||
|
||||
IFS=$'\n\t'
|
||||
for file in ${FrameworkIncludeFiles[@]}; do
|
||||
. "$file"
|
||||
done
|
||||
unset IFS
|
||||
|
||||
|
||||
if [[ ProjectIncludes = 1 ]]; then
|
||||
ProjectIncludeFiles="$(ls -1 --color=none project-includes/*)"
|
||||
IFS=$'\n\t'
|
||||
for file in ${ProjectIncludeFiles[@]}; do
|
||||
. "$file"
|
||||
done
|
||||
unset IFS
|
||||
fi
|
||||
|
||||
|
||||
#####
|
||||
#Core framework functions...
|
||||
#####
|
||||
|
||||
|
||||
while [ ! -z "$1" ];do
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
LocalHelp
|
||||
;;
|
||||
-k1|--key1)
|
||||
shift
|
||||
KEY1="$1"
|
||||
echo "key 1 is $KEY1"
|
||||
;;
|
||||
-k2|--key2)
|
||||
shift
|
||||
KEY2="$1"
|
||||
echo "key 2 is $KEY2"
|
||||
;;
|
||||
*)
|
||||
echo "Displaying $0 help..."
|
||||
LocalHelp
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
|
||||
function main()
|
||||
{
|
||||
StrictMode
|
||||
|
||||
if [ PreflightCheck = 1 ]; then
|
||||
PreflightCheck
|
||||
fi
|
||||
|
||||
#Your custom logic here....
|
||||
echo "Custom logic here..."
|
||||
}
|
||||
|
||||
main
|
@ -1,5 +0,0 @@
|
||||
#Global Variables used by the framework
|
||||
|
||||
export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
|
||||
export ProjectIncludes="0"
|
||||
export PreflightCheck="0"
|
@ -1,19 +0,0 @@
|
||||
#Place (primary/unique) key as very first argument on each record below
|
||||
|
||||
#Value Fields are (in order), (reference KEY_(VARIABLE) names in the code):
|
||||
#1)valuex (description)
|
||||
#2)valuey (description)
|
||||
#3)valuez (description)
|
||||
|
||||
#An example:
|
||||
#unique key of serverfqdn
|
||||
#key of: subnet , value of: 10.10.10.0/24
|
||||
#key of: gateway, value of: 10.10.10.1
|
||||
|
||||
#serverfqdn,10.10.10.0/24,10.10.10.1
|
||||
|
||||
#Place your records below:
|
||||
|
||||
#primary/uniquekey,#value
|
||||
primarykey1,valuex,valuey,valuez
|
||||
primarykey2,valuex,valuey,valuez
|
Loading…
Reference in New Issue
Block a user