+
+
| Owner |
My Small Business Company, INC Westminster, CO, USA |
@@ -55,10 +64,17 @@ Transportation company servicing FedEX Ground Contract
+
+
+
Owner
+
My Small Business Company, INC Westminster, CO, USA
+ 2002 - 2016
+
+
Transportation company servicing FedEX Ground Contract
- From my position as a dock worker I successfully obtained a delivery contract and started this company.
-- Developed Payroll and financial analysis systems using python and Google Sheets.
+- Developed Payroll and financial analysis systems using a Python to Google Sheets ETL pipeline.
- Created training systems that met DOT guidelines.
- I successfully grew the company to 3 full time drivers and then merged it with P R Delivery INC.
@@ -69,4 +85,3 @@ Transportation company servicing FedEX Ground Contract
CompTIA A+ Certifications, 2026 - Current
-
diff --git a/markdown/projects.md b/markdown/projects.md
index 9f4438c..197c93a 100644
--- a/markdown/projects.md
+++ b/markdown/projects.md
@@ -1,13 +1,21 @@
Projects
-pkgstash - https://github.com/ewpt3ch/pkgstash
+
+**pkgstash** - [github.com/ewpt3ch/pkgstash](https://github.com/ewpt3ch/pkgstash)
Starting from a desire to reduce duplication in update management for my local arch linux systems I built a sparse caching server. It reduces external traffic in a local network that has multiple arch linux systems. By replicating the structure of a full mirror it provides a drop in replacement for any standard mirror. Clients add this in their mirrorlist and pacman just works. Configuration is done with TOML which mimics the syntax of pacman.conf closely. Singleflight it used for preventing duplicate cache downloads if multiple clients are updating at the same time.
Go, golang.org/x/sync/singleflight, github.com/BurntSushi/toml, Github actions
-resume-builder - https://github.com/ewpt3ch/resume-builder
+**resume-builder** - [github.com/ewpt3ch/resume-builder](https://github.com/ewpt3ch/resume-builder)
+
Automates the process of creating distributable resumes from easy to edit markdown files. Uses woodpecker ci or github actions to create html and pdf then publish them on a website.
Python, uv, woodepecker ci, jinja2, htmltopdf, mdtohtml
+
+**FlaskFDX** - [gitea.ewpt3ch.dev/ewpt3ch/flaskfdx](https://gitea.ewpt3ch.dev/ewpt3ch/flaskfdx)
+
+I engineered this internal analytics platform to streamline the evaluation of FedEX service provider contracts. I built a custom ETL pipeline to ingest excel reports into a SQLite database enabling structured queries into driver and route performance. This tool was developed to replace manual auditing processes and provided the data foundation used during contract rate negotiations.
+
+Python, Flask, SQLite, Git
diff --git a/markdown/skills-full.md b/markdown/skills-full.md
new file mode 100644
index 0000000..33092ea
--- /dev/null
+++ b/markdown/skills-full.md
@@ -0,0 +1,13 @@
+
+
Skills
+
+- Go, Python, SQL, Javascript, C, Shell
+- Postgres, sqlite
+- Linux, Docker, Git
+- HTML, CSS, Flask
+- MS Office, Excel, Google Workspace
+- MDM
+- Strategic planning, Tactical planning
+
+
+
diff --git a/markdown/skills.md b/markdown/skills.md
index 33092ea..65cca97 100644
--- a/markdown/skills.md
+++ b/markdown/skills.md
@@ -1,13 +1,11 @@
Skills
-- Go, Python, SQL, Javascript, C, Shell
-- Postgres, sqlite
-- Linux, Docker, Git
-- HTML, CSS, Flask
-- MS Office, Excel, Google Workspace
-- MDM
-- Strategic planning, Tactical planning
+- Languages: Go, Python, SQL, Javascript, C, Shell
+- Backend & Web: PostgreSQL, REST API design, Flask, SQLAlchemy, SQLite, FastAPI - testdriven.io
+- Frontend: React - testdriven.io, Javascript
+- Infrastructure & Devops: Linux, Docker, Git, CI/CD, Nginx
+- Cloud Platform: AWS - boot.dev, GCP - boot.dev, Digital Ocean
diff --git a/src/main.py b/src/main.py
index 5d06823..4dff7e7 100644
--- a/src/main.py
+++ b/src/main.py
@@ -22,13 +22,55 @@ def main():
if not srcdir.is_dir():
return f'Error: "{srcdir}" is not a directory or does not exist'
- filelist = list(srcdir.glob("*.md"))
-
# mk destdir if not exist
if not destdir.is_dir():
destdir.mkdir()
- # process filelist
+ # process modular resume
+ srclist = (
+ "contact.md",
+ "summary.md",
+ "skills.md",
+ "projects.md",
+ "education.md",
+ "experience.md",
+ )
+
+ chunks = []
+ for md in srclist:
+ print("processing modular resumd")
+
+ file = Path.joinpath(srcdir, md)
+ with file.open(mode="r", encoding="utf-8") as f:
+ chunks.append(f.read())
+
+ mdsrc = "".join(chunks)
+ rawhtml = mdtohtml(mdsrc)
+ base_name = "resume-mod"
+
+ # pretty pdf
+ web_template = j2_env.get_template("resume-web.template")
+ web_html = web_template.render(name=name, content=rawhtml)
+ web_pdf_path = destdir / f"{base_name}-web.pdf"
+ htmltopdf(web_html, web_pdf_path)
+
+ # ats friendly pdf
+ ats_template = j2_env.get_template("resume-ats.template")
+ ats_html = ats_template.render(name=name, content=rawhtml)
+ ats_pdf_path = destdir / f"{base_name}-ats.pdf"
+ htmltopdf(ats_html, ats_pdf_path)
+
+ # generate web html with download bar
+ download_template = j2_env.get_template("download.template")
+ download_bar = download_template.render(
+ web_pdf=f"{base_name}-web.pdf", ats_pdf=f"{base_name}-ats.pdf"
+ )
+
+ pubhtml = web_template.render(name=name, content=rawhtml, download=download_bar)
+
+ # process full resume source files
+ filelist = list(srcdir.glob("*.md"))
+ filelist = [f for f in filelist if "resume" in f.stem]
for infile in filelist:
print(f"processing '{infile}'...")
@@ -52,14 +94,6 @@ def main():
ats_pdf_path = destdir / f"{base_name}-ats.pdf"
htmltopdf(ats_html, ats_pdf_path)
- # generate web html with download bar
- download_template = j2_env.get_template("download.template")
- download_bar = download_template.render(
- web_pdf=f"{base_name}-web.pdf", ats_pdf=f"{base_name}-ats.pdf"
- )
-
- pubhtml = web_template.render(name=name, content=rawhtml, download=download_bar)
-
html_path = destdir / f"{base_name}.html"
with html_path.open(mode="w", encoding="utf-8") as f:
f.write(pubhtml)