Skip to content

Commit 8602b68

Browse files
committed
updated with the files from my other test of this
1 parent b3e1332 commit 8602b68

10 files changed

Lines changed: 479 additions & 48 deletions

File tree

.github/workflows/build-resume.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Build Resume
2+
3+
on:
4+
push:
5+
branches: [ main, master ]
6+
pull_request:
7+
branches: [ main, master ]
8+
workflow_dispatch:
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
18+
- name: Install Typst
19+
uses: typst-community/setup-typst@v2
20+
with:
21+
version: latest
22+
23+
- name: Compile resume
24+
run: typst compile resume.typ resume.pdf
25+
26+
- name: Upload PDF artifact
27+
uses: actions/upload-artifact@v4
28+
with:
29+
name: resume-pdf
30+
path: resume.pdf
31+
retention-days: 30
32+
33+
- name: Create Release (on tag)
34+
if: startsWith(github.ref, 'refs/tags/')
35+
uses: softprops/action-gh-release@v1
36+
with:
37+
files: resume.pdf
38+
draft: false
39+
prerelease: false
40+
env:
41+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Compiled PDFs
2+
*.pdf
3+
4+
# Typst cache
5+
.typst/
6+
7+
# OS files
8+
.DS_Store
9+
Thumbs.db
10+
11+
# Editor files
12+
.vscode/
13+
.idea/
14+
*.swp
15+
*.swo
16+
*~

AGENTS.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Agent Instructions & Best Practices for Typst Resume
2+
3+
## Goal
4+
Create a Typst resume mirroring "Morgan Watson-Morris - Resume as of 11-06-2024.pdf".
5+
6+
## Constraints
7+
- **Content**: Exact wording for experience is required. Only typos should be fixed.
8+
- **Style**: Match the visual style of the original PDF (layout, fonts, spacing).
9+
- **Tooling**: Use `typst` CLI to compile and verify.
10+
11+
## Best Practices for Typst
12+
- **Structure**: Use functions for repeated elements like job entries, education blocks, and section headers.
13+
- **Styling**: Define a `resume` function that sets up the document properties (margins, fonts) and wraps the content.
14+
- **Robustness**: Escape special characters if necessary (though Typst handles most well).
15+
- **Iterative Development**: Compile often to ensure syntax is correct.
16+
17+
## Workflow
18+
1. **Extraction**: Get the raw text from the PDF to ensure accuracy.
19+
2. **Templating**: Create the visual structure in Typst.
20+
3. **Population**: Fill in the content.
21+
4. **Verification**: Compile and check for errors.
22+
23+
## Project Structure
24+
- `resume.typ`: Main source file (entry point).
25+
- `src/content.typ`: Resume content data.
26+
- `src/templates.typ`: Visual styling and component functions.
27+
- `base/`: Directory containing original resume files and extracted text.
28+
- `AGENTS.md`: This file.
29+
30+
## Compilation
31+
Run `typst compile resume.typ` to generate the PDF.

README.md

Lines changed: 66 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,66 @@
1-
# resume
2-
My Resume as Code
1+
# Resume
2+
3+
A clean, maintainable Typst-based resume with modular structure and CI/CD pipeline.
4+
5+
## Structure
6+
7+
- `resume.typ` - Main entry point that imports templates and content
8+
- `src/templates.typ` - Reusable template functions (header, section, job, etc.)
9+
- `src/content.typ` - All resume content data (header info, work experience, education)
10+
- `base/` - Original resume documents and text extracts
11+
12+
## Local Development
13+
14+
### Prerequisites
15+
16+
Install Typst:
17+
- macOS: `brew install typst`
18+
- Linux: See [Typst installation guide](https://typst.app/docs/getting-started/installation/)
19+
- Windows: See [Typst installation guide](https://typst.app/docs/getting-started/installation/)
20+
21+
### Compile Resume
22+
23+
```bash
24+
typst compile resume.typ resume.pdf
25+
```
26+
27+
### Watch Mode (auto-compile on changes)
28+
29+
```bash
30+
typst watch resume.typ resume.pdf
31+
```
32+
33+
## Editing
34+
35+
- **Update content**: Edit `src/content.typ` - all resume data is stored here
36+
- **Change styling**: Edit `src/templates.typ` - modify functions to adjust layout, fonts, spacing
37+
- **Structure changes**: Edit `resume.typ` - change the order or add/remove sections
38+
39+
## CI/CD
40+
41+
The repository includes a GitHub Actions workflow (`.github/workflows/build-resume.yml`) that:
42+
43+
- Automatically compiles the resume on push to main/master
44+
- Creates a PDF artifact that can be downloaded
45+
- Creates a release with the PDF when you push a tag
46+
47+
### Manual Workflow Trigger
48+
49+
You can also manually trigger the workflow from the GitHub Actions tab.
50+
51+
### Creating a Release
52+
53+
To create a release with the compiled PDF:
54+
55+
```bash
56+
git tag -a v1.0.0 -m "Resume update"
57+
git push origin v1.0.0
58+
```
59+
60+
## File Organization
61+
62+
The modular structure makes it easy to:
63+
- Update content without touching templates
64+
- Adjust styling without modifying content
65+
- Add new sections or reorganize the resume
66+
- Maintain version control with clear diffs

base/resume_text.txt

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
Software Engineer | 9 Years Professional Experience morgan.wm5@gmail.com | (989) 430-8935
2+
github.com/morganwm
3+
MORGAN WATSON-MORRIS
4+
5+
Overview
6+
• 5 Years at Apple: Infrastructure/Services on Manufacturing data (Current Job)
7+
• 2 Years at Startups: Application/Services
8+
• 2 Years at Dow Chemical: Robotics/Automation
9+
I have a wide variety of experience with different technologies and aspects of the stack, from lower-level services in Go, API backends in Python, Node, and Java, to
10+
CI/CD with both binaries and Docker Images, Kubernetes management both directly and with Helm, AWS infrastructure and orchestration. I also enjoy working with
11+
customers and alongside partner teams to get a better understanding of a problem and hopefully come up with a solution that addresses what matters instead of a
12+
symptom of the root problem.
13+
14+
In my current role within Apple, I have worked on several different applications and services which all share the same goal, taking the enormous amount of
15+
information generated by our factories and allowing people to do something useful. This has taken many forms, a distributed real-time platform written in Go to help
16+
feed fraud detection ML models, backends for advanced analytical platforms in Python to help researchers draw business value, and most recently a new method for
17+
extracting, collecting, and organizing unstructured data to feed the growing wildfire that is AI/ML training.
18+
19+
Work Experience
20+
S O F T W A R E EN G I NE E R – Apple (Manufacturing Data Insight) - Austin, Texas – May 2019 – Present
21+
● Led Design and Implementation of Large Scale Data Ingestion and Movement for Apple Manufacturing Data
22+
Tools: Golang, Linux tooling, Docker, AWS S3, Python, Kafka, and exploration in Flink
23+
○ Led Discovery and Requirements gathering from various hardware and testing customers
24+
○ Led Research into existing network and compute infrastructure at manufacturing sites
25+
○ Designed and Built a lightweight daemon in Go with tunable performance characteristics for use at mfg. sites
26+
○ Designed a fault tolerant system for coordinating the daemons running remotely on-sites
27+
○ Built an initial MVP which served to collect several TB of targeted data for compliance and research purposes
28+
29+
30+
● Led Design and Implementation of Analytics Platform for extremely large-scale data analytics on Apple Manufacturing Data
31+
Tools: Jupyter, Python, Spark, Kubernetes, Docker/Containers, AWS (EKS, EC2, S3, CloudFormation, IAM)
32+
○ Deep technical dive for Spark on K8s
33+
○ Led coordination across teams to set up custom monitoring to ensure consistent performance.
34+
○ Worked with AWS to optimize node “packing” to reduce idle compute.
35+
○ Worked with users to determine requirements for a custom tooling to help them more easily use the platform.
36+
○ Led experimentation for leveraging Rust based Polars data frames for rapid lookup in underlying data files.
37+
38+
● Designed, Architected, Led development for distributed system running on all Apple manufacturing data in real time and batch
39+
Tools: Jupyter, Python, Spark, Kubernetes, Golang, Docker/Containers, Linux/Unix Tooling, AWS (S3)
40+
○ Worked with users and data scientists to determine appropriate scope and requirements
41+
○ Set up various CI, Packaging, and CD pipelines to allow for deployment of services to very secure, isolated sites
42+
○ Lightweight daemon to coordinate movement of large amounts of data from various locations to centralized storage
43+
○ Customer driven tools to allow for ease of interaction with overall platform
44+
○ Set up pipeline to run arbitrary ML Docker Images on a combination of stored and incoming data in real-time
45+
○ Set up ELT pipeline for extracting and aggregating values from manufacturing data
46+
○ Set up ETL Pipelines for managing a nested set structure of apple employees generated from LDAP
47+
48+
● Team Technical Lead for Application Architecture, Infrastructure, and Backend Application Development
49+
Tools: Grafana, Prometheus, Splunk, Spark, Kubernetes, Helm, Golang, Docker/Containers, Linux/Unix Tooling, AWS (S3)
50+
○ Worked with DevOps teams to ensure best practices with CI/CD, HA, atomic/immutable deployments
51+
○ Wrote Custom self-contained forwarder (library and image) to connect monitoring tools to Apple internal Alerting
52+
○ Set up Monitoring/Logging Stack for distributed systems
53+
○ Set up custom CI/CD pipeline for deploying distributed system and monitoring/alerting stack
54+
○ Built standard Docker base image for use on K8s interfacing with Apple internal systems
55+
○ Wrote tools to help make logging, observability, monitoring transparent for developers
56+
○ Contributed to the official Internal Apple PySpark Sample Applications
57+
○ Developed libraries for maintaining compatibility with S3 Crypto for internal Object Store
58+
S E N I O R S O F T W A R E E N G IN EE R , A R C H I T E C TU R E – Social Solutions Global - Austin, Texas – October 2018 – May 2019
59+
● Technical Lead for Ecommerce Team
60+
● Designed and Led Development on Identity Server with integrated MFA and email Domain verification [Cognito, Lambda]
61+
F U L L - S T A C K S O F TW A R E DE V E L O P E R – Social Solutions Global - Austin, Texas – May 2018 – October 2018
62+
● Designed and developed an Enterprise grade (over $1 Million in pipeline per quarter) serverless Ecommerce Platform for SaaS
63+
hosted in AWS [CloudFormation, Lambda, DynamoDB]
64+
● Designed and developed an Account Management platform for Enterprise SaaS applications. [ECS, Docker, GraphQL]
65+
F U L L - S T A C K S O F TW A R E DE V E L O P E R – Axial Commerce - Austin, Texas – October 2017 – May 2018
66+
● Developed and maintained an MVC structured web application with C# .NET Core backend and React.JS frontend, hosted in Azure
67+
● Automated CI/CD pipelines for the website/API and apps to the Google Play Store and Apple App Store [Azure Pipelines]
68+
R O B O T I C S D E V E L O P M E N T E N GI NE E R – The Dow Chemical Company - Midland, Michigan – Dec 2015 - Oct 2017
69+
● Developed .NET applications in C# to control and coordinate various types of hardware including robotic arms
70+
● Wrote a custom database access layer for handling large, runtime-modified SQL tables from multiple systems
71+
● Setup and Maintained automated CI/CD pipelines through TFS and VSTS for quickly and easily deploying code to robotic systems
72+
73+
Education
74+
75+
T H E UN I V E R S I TY O F T E XA S – Austin, Texas - 2011-2015
76+
● Bachelors of Engineering: Mechanical Engineering
77+

mock.pdf

-37.8 KB
Binary file not shown.

mock.typ

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

resume.typ

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#import "src/templates.typ": header, job, overview, resume, section
2+
#import "src/content.typ": education, header-data, overview-description, overview-items, work-experience
3+
4+
#show: resume
5+
6+
#header(
7+
header-data.name,
8+
header-data.title_exp,
9+
header-data.email,
10+
header-data.phone,
11+
header-data.github,
12+
)
13+
14+
#section("Overview")
15+
#overview(overview-items, overview-description)
16+
17+
#section("Work Experience")
18+
19+
#for job-data in work-experience [
20+
#job(
21+
job-data.title,
22+
job-data.company,
23+
job-data.location,
24+
job-data.date,
25+
job-data.tools,
26+
job-data.bullets,
27+
)
28+
]
29+
30+
#section("Education")
31+
32+
#for edu-data in education [
33+
#job(
34+
edu-data.title,
35+
edu-data.company,
36+
edu-data.location,
37+
edu-data.date,
38+
edu-data.tools,
39+
edu-data.bullets,
40+
)
41+
]

0 commit comments

Comments
 (0)