New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Godspeed LaTeX, Long Live Microsoft Word #3
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jfhbrook
changed the title
Switch from LaTeX to Microsoft Word
Godspeed LaTeX, Long Live Microsoft Word
Feb 18, 2024
😪📄💼💻
…On Sat, Feb 17, 2024, 3:09 PM Josh Holbrook ***@***.***> wrote:
When I was in college - roughly 15 years ago - I created my resume using
LaTeX <https://en.wikipedia.org/wiki/LaTeX>, an old typesetting language
used largely by academics working in mathematics and physics. I was a math
minor in college, and the history and aesthetic of LaTeX deeply appealed to
me. I wrote other documents in LaTeX as well in that era, such as my
thesis <https://github.com/jfhbrook/anisotropy>, but my resume was the
one document that remained in LaTeX form well after I outgrew my academic
phase and entered industry as a software engineer.
Over time, my resume evolved from a simple document using a document class
found on a long lost personal website, into a completely custom framework.
The default computer modern
<https://en.wikipedia.org/wiki/Computer_Modern> font gave away to fonts
selected from Google Fonts on the advice of a designer colleague from Gizmodo
Media Group <https://en.wikipedia.org/wiki/Gizmodo_Media_Group>. The
copy-pasted spaghetti expected from a novice developer evolved into a declarative,
modular DSL <https://dev.to/jfhbrook/declarative-latex-apis-4a83> that
decoupled content from presentation. Simple build scripts turned into a
Makefile, and eventually the build leveraged Docker. It became the ideal
way for an autistic software developer to build their resume - almost
manageable.
This was, however, not without difficulties. Styling separate from content
is great, until an edge case in the content calls for custom styling.
Declarative languages are great, until the language isn't fine-grained
enough to support deeply tailored resumes. When issues did come up, I found
myself struggling to remember LaTeX well enough to be effective, as this
document was the only thing I used it for. But these weren't enough to
deter me.
But in 2024, I began a new job hunt, and learned that my beautiful,
modular resume has a serious problem. While human beings enjoy reading a
typeset resume in pdf form, most employers import them into an Applicant
Tracking System <https://en.wikipedia.org/wiki/Applicant_tracking_system>
(ATS) which effectively scans and imports them back into plain text. Once
the content is in the ATS, they're able to use automatic systems - often
driven by AI - to automatically scan resumes for relevancy. These systems
have been around for a long time, but their use has become nearly
ubiquitous over recent years. In the 2010s you could get away with a resume
which didn't import cleanly, but no longer. ATSs target resumes written in
Microsoft Word, meaning most resumes written in LaTeX don't import cleanly
into these systems. Mine, at least, was in serious trouble.
I deeply considered writing a new modular system using Python, yaml and
python-docx-template <https://docxtpl.readthedocs.io/en/latest/>. I even
got as far as converting the DSL to yaml
<https://github.com/jfhbrook/resume/blob/yaml/jobs/procore.yaml> and loading
it into a data structure.
<https://github.com/jfhbrook/resume/blob/yaml/resume/resume.py#L55-L73>.
But swimming upstream was becoming difficult. How was I going to
sufficiently customize my resume given the limitations of the DSL? How was
I to handle the inevitable formatting issues that would come from
procedurally generating a Word document? How could I be confident the
generated documents would parse cleanly in an ATS? Was I ready to maintain
not just a LaTeX class, but a bespoke typesetting system built on Python?
After using LaTeX to typeset my resume for nearly 15 years, I'm finally
adopting the techniques of a "normal person"
<https://www.merriam-webster.com/dictionary/neurotypical>. I consulted
with my siblings, both of which have experience with career counseling, who
taught me how to build a workflow and a template using Microsoft Word. I
moved my content out of my DSL and into an "everything" document, and
manually pared it down into a series of tailored resumes. I tested the
results by uploading them into automated systems, ensuring the import was
reasonably clean. Some things were lost, but some of that was baggage.
Things are better this way.
It feels like the end of an era. I can't say that I love LaTeX in 2024 - I
outgrew the aesthetic long ago. But I did come to love the history I'd
built up over the course of a long-running project. I loved the style I'd
iteratively evolved towards. I loved the simple language I'd developed, and
the modularity it afforded. I loved how it felt to rebel slightly against the
strain of corporate America <https://en.wikipedia.org/wiki/Capitalism>.
But contradictions always come to a head, and all good things come to an
end.
Of course, with endings come new beginnings. I plan on using a standard
workflow for now, prioritizing my resume's effectiveness and expediency
over my coding sensibilities. But as I become more confident in the new
world of Microsoft Word and ATS-friendly documents, I may re-implement some
of the ideas I developed during my LaTeX era. Lot all lessons need to be
lost - at least, one can hope.
------------------------------
You can view, comment on, or merge this pull request online at:
#3
Commit Summary
- dafb4da
<dafb4da>
Fix typo in document language skillset
- f2a227c
<f2a227c>
First version of "everything" resume in docx format
File Changes
(2 files <https://github.com/jfhbrook/resume/pull/3/files>)
- *A* everything.docx
<https://github.com/jfhbrook/resume/pull/3/files#diff-be2f37fc4635f870a8807465cb2f51f2064ca0803d19640da6c69e2b0bfb9001>
(0)
- *M* skills/docs.tex
<https://github.com/jfhbrook/resume/pull/3/files#diff-68ae3fb5752d75f77948373e9bfeb7e43f3b4d55028fc93edaf50d59b5aa0c80>
(2)
Patch Links:
- https://github.com/jfhbrook/resume/pull/3.patch
- https://github.com/jfhbrook/resume/pull/3.diff
—
Reply to this email directly, view it on GitHub
<#3>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAWISLMOXM6GWX5MPC22VLYUE2BZAVCNFSM6AAAAABDNUXUWGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE2DANRVGE2DKMA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When I was in college - roughly 15 years ago - I created my resume using LaTeX, an old typesetting language used largely by academics working in math and physics. I was a math minor in college, and the history and aesthetic of LaTeX deeply appealed to me. I wrote other documents in LaTeX as well in that era, such as my thesis, but my resume was the one document that remained in LaTeX form well after I outgrew my academic phase and entered industry as a software engineer.
Over time, my resume evolved from a simple document using a class found on a long lost personal website into a completely custom framework. The default computer modern font gave way to fonts hand-selected on the advice of a designer colleague from Gizmodo Media Group. The copy-pasted spaghetti expected from a novice developer evolved into a declarative, modular DSL that decoupled content from presentation. Simple build scripts turned into a Makefile, and eventually the build even leveraged Docker. It became the ideal way for an autistic software developer to build their resume - almost manageable.
This was, however, not without difficulties. Styling separate from content is great, until an edge case in the content calls for custom styling. Declarative languages are great, until the language isn't fine-grained enough to support deeply tailored resumes. When issues did come up, I found myself struggling to remember LaTeX well enough to be effective, as this document was the only thing I used it for. But these weren't enough to deter me.
But in 2024, I began a new job hunt, and learned that my beautiful, modular resume has a serious problem. While human beings enjoy reading a typeset resume in pdf form, most employers import them into an Applicant Tracking System (ATS) which effectively scans and imports them back into plain text. Once the content is in the ATS, they're able to use automatic systems - often driven by AI - to scan resumes for relevancy. These systems have been around for a long time, but their use has become nearly ubiquitous over recent years. In the 2010s you could get away with a resume which didn't import cleanly, but no longer. ATSs target resumes written in Microsoft Word, meaning most resumes written in LaTeX don't import cleanly into these systems. Mine, at least, was in serious trouble.
I deeply considered writing a new modular system using Python, yaml and python-docx-template. I even got as far as converting the DSL to yaml and loading it into a data structure.. But swimming upstream was becoming difficult. How was I going to sufficiently customize my resume given the limitations of the DSL? How was I to handle the inevitable formatting issues that would come from procedurally generating a Word document? How could I be confident the generated documents would parse cleanly in an ATS? Was I ready to maintain not just a LaTeX class, but a bespoke typesetting system built on Python?
After using LaTeX to typeset my resume for nearly 15 years, I'm finally adopting the techniques of a "normal person". I consulted with my siblings, both of which have experience with career counseling, who taught me how to build a workflow and a template using Microsoft Word. I moved my content out of my DSL and into an "everything" document, and manually pared it down into a simple two-page resume. I tested the results by copying and pasting the pdf into TextEdit, which is widely considered a good proxy for testing with a real ATS. Some things were lost, but a lot of that was baggage. Things are better this way.
It feels like the end of an era. I can't say that I love LaTeX in 2024 - I outgrew the aesthetic long ago. But I did come to love the history I'd built up over the course of a long-running project. I loved the style I'd iteratively evolved towards. I loved the simple language I'd developed, and the modularity it afforded. I loved how it felt to rebel slightly against the strain of corporate America. But contradictions always come to a head, and all good things come to an end.
Of course, with endings come new beginnings. I plan on using a standard workflow for now, prioritizing my resume's effectiveness and expediency over my coding sensibilities. But as I become more confident in the new world of Microsoft Word and ATS-friendly documents, I may re-implement some of the ideas I developed during my LaTeX era. Lot all lessons need to be lost - at least, one can hope.