Skip to content

Commit f144680

Browse files
committed
refactor: restructure data layer and improve imports organization
1 parent 32306dc commit f144680

File tree

12 files changed

+483
-869
lines changed

12 files changed

+483
-869
lines changed

.eleventy.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
// START 11TY imports
2-
import eleventyNavigationPlugin from "@11ty/eleventy-navigation";
3-
import { InputPathToUrlTransformPlugin } from "@11ty/eleventy";
4-
import { eleventyImageTransformPlugin } from "@11ty/eleventy-img";
5-
import { EleventyHtmlBasePlugin } from "@11ty/eleventy";
6-
import pluginRss from "@11ty/eleventy-plugin-rss";
2+
import { EleventyHtmlBasePlugin, InputPathToUrlTransformPlugin } from "@11ty/eleventy";
3+
import { eleventyImageTransformPlugin } from "@11ty/eleventy-img";
4+
import eleventyNavigationPlugin from "@11ty/eleventy-navigation";
5+
import pluginRss from "@11ty/eleventy-plugin-rss";
76
// END 11TY imports
87

98
// START LibDoc imports
10-
import libdocConfig from "./_data/libdocConfig.js";
11-
import libdocFunctions from "./_data/libdocFunctions.js";
9+
import libdocConfig from "./_data/libdocConfig.js";
10+
import libdocFunctions from "./_data/libdocFunctions.js";
1211
// END LibDoc imports
1312

1413
export default function(eleventyConfig) {
@@ -34,6 +33,7 @@ export default function(eleventyConfig) {
3433
// START COLLECTIONS
3534
eleventyConfig.addCollection("myTags", libdocFunctions.collections.myTags);
3635
eleventyConfig.addCollection("postsByDateDescending", libdocFunctions.collections.postsByDateDescending);
36+
eleventyConfig.addCollection("pages", libdocFunctions.collections.pages);
3737
// END COLLECTIONS
3838

3939
// START SHORTCODES

_data/bookmarks.js

Lines changed: 113 additions & 269 deletions
Large diffs are not rendered by default.

_data/collections/pages.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

_data/experience.js

Lines changed: 113 additions & 155 deletions
Original file line numberDiff line numberDiff line change
@@ -1,157 +1,115 @@
1-
export default {
2-
positions: [
3-
{
4-
id: "fidelity-investments",
5-
company: "Fidelity Investments",
6-
title: "Principal Software, DevOps, and Cloud Engineer",
7-
period: "2023 - 2025",
8-
location: "Remote",
9-
type: "Full-time",
10-
description: "Served as a technical leader and cloud architect, designing and implementing enterprise-scale cloud solutions while mentoring teams on AWS best practices and modern DevOps methodologies.",
11-
achievements: [
12-
"Architected comprehensive AWS solutions for enterprise applications, including designing secure networking topologies and multi-account strategies",
13-
"Developed and implemented robust IAM policies and CloudFormation templates adhering to strict financial industry security standards",
14-
"Designed and built a full AWS CDK platform enabling teams to rapidly deploy standardized, compliant infrastructure",
15-
"Engineered Kubernetes-based deployment solutions leveraging EKS, Helm charts, and custom operators for application management",
16-
"Rebuilt and optimized the Jenkins Core platform, increasing build efficiency and reducing pipeline execution times",
17-
"Created a cloud orchestration CLI tool that simplified cross-account resource management and deployment workflows",
18-
"Successfully deployed and managed Discourse forums on Alpine Linux containers in Kubernetes, ensuring high availability and performance",
19-
"Implemented infrastructure-as-code practices across multiple teams, significantly reducing configuration drift and deployment errors",
20-
"Designed and implemented automated security scanning and compliance checking within CI/CD pipelines",
21-
"Led knowledge-sharing sessions and developed documentation to elevate team capabilities in cloud-native technologies"
22-
],
23-
technologies: ["AWS", "AWS CDK", "CloudFormation", "Kubernetes", "EKS", "Helm", "Jenkins", "Docker", "IAM", "Terraform", "Python", "Node.js", "Discourse", "Alpine Linux"]
24-
},
25-
{
26-
id: "bitbuilder-cloud",
27-
company: "BitBuilder Cloud, LLC",
28-
title: "Founder, Cloud Architect, CIO",
29-
period: "2021 - Present",
30-
location: "Remote",
31-
type: "Self-employed",
32-
description: "Launched a Cloud Hosting and Consulting private SaaS company with a focus on providing a vendor-agnostic, e2e encrypted, highly-available, and globally distributed hyper-converged platform for cost-efficient resiliency against hostile attackers.",
33-
infrastructure: {
34-
primary: "HPE DL385 Gen10 with dual AMD Epyc 7601, 512GB RAM, 30TB NVMe",
35-
development: "HPE DL380 Gen8 for testing and experimentation",
36-
totalResources: "2TB+ RAM, 320 cores, 64TB NVMe storage"
37-
},
38-
achievements: [
39-
"Single-handedly built core services on co-located custom bare metal servers with over 2TB RAM, 320 cores, 64TB NVMe storage",
40-
"Containerized and load-balanced several high-profile organizations with 1M+ global visitors/day",
41-
"Orchestrated global scaling via multi-cloud hybrid overlay layer based on custom k8s distribution and immutable Linux systems",
42-
"Implemented constant monitoring and observability using Grafana, Prometheus, VictoriaMetrics, NetData, and Jaeger"
43-
],
44-
technologies: ["Kubernetes", "Docker", "Linux", "Bare Metal", "ZFS", "NVMe", "Grafana", "Prometheus", "VictoriaMetrics", "NetData", "Jaeger", "Multi-cloud", "Hybrid Infrastructure"]
45-
},
46-
{
47-
id: "rsvp-act",
48-
company: "RSVP & ACT, Inc",
49-
title: "SRE, SysAdmin, and Platforms Engineer",
50-
period: "April 2019 - 2021",
51-
location: "Remote",
52-
type: "Full-time",
53-
roles: [
54-
{
55-
title: "Site Reliability Engineer, Level II",
56-
description: "Directly responsible for identifying capacity and efficiency constraints, as well as engineering secure, highly-available, horizontally scalable platforms to run production environment apps, services, databases, and infrastructure.",
57-
achievements: [
58-
"Worked closely with dev teams and other departments to assess needs, constraints, and manual toil, then crafted automated and efficient solutions",
59-
"Architected, deployed, and managed dynamically scaling, secure, and fully version-controlled bare-metal Kubernetes clusters",
60-
"Responsible for all migrations from legacy systems to Kubernetes",
61-
"Deployed and managed self-hosted GitLab instance with DevOps build pipelines and automatic blue-green deployments",
62-
"Implemented monitoring, alerting, logging, tracing, and observability tools",
63-
"Implemented and enforced GitLab-based Infrastructure-as-Code procedures and pipelines",
64-
"Managed and performance-tuned +3.5TB PostgreSQL database cluster",
65-
"Deployed and managed multiple host, network, and container security tools and vulnerability scanners"
66-
]
67-
},
68-
{
69-
title: "SysAdmin",
70-
description: "Directly responsible for and fully owned the management, maintenance, and support of all internal and external IT infrastructure.",
71-
achievements: [
72-
"Simplified and standardized various independent hypervisors with a centralized Proxmox cluster on ZFS and a 56G InfiniBand FC SAN",
73-
"Deployed W2019 AD server environment to centralize user accounts and management of 50+ workstations",
74-
"Mitigated two ransomware hacks within the first month of employment",
75-
"Implemented organization-wide VPN (using Wireguard), VLANs, and security measures",
76-
"Engineered isolated, zero-trust access for 3rd-party external developers",
77-
"Implemented customized Windows PE & Linux based iPXE/network boot servers"
78-
]
79-
}
80-
],
81-
technologies: ["Kubernetes", "PostgreSQL", "MySQL", "SQLite", "GitLab", "Docker", "Proxmox", "ZFS", "InfiniBand", "Ansible", "Terraform", "Wireguard", "VPN", "VLAN"]
82-
},
83-
{
84-
id: "perspectives",
85-
company: "Perspectives.org",
86-
title: "IT Director",
87-
period: "January 2018 - April 2019",
88-
location: "Remote",
89-
type: "Full-time",
90-
description: "Perspectives is an international NGO which provides a college level educational course with an average 250+ classes with 10k students per year.",
91-
achievements: [
92-
"Led IT team and India-based dev team while developing 5 year vision roadmap to rebuild legacy .NET 3.5 application into 18 modern portals",
93-
"Increased cloud hosting capacity by 10x while reducing budget by 50%",
94-
"Reduced minimum page load time from 5 seconds to 0.8 seconds",
95-
"Built DRM-secured offline-enabled streaming video player desktop app in Go"
96-
],
97-
volunteerWork: {
98-
period: "2012-2014",
99-
achievements: [
100-
"Redesigned and developed modern replacement for perspectives.org home page",
101-
"Created online Learning Management System that reduced overhead by over 90%",
102-
"Architected automatic, horizontally scaling container orchestration platform"
103-
]
104-
},
105-
technologies: ["Go", "Docker", "Rancher", "AWS", "Cloud Orchestration", "iPXE", "Container Orchestration", ".NET", "Performance Optimization", "DRM", "Video Streaming", "LMS"]
106-
},
107-
{
108-
id: "att",
109-
company: "AT&T Corp.",
110-
title: "Professional Application Developer",
111-
period: "March 2014 - June 2017",
112-
location: "Dallas, TX",
113-
type: "Full-time",
114-
description: "Full stack application engineer building custom web-based tools and services for various internal departments.",
115-
achievements: [
116-
"Solely responsible for managing entire project pipeline before implementing Scrum",
117-
"Led team-wide migration from Rails/MySQL stack to Node.js, Angular.js, and MongoDB",
118-
"Engineered Docker-based DevOps and deployment pipeline",
119-
"Built large-scale Order Status application with decoupled microservice pipeline",
120-
"Mastered functional programming in JavaScript for high-performance pipelines"
121-
],
122-
technologies: ["Node.js", "Angular.js", "MongoDB", "Docker", "Rails", "MySQL", "JavaScript", "Functional Programming", "Microservices", "DevOps", "CI/CD", "REST APIs"]
123-
}
124-
],
125-
priorExperience: [
126-
{
127-
id: "tacc-support",
128-
company: "TACC Support",
129-
period: "2007-2013",
130-
description: "Owned computer repair / IT consulting / MSP company for 5+ years, with as many as 5 employees at a time.",
131-
fullName: "Technicians Against Computer Cruelty"
132-
},
133-
{
134-
id: "ticketdashboard",
135-
company: "TicketDashboard",
136-
period: "2013-2014",
137-
description: "Launched business around redesigned ticket manager as multi-tenant SaaS solution.",
138-
technologies: ["MongoDB", "Node.js", "Python", "Angular", "Bootstrap"]
139-
},
140-
{
141-
id: "diab",
142-
company: "DIAB, INC",
143-
description: "Virtualized entire US-based operations multi-site server infrastructure (~30 bare-metal servers) on ESXi."
144-
},
145-
{
146-
id: "ipeople",
147-
company: "iPeople.com",
148-
description: "Provided technical support to help customers leverage proprietary ODBC drivers to access archaic hospital database systems (Meditech)."
149-
}
1+
// Current positions
2+
const fidelity = {
3+
id: "fidelity",
4+
company: "Fidelity Investments",
5+
title: "Principal Software, DevOps, and Cloud Engineer",
6+
period: "2023 - 2025",
7+
location: "Remote",
8+
type: "Full-time",
9+
technologies: [
10+
"AWS",
11+
"AWS CDK",
12+
"CloudFormation",
13+
"Kubernetes",
14+
"EKS",
15+
"Helm",
16+
"Jenkins",
17+
"Docker",
18+
"IAM",
19+
"Terraform",
20+
"Python",
21+
"Node.js",
22+
"Discourse",
23+
"Alpine Linux",
15024
],
151-
earlyCareer: [
152-
"Built first website at 11, on a legal pad, four years after the birth of the Internet",
153-
"At 17 was writing HL7 (medical data exchange) protocols in MS DOS-based FoxPro 2.1",
154-
"At 19 accepted position as Windows Network Administration/SysAdmin",
155-
"Launched and ran TACC Support for five years, managing up to five employees"
156-
]
25+
};
26+
27+
const bitbuilder = {
28+
id: "bitbuilder",
29+
company: "BitBuilder Cloud, LLC",
30+
title: "Founder, Cloud Architect, CIO",
31+
period: "2021 - Present",
32+
location: "Remote",
33+
type: "Self-employed",
34+
hardware: {
35+
primary: "HPE DL385 Gen10 with dual AMD Epyc 7601, 512GB RAM, 30TB NVMe",
36+
development: "HPE DL380 Gen8",
37+
totalResources: "2TB+ RAM, 320 cores, 64TB NVMe storage",
38+
},
39+
technologies: ["Kubernetes", "Docker", "Linux", "Bare Metal", "ZFS", "NVMe", "Grafana", "Prometheus", "VictoriaMetrics", "NetData", "Jaeger"],
40+
};
41+
42+
const rsvp = {
43+
id: "rsvp",
44+
company: "RSVP & ACT, Inc",
45+
title: "SRE, SysAdmin, and Platforms Engineer",
46+
period: "April 2019 - 2021",
47+
location: "Remote",
48+
type: "Full-time",
49+
technologies: ["Kubernetes", "PostgreSQL", "MySQL", "SQLite", "GitLab", "Docker", "Proxmox", "ZFS", "InfiniBand", "Ansible", "Terraform", "Wireguard"],
50+
};
51+
52+
const perspectives = {
53+
id: "perspectives",
54+
company: "Perspectives.org",
55+
title: "IT Director",
56+
period: "January 2018 - April 2019",
57+
location: "Remote",
58+
type: "Full-time",
59+
volunteerPeriod: "2012-2014",
60+
technologies: ["Go", "Docker", "Rancher", "AWS", "iPXE", ".NET", "LMS"],
61+
};
62+
63+
const att = {
64+
id: "att",
65+
company: "AT&T Corp.",
66+
title: "Professional Application Developer",
67+
period: "March 2014 - June 2017",
68+
location: "Dallas, TX",
69+
type: "Full-time",
70+
technologies: ["Node.js", "Angular.js", "MongoDB", "Docker", "Rails", "MySQL", "JavaScript"],
71+
};
72+
73+
// Prior experience (< 8 years ago)
74+
const priorExperience = [
75+
{
76+
id: "tacc",
77+
company: "TACC Support",
78+
fullName: "Technicians Against Computer Cruelty",
79+
period: "2007-2013",
80+
description: "Computer repair / IT consulting / MSP company with up to 5 employees",
81+
},
82+
{
83+
id: "ticketdashboard",
84+
company: "TicketDashboard",
85+
period: "2013-2014",
86+
description: "Multi-tenant SaaS ticket management solution",
87+
technologies: ["MongoDB", "Node.js", "Python", "Angular", "Bootstrap"],
88+
},
89+
{
90+
id: "diab",
91+
company: "DIAB, INC",
92+
description: "Virtualized ~30 bare-metal servers on ESXi",
93+
},
94+
{
95+
id: "ipeople",
96+
company: "iPeople.com",
97+
description: "Technical support for hospital database systems (Meditech)",
98+
},
99+
];
100+
101+
const currentPositions = [fidelity, bitbuilder];
102+
const pastPositions = [rsvp, perspectives, att];
103+
const allPositions = [...currentPositions, ...pastPositions];
104+
105+
export default {
106+
fidelity,
107+
bitbuilder,
108+
rsvp,
109+
perspectives,
110+
att,
111+
priorExperience,
112+
currentPositions,
113+
pastPositions,
114+
allPositions,
157115
};

_data/libdocFunctions.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,15 @@ export default {
209209
//return a.inputPath.localeCompare(b.inputPath); // sort by path - ascending
210210
//return b.inputPath.localeCompare(a.inputPath); // sort by path - descending
211211
});
212+
},
213+
pages: function(collectionsApi) {
214+
return collectionsApi.getAll()
215+
.filter((item) => item.data.eleventyNavigation !== undefined)
216+
.sort((a, b) => {
217+
const orderA = a.data.eleventyNavigation.order || 0;
218+
const orderB = b.data.eleventyNavigation.order || 0;
219+
return orderA - orderB;
220+
});
212221
}
213222
},
214223
shortcodes: {

0 commit comments

Comments
 (0)