I know I know, yet another resume generation project. The ones I've encountered built in python are either inactive or didn't quite address what I wanted in a quick generation engine to update my resume for different job postings. I became frustrated with other tools and declined to pay money for an online service, so here we are.
This is a CLI tool which allows for defining resume content in a single YAML file and then generating PDF, HTML, or LaTeX rendered resumes from it. The idea is to write the configuration once, then be able to render it in a variety of different iterations.
Some key details:
It comes with a few templates and color schemes that you can customize.
For academic use, the LaTeX output gives you precise typesetting control.
There's a Python API if you want to generate resumes programmatically. It's designed to have a limited surface area to not expose inner workings, only the necessary structures as building blocks.
The codebase has over 90% test coverage and is fully type-hinted. I adhered to a functional core, imperative shell architecture (after reading a recent post about it here!)
Example YAML:
template: resume_base
full_name: Jane Doe
job_title: Software Engineer
email: jane@example.com
config:
color_scheme: "Professional Blue"
body:
experience:
- title: Senior Engineer
company: TechCorp
start: 2022
end: Present
description: |
- Led microservices architecture serving 1M+ users
- Improved performance by 40% through optimization
Very interesting, I particularly enjoyed the handling of memory reduction with the Interned<T> comparison. How do you go about finding open source projects which expose fascinating data such as this one?
These are often the same classification of individual who tend to modify their viewpoints towards “change is progressing rapidly in an area that I don’t understand and this scares me.” Anytime an expert in a particular area has their expertise challenged or even threatened by a new technology it is perfectly human to react in a way that is defensive towards the perceived threat. Part of growth as a human is recognizing our perceived biases and attempting to mitigate them, hopefully extending this into other areas of our lives as well. After all, NIMBYS probably started out with reasonable justifications for why they want to keep their communities the way they currently are - it’s comfortable and it works, and they’re a significant contributor to the community. Any external “threat” to this concept becomes elevated to a moral crusade against the invaders who are encroaching upon their land, when really they’re jousting against windmills.
I think confronting those volunteers that maintain open-source software with arguments such as "you just do not want to learn new things" , "are scared of change", etc. is very unfair. IMHO new ideas should prove themselves and not pushed through because google wants it or certain enthusiastic groups believe this is the future. If Rust is so much better, people should just build cool stuff and then it will be successful anyway.
Overall, this whole situation seems entirely weird to me. All this stuff such as Unix, Linux, and C ecosystem was build by C programmers and maintained for decades mostly voluntarily, while most of the industry pushed into other directions (with a gigantic influx of money). It is completely amazing that Linux become so successful against all the odds. Certainly it also then had a lot industry support, but I used it already before most of this and witnessed all the development. But somehow, C programmers are now suddenly portrayed as the evil gatekeepers, not stepping aside fast enough, because some want to see change. In the past, the people wanting to see something new in the open-source community would need to convince the community by building better things, not by pushing aggressively into existing projects.
I believe the Rust for Linux project was started by a Linux guy, rather than a Rust guy, and many of the Rust for Linux maintainers have come at this from a perspective of "we are Linux maintainers who want to use Rust" rather than "we are Rust users who want our code to be in Linux".
I think it's important to be wary of simplistic narratives (such as "C vs Rust"). Maintaining a complex piece of software comes with tradeoffs and compromises, and the fewer languages you have to worry about the better. On the other hand, the Asahi Linux team have been quite explicit that without Rust, they wouldn't have achieved a fraction of what they have. So clearly there is a lot of value in RfL for Linux as a whole, if implemented well. And that value is reflected in the decision from Linus that RfL should be supported, at least for now.
> many of the Rust for Linux maintainers have come at this from a perspective of "we are Linux maintainers who want to use Rust" rather than "we are Rust users who want our code to be in Linux".
This might be true, but do you have any actual quantifiable evidence for it? Because FWIW, from what I as an outsider see (mainly in threads like this), all the drama looks very much like "we are Rust users who want our code to be in Linux".
It is entirely unclear to me where the value actually is. It seems google is funding it for some reason. And some people clearly have a lot of opinions that this is "the future". People had similarly strong opinions about various other things in the past.
It's worth reading Asahi Lina's posts about writing a driver in a Linux - she is very explicit that what they've achieved would not have been possible without Rust.
In fairness, this is one team working on one project, but if they're attributing much of their success to Rust, it's probably worth listening to and understanding why, particularly as I don't believe they were particularly evangelistic about Rust before this project.
I have no idea about the Google funding, but Marcan's blog post is very explicit they they do not have any corporate sponsorship. If you believe that to be untrue, please explain your reasoning rather than spreading unsubstantiated rumours.
This isn't the first time a new language is proposed for the kernel though.
At some point there was some brief discussion for C++ in the kernel and that was essentially immediately killed by Linus. And he was essentially right.
Yeah I certainly don’t want to mischaracterize anyone here and I attempted to communicate how this is really a knee-jerk, human reaction to something new making inroads into a space people have extensive expertise in. New ideas additionally shouldn’t be derided based upon the poor behavior of some in the community.
Fair, I acknowledge I may have misrepresented this group who are against the Rust community as not being experts in this this space; they certainly are. Rust doesn’t have to be the answer but if we treat others (namely Rust supporters) and their solutions as dead-on-arrival because it’s implemented in a technology we’re not entirely familiar with how can we get to a point where we’re solving difficult problems? Especially if we create an unwelcoming space for contribution?
May be a poor example, it’s what came to mind initially. I don’t think the end results are at all the same but I think the initial emotions around why you may balk at something new entering your community have parallels to the topic at hand.
reply