jsonresume / jsonresume.org Goto Github PK
View Code? Open in Web Editor NEWThe mono repo that builds the homepage, utils, ui components, registry and anything else
Home Page: https://jsonresume.org
The mono repo that builds the homepage, utils, ui components, registry and anything else
Home Page: https://jsonresume.org
The registry had a Raw Format functionality mentioned here that can render one's gist named resume.json
as json, yaml, and txt formats. The json and yaml renderings are fine, but renderings in the txt format incorrectly renders the user's location, phone, and email keys from their gist.
The location key renders with the placeholder:
Pittsburgh, PA 15201
, the phone key renders with the placeholder (555) 555-5555
, and the email key renders with the placeholder[email protected]
.
Examples:
https://registry.jsonresume.org/tylermneher.txt
to render my (@tylermneher) resume in txt format returns the following:
Tyler M. Neher
Pittsburgh, PA 15201
(555) 555-5555
[email protected]
PROFESSIONAL SUMMARY
============================
Cybersecurity professional with a background in data science and software development.
WORK HISTORY
============================
2021-01-14 – undefined
Neher Data Systems
Owner
Providers of bespoke and customized technology solutions for B2C, B2B, and B2G clients and customers. Multi-jurisdiction and SAM Federally verified contractor of data science, cybersecurity, database engineering, and software development consulting services and solutions. Enterprise integrators and MSPs for multiple leading SaaS, PaaS, and IDaaS offerings.
,
2021-06-14 – 2022-11-01
AT&T, Inc.
Senior Cybersecurity
Responsible for cyber security areas across products, services, infrastructure, networks, and/or applications while providing protection for AT&T, its customers and its vendors/partners. Works with senior team members on various projects relating to the protection of devices, customers, assets, data, information technology, and networks. Supports innovation, strategic planning, technical proof of concepts, testing, lab work, and various other technical program management related tasks associated with the cyber security programs.
,
2019-09-01 – 2020-03-01
Memorial Sloan Kettering Cancer Center
Correlative Science Associate
Managed twenty-five unique, complex correlative registries, non-therapeutic trials, and correlative studies included in the Prostate Cancer Clinical Trials Consortium (PCCTC) research portfolio. Developed and implemented improved data management systems and external reporting tools using Excel, VBA, Python 3, SQL, and PowerBI.
,
2017-06-01 – 2019-04-01
Hackensack Meridian Health
Biorepository Technologist
Managed the acquisition, processing, and handling of over three-thousand surgically resected solid tumor samples destined for storage in the HMH Biorepository. Implemented and administered the BioFortis Labmatrix research database system across our six campus sites. Was the study lead and federal project manager’s point person onsite for our NIH/NCI Clinical Proteomic Tumor Analysis Consortium (CPTAC) Phase III solid tumor collections contract.
VOLUNTEER
============================
2024-04-16 – undefined
Borough of Tinton Falls, New Jersey
Green Team Advisory Committee Appointed Member
The Green Team works with the Governing Body, Environmental Commission and Sustainable Jersey, a nonprofit organization that provides tools, training and financial incentives to support communities as they pursue sustainability programs. These programs are designed to foster resiliency, reduce waste and improve the environment for future generations.
+ Appointed on the 16th of April 2024.
+ Appointment is for a one-year term.
,
2019-09-27 – undefined
Permanent Mission of Saint Kitts and Nevis to the United Nations
General Assembly Delegation Member
Active member of the delegation from the Federation of Saint Kitts and Nevis to the United Nations General Assembly in New York.
+ 74th General Assembly meeting with the Federation's Prime Minister Dr. Timothy S. Harris.
+ 77th General Assembly meeting the Federation's Prime Minister Dr. Terrance M. Drew.
EDUCATION
============================
2010-09-01 – 2014-05-01
University of Central Florida
Biology and Zoology - Bachelors of Science
,
2020-01-01 – 2020-07-01
Rutgers University
Data Science - Certificate
AWARDS
============================
Microsoft Azure AI Fundamentals [AI-900] – 2024-05-04
Microsoft
,
Microsoft Azure Fundamentals [AZ-900] – 2022-09-02
Microsoft
CERTIFICATES
============================
Microsoft Azure AI Fundamentals [AI-900] – 2024-05-04
Microsoft
,
Microsoft Azure Fundamentals [AZ-900] – 2022-09-02
Microsoft
SKILLS
============================
Data Science Platforms and Tools
-------------
+ Python3
+ Anaconda
+ Julia
+ Pandas
+ Numpy
+ Pyenv
+ Conda
+ Jupyter
+ Plotly
+ Relational Database Systems
+ SQL
+ Postgres
+ noSQL
+ MongoDB
+ AWS RDS
+ SQLAlchemy
+ Databricks
Microsoft
-------------
+ Microsoft Azure
+ Entra
+ Exchange Online
+ MSAL
+ Microsoft Graph
+ Microsoft 365
+ OneDrive for Business
+ Teams
+ To Do
+ Bookings
+ Stream
+ Visio
+ PowerPoint
+ Planner
+ Power Automate
+ Power Apps
+ Project
+ Access
+ Outlook
+ Excel
+ Word
+ OneNote
+ SharePoint Online
+ Forms
+ Lists
Business Intelligence and Dashboarding
-------------
+ PowerBI
+ PowerBI Server
+ Tableau
+ Tableau Server
+ Plotly
Web Development Tools and Security
-------------
+ HTML
+ CSS
+ JavaScript
+ ReactJS
+ OIDC
+ SAML
+ SSO
https://registry.jsonresume.org/thomasdavis.txt
to render the resume for @thomasdavis in txt format returns the following:
Thomas Davis
Pittsburgh, PA 15201
(555) 555-5555
[email protected]
PROFESSIONAL SUMMARY
============================
I'm a full stack web developer who can build apps from the ground up. I've worked mostly at startups so I am used to wearing many hats. I am a very product focused developer who prioritizes user feedback first and foremost. I'm generally very flexible when investigating new roles.
WORK HISTORY
============================
2020-05-05 – undefined
Tokenized
Senior Javascript Developer
Tokenized is a Bitcoin wallet for issuing, managing and trading digital tokens. I built out the front end which was packaged as an electron app. It was a difficult frontend to build because we store the users keys locally and used them to sign transactions and contracts.
+ React
+ Redux
+ SCSS
+ Product
,
2018-03-01 – 2020-01-01
Blockbid
Senior Javascript Developer
Blockbid is an Australian crypto currency exchange. I started off on the frontend but eventually became lead tech and worked on every moving piece of the exchange. I really enjoyed working with liquidity providers and connecting their platforms to help us achieve liquid markets.
+ React, Apollo, Styled Components
+ Node.js / Rails
+ Docker / Heroku / GCP
+ Used Figma for design and UX work
+ Optimizing markets with tens of millions of rows using SQL.
,
2016-01-01 – 2018-01-01
Listium
Developer
Built a very large and complex React / Redux application. It works on all platforms and has IOS/Android builds due to it being a PWA. (wrapped it in React Native though only implementing a WebView)
+ Worked with Postgres, Redis and Dynamodb for storage.
+ Hosted on a mixture of Heroku Apps and EC2 servers.
+ Caching by Fastly and Cloudflare
+ Hybrid app supported on all platforms
,
2011-01-08 – undefined
Cdnjs
Co-Founder
Following Google's CDN for jQuery, we decided to start a CDN for the less popular Javascript frameworks. The CDN is community moderated and open source on GitHub. We secured a partnership with Cloudflare who now supports the infrastructure.
+ Millions of sites use the CDN in production
+ Larger market share than Yahoo's, Microsoft's and Google's javascript content distribution networks
+ We serve hundreds of billions request a month
+ Contains over 3000 popular Javascript libraries
+ Millions of developers visit the site per year
,
2014-04-01 – 2016-01-01
Electronic Frontier Foundation
Developer
Hired to take EFF's campaigning to the next level by building an action centre in Ruby on Rails. The action centre is built around some large open source tools that lower the barrier to entry when contacting congress.
+ Developed new tools for contacting congress
+ Brainstormed campaign ideas to raise maximum awareness about issues
+ Lots of social networking integration
,
2013-03-08 – 2015-01-09
Earbits
CTO
Started off as a front end developer but took on the role of CTO in early 2013. The application frontend is built with Javascript and organized as a single page application that talks to a collection of Rails web servers which are connected to MongoDB.
+ Managed a small team of developers and designers
+ Built the entire frontend application with Backbone.js
+ Transferred all of the infrastructure from Heroku to AWS
,
2014-04-01 – undefined
JSON Resume
Founder
JSON Resume is a community driven open source initiative to create a JSON based standard for resumes. There is no reason why there can't be a common standard for writing a resume that can be extended with an ecosystem of open source tools.
+ This resume is built with JSON Resume
+ Over 3000 stars on Github
+ Community developed themes
+ Tens of thousands of users
,
2013-06-01 – 2016-01-01
Taskforce.is
Developer
Worked on many politically charged campaigns against mass surveillance. Not only technically challenging work but also a lot of networking and getting my hands dirty with politics. Our biggest project was "TheDayWeFightBack"..
+ Generated 37,000,000 banner views
+ 100, 000 phone calls to congress
+ 500, 000 emails
+ 250, 000 signatures
,
2013-01-01 – undefined
Drone Hire
Co-Founder
An international directory of civilian drone / UAV operators for hire. Services include aerial photography, aerial video, mapping, surveying, precision agriculture, real estate photography, remote inspections and infrared imaging. Our plan is to be the place to go when looking for UAV/Drone services. The website is built in Backbone.js and API is built with Node.js and Postgres.
+ The site and blog combined have managed to receive over 200,000 visitors in 2014.
,
2011-01-01 – 2014-01-01
BackboneTutorials.com
Founder
I write tutorials and blog post regarding the popular Javascript framework Backbone.js. The tutorials cover a range of topics regarding front end development aimed at beginners, experts and anyone in between.
+ Over two million unique visitors a year
+ 25,000+ ebook downloads
+ 300,000+ Youtube views
,
2011-01-01 – 2012-06-01
Ephox
Front-end Developer
Ephox is a worldwide company who is heavily involved with the development of TinyMce and enterprise editors. My primary role included building front-end widgets and applications. Worked on a major product using Backbone.js as a base. Heavily involved in UI/UX design and wire-framing. Also spend a lot of time designing API specifications and documentation.
EDUCATION
============================
2008-02-12 – 2009-12-12
The University of Queensland
Software Engineering (incomplete) - Bachelors
AWARDS
============================
Defender of the Internet –
Fight For The Future
SKILLS
============================
Frontend
-------------
+ HTML / JSX
+ SCSS / CSS / BEM / Styled Components
+ Javascript / Typescript
+ React / Next
+ Redux / Apollo
Backend
-------------
+ Node
+ Ruby
+ Python
+ Postgres
+ Redis
+ Serverless
Devops
-------------
+ AWS
+ G Cloud
+ Heroku
+ Caching
Every time I search "json resume" on the interwebs I end up looking at this page because it is the first search result.
This website has a lot of authority. I suggest that we show the sample.resume.json there.
E.g. I was not even aware that the specification already has keywords
for projects
. I think it's super handy for us developers, to list all the technologies we worked with on projects (it is what recruiters look for).
But I assume that even template authors do not know about it if it's not on jsonresume.org. This may explain why many templates do not make use of projects
: #1 (comment).
I just made a contribution to the default template. I really like that it just pulls in resume-schema as a development dependency and then runs software tests with sample.resume.json
and also builds a demo page from it. We could do the same thing here.
Implement and document a new flag in the meta section to allow bypassing of schema validation when publishing to the registry. This feature aims to provide flexibility for edge cases and experimental resumes that do not conform to the current schema.
Using the great work of @scottnath https://github.com/scottnath/jsonresume-component
Add instructions on how to run turbo repo
Add instructions on how to build a React template (registry ui package) (explain that fs
doesn't work on vercel hosting)
Add instructions for AI projects
for tracking purposes i figured i'd file a ticket here for the readme ambition to generate a pdf version for generated resumes, tho it seems this might not be as trivial as pandoc resume.html -o resume.pdf
.
that said, i suppose there'd be intermediate options like going thru .odt
format, which depending on the theme might be more successful.
I think we need to fix all security issues asap. Probably that means removing some or many themes. But the possibility to inject stuff into handlebars templating engine is really problematic, as far as I can tell (just make a resume.json that contains an injection and read out our environment etc.).
Is your feature request related to a problem? Please describe.
The render engineer seems to ignore newline symbols such as, so they render as one paragraph:
summary: "line 1\nline 2\nline 3\nline 4"
Describe the solution you'd like
Summary sections could be better as one paragraph, but I think it is good to leave it to the users, so I suggest the render engine doesn't ignore newline (\n), tab (\t), etc.
Describe alternatives you've considered
Use <br>
instead
Additional context
no
please bring back theme called "full"
Originally posted by @sachsgiri in #36 (comment)
I created https://github.com/apps/jsonresume-bot which is necessary to automate the changeset release and publication flow. I asked for the installation of the app to this repo. Please approve. I also made a request to move the ownership of the app to jsonresume
. It would be good if you accepted I could still administrate the app afterwards.
The error I get is
> @jsonresume/[email protected] lint /home/ajax/repos/jsonresume.org/themes/papirus
> eslint .
Oops! Something went wrong! :(
ESLint: 8.54.0
You are linting ".", but all of the files matching the glob pattern "." are ignored.
If you don't want to lint these files, remove the pattern "." from the list of arguments passed to ESLint.
If you do want to lint these files, try the following solutions:
* Check your .eslintignore file, or the eslintIgnore property in package.json, to ensure that the files are not configured to be ignored.
* Explicitly list the files from this glob that you'd like to lint on the command-line, rather than providing a glob as an argument.
I've lost too much time trying to fix tonight so I've disabled their individual lints in my PR.
From my understanding, there are no js files in those folders, so generally you would have to set eslint . --ext cjs
etc but that seems to do nothing also.
It could be related to a minor or patch update to eslint.
Describe the bug
On the getting started page, it's stated:
You can access more raw formats of your resume too!
JSON - https://registry.jsonresume.org/thomasdavis.json
YAML - https://registry.jsonresume.org/thomasdavis.yaml
TEXT - https://registry.jsonresume.org/thomasdavis.txt
But when i try to fetch it from Javascript i only get CORS error: Access to fetch at 'https://registry.jsonresume.org/thomasdavis.json' from origin 'http://127.0.0.1:1234' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
To Reproduce
I have tested using only fetch
fetch("https://registry.jsonresume.org/thomasdavis.json")
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
And fetch where im setting the header Access-Control-Allow-Origin': '*'
var requestOptions: RequestInit = {
method: 'GET',
headers: {
'Access-Control-Allow-Origin': '*',
'Accept': 'application/json'
},
};
var test = fetch("https://registry.jsonresume.org/thomasdavis.json", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
Expected behavior
I would expect that i can fetch the raw format of the resume to be able to use the resume in more then one way.
I just had a look at the setup for the preview images for https://jsonresume.org/themes/. The images are generated via a function using https://github.com/thomasdavis/screenshot. The results are cached for 1 day. When I look into vercels billing report, the function calls to this function still are the biggest burden on the plan. Might be the case that the data cache is too small, might be the case that these computations are very expensive. I would stop generating these images on the fly (since the themes usually will change way less often than daily) and generate them, when I rebuild the homepage / registry, because if the registry uses a new version of a theme, it can only happen, when we rebuild the registry after changes to master
. In order to make this process of prerendering these images at build time easy, I would first migrate from jekyll to astro where doing things like "calling puppeteer to generate some images on build time" is a piece of cake.
This we like. We want to fix it and bring it back.
Originally posted by @levino in #29 (comment)
Users might get errors when trying to render resumes with deprecated / removed themes. Currently they get a misleading error message, claiming that they mistyped their username but actually they just have to use another theme. We need to handle the missing theme error appropriately and show a useful error message.
I recently migrated one of my websites to astro. I think it is perfect for simple websites and "the new jekyll". Way better than nextjs because of simplicity and content collections.
I put this here as a basis for discussion, following @thomasdavis remarks.
I personally think turbo build is a bit overkill for this project. However it is fun to play with it, so I am grateful for its usage here. I would configure remote caching via vercel though, in order to really get the advantages turbo build promises.
Currently the registry has some special routes like /interview
, /jobs
etc. We should host these routes on a different domain or stop using the root for the cv generation (e.g. /{GITHUB_USERNAME}
) since if someones username would be "jobs" they just could not create a cv.
This is an dedicated to people who wish to request themes to be added to the hosted registry.
It is linked from the registry when a theme is not found when trying to render.
Note: recently we disabled a bunch of legacy themes from working with the registry. This will unfortunately/regrettably affect users using these themes. They were disabled because their latest versions were to out of date and concerned many critical
errors in their code.
I will personally be keeping an eye an out for themes which are still being regularly used on the registry and fixing them as soon as possible.
If you were negatively affect, apologies again, please post the theme you want re-instated.
Currently looking into bringing back:
I tweaked the deployment configs in the vercel ui a bit. Just leaving this here as an FYI for @thomasdavis. I tried to leverage turborepo more. I hope it does not break things. Please close this issue once you have read it.
I will be out for today now, got some other stuff to do. Have a nice day!
I suggest to run ci scripts for everything but would start with linting. I will open a PR. This ci script will also serve as an example on how to bootstrap the project and run the linting job (later then tests and builds as well).
The pages router from next is still supported but the app router really is better. One can migrate incrementally. Also we should update to next@14.
The jekyll gem that use to work has had issues recently so I've decided to migrate the original homepage to Next.js so we can more easily re-use all the Javascript components anyway.
It's almost finished, I mostly just have the blog and meta tags to do.
I'm also going to include rearranging and updating the documentation.
and try to tackle these issues also
I think it would make sense to create and manage an npm scope @jsonresume
and then have things like @jsonresume/cli
, @jsonresume/theme-stackoverflow
etc. What do you think?
Describe the bug
Thanks for this work!
Just a minor detail: the "About" section of the repo in https://github.com/jsonresume/resume-website is pointing to the wrong repo(❌https://github.com/jsonresume/jsonresume)
See below:
It would be useful to be able to visit
https://registry.jsonresume.org/thomasdavis?theme=random
and it redirect you to a random theme.
This could be as simple as making ?theme=random
a special endpoint, and returning something like
<!DOCTYPE html>
<html lang="en">
<head>
<script>
// redirect
options = ["kendall", "onepage", "simple"];
window.location.href =
"https://registry.jsonresume.org/thomasdavis?theme=" +
options[Math.floor(Math.random() * options.length)];
</script>
</head>
</html>
I put in this issue to discuss the topic and remember it for the future. Will also do some work on it, when I find the time, but first lets discuss a bit.
We should add a Readme / docs section, describing conditions for themes. One important aspect is the fact that the usage of nodes fs.readFile
and fs.readFileSync
has been shown to be problematic. To this end we also need to decide on a strategy.
I recommend that we continue to forbid the usage of the fs
package in our codebase altogether (expect for build tools of course). Using fs
during runtime will always be problematic. One fact is of course, that any such code will not work in the browser or other environments but nodejs. I think it is never a good idea to runtime read a file that is part of the source code. Runtime reads of files should rather be for files that were created by the same code shortly before like some intermediary result file for image generation or something in order to keep memory low or so. There are good reasons to use bundlers for using .css or other non-JS-files in js codebases and these bundlers are very good at managing the dependencies and packaging all necessary files into js files in order for the code to run in the browser or wherever there is JavaScript.
I did some work on this approach. I have an open PR where I use vite to bundle a css file into my output js file to then be able to render an html string with appropriate css inlined. It turned out that vite has this handy !inline
postfix when importing files, which was exactly what I needed in my case. The file itself keeps its .css
ending and linting and formatting works nicely. The only "downside" is, that the code has to be transpiled and bundled, before it can be used. As it is TypeScript and also uses some ECMA stuff like import
that has to be done anyhow, so I think the downside is limited. This approach will basically do the "readFile" during build and not on runtime which is just way safer.
In order for maintainers of third party themes to make their code compatible, we should have some example code ready. Of course this approach will also work with handlebars etc. if need be, even though I think handlebars is a bad technology, especially for our project because it tends to mess with the global variables.
Right now some maintainers have "fixed" their code so it does not use nodes fs
any more. That is a workaround for the time being but sooner or later, theses fixes will be rolled back because people forgot what the problem about it was. If we then delete our pnpm-lock.json
and with that use the new version that reintroduces the usage of fs
, our code will break and we might not even see it during the reviewing of the PR. In order to prevent this, we need to think about regression tests that will fail if these bugs are reintroduced. However I would not prefer to have some kind of test that "looks for the usage of fs
and then fails" but rather a way to reproduce our issues in the deployment with vercel during the run of our test:e2e
script.
Just a schema that describes job descriptions, it would be great to have llm's digest it to improve AI utilities.
I've created an initial version here https://github.com/jsonresume/jsonresume.org/blob/master/apps/registry/scripts/jobs/gpted.js#L72
Also from the discussion about react themes: Probably I should link my theme. It has some quirks to support multiple languages though, but the default English version should be backwards compatible.
Is your feature request related to a problem? Please describe.
I have multiple versions of resume, in different languages, but I see the registry is hardcoded the file name has to be resume.json
, so I can only render a version of resume at one time.
Describe the solution you'd like
Can we have one more parameter to specify the file name of the gist that the registry fetches from?
Describe alternatives you've considered
No alternatives
Additional context
I politely suggest to rename the master
branch to main
. Everybody does it these days, it is the new default of github (because BLM, I think).
When a users resume.json doesn't conform to the schema. The error message isn't easy to understand. It also doesn't report well when it is simply a JSON validation problem.
My resume works with some themes:
But not others:
Most importantly, it does not work with mine, as I tweaked for accessibility and to meet my needs, and published:
There is no explanation. Can we please have an error message to the effect of:
These would be really helpful, as the schema has changed and a bunch of themes are now broken. Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.