diff --git a/dist/core/jrs-resume.js b/dist/core/jrs-resume.js index 96bd8fc..304088f 100644 --- a/dist/core/jrs-resume.js +++ b/dist/core/jrs-resume.js @@ -36,7 +36,7 @@ Definition of the JRSResume class. */ JRSResume = (function(superClass) { - var clear, format; + var clear; extend1(JRSResume, superClass); @@ -135,7 +135,7 @@ Definition of the JRSResume class. /** Return the resume format. */ - format = function() { + JRSResume.prototype.format = function() { return 'JRS'; }; diff --git a/dist/core/jrs-theme.js b/dist/core/jrs-theme.js index 4c4f136..8b08be9 100644 --- a/dist/core/jrs-theme.js +++ b/dist/core/jrs-theme.js @@ -49,7 +49,7 @@ Definition of the JRSTheme class. { action: 'transform', render: this.render, - major: true, + primary: true, ext: 'html', css: null } @@ -61,7 +61,7 @@ Definition of the JRSTheme class. { action: 'transform', render: this.render, - major: true, + primary: true, ext: 'pdf', css: null } diff --git a/dist/generators/html-pdf-cli-generator.js b/dist/generators/html-pdf-cli-generator.js index 70bab36..c93aea2 100644 --- a/dist/generators/html-pdf-cli-generator.js +++ b/dist/generators/html-pdf-cli-generator.js @@ -43,7 +43,7 @@ Definition of the HtmlPdfCLIGenerator class. HtmlPdfCLIGenerator.prototype.onBeforeSave = function(info) { var safe_eng; - if (info.ext !== 'html') { + if (info.ext !== 'html' && info.ext !== 'pdf') { return info.mk; } safe_eng = info.opts.pdf || 'wkhtmltopdf'; diff --git a/dist/generators/json-generator.js b/dist/generators/json-generator.js index 2ff715e..a2105ec 100644 --- a/dist/generators/json-generator.js +++ b/dist/generators/json-generator.js @@ -6,7 +6,7 @@ Definition of the JsonGenerator class. */ (function() { - var BaseGenerator, FS, JsonGenerator, _, + var BaseGenerator, FJCV, FS, JsonGenerator, _, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, hasProp = {}.hasOwnProperty; @@ -16,8 +16,10 @@ Definition of the JsonGenerator class. _ = require('underscore'); + FJCV = require('fresh-jrs-converter'); - /** The JsonGenerator generates a JSON resume directly. */ + + /** The JsonGenerator generates a FRESH or JRS resume as an output. */ module.exports = JsonGenerator = (function(superClass) { extend(JsonGenerator, superClass); @@ -26,20 +28,10 @@ Definition of the JsonGenerator class. JsonGenerator.__super__.constructor.call(this, 'json'); } - JsonGenerator.prototype.keys = ['imp', 'warnings', 'computed', 'filt', 'ctrl', 'index', 'safeStartDate', 'safeEndDate', 'safeDate', 'safeReleaseDate', 'result', 'isModified', 'htmlPreview', 'safe']; - JsonGenerator.prototype.invoke = function(rez) { - var replacer; - replacer = function(key, value) { - if (_.some(this.keys, function(val) { - return key.trim() === val; - })) { - return void 0; - } else { - return value; - } - }; - return JSON.stringify(rez, replacer, 2); + var altRez; + altRez = FJCV['to' + (rez.format() === 'FRESH' ? 'JRS' : 'FRESH')](rez); + return altRez = FJCV.toSTRING(altRez); }; JsonGenerator.prototype.generate = function(rez, f) { diff --git a/package.json b/package.json index e1f0071..873068c 100644 --- a/package.json +++ b/package.json @@ -84,6 +84,7 @@ }, "devDependencies": { "chai": "*", + "dir-compare": "0.0.2", "fresh-test-resumes": "^0.6.0", "grunt": "*", "grunt-cli": "^0.1.13", diff --git a/src/core/jrs-resume.coffee b/src/core/jrs-resume.coffee index daa9294..14e49d5 100644 --- a/src/core/jrs-resume.coffee +++ b/src/core/jrs-resume.coffee @@ -105,7 +105,7 @@ class JRSResume extends AbstractResume ###* Return the resume format. ### - format = () -> 'JRS' + format: () -> 'JRS' diff --git a/src/core/jrs-theme.coffee b/src/core/jrs-theme.coffee index 4734824..e8e60c9 100644 --- a/src/core/jrs-theme.coffee +++ b/src/core/jrs-theme.coffee @@ -51,7 +51,7 @@ class JRSTheme files: [{ action: 'transform', render: this.render, - major: true, + primary: true, ext: 'html', css: null }] @@ -60,7 +60,7 @@ class JRSTheme files: [{ action: 'transform', render: this.render, - major: true, + primary: true, ext: 'pdf', css: null }] diff --git a/src/generators/html-pdf-cli-generator.coffee b/src/generators/html-pdf-cli-generator.coffee index 1710e7a..29884af 100644 --- a/src/generators/html-pdf-cli-generator.coffee +++ b/src/generators/html-pdf-cli-generator.coffee @@ -31,7 +31,8 @@ module.exports = class HtmlPdfCLIGenerator extends TemplateGenerator ###* Generate the binary PDF. ### onBeforeSave: ( info ) -> - return info.mk if info.ext != 'html' + #console.dir _.omit( info, 'mk' ), depth: null, colors: true + return info.mk if info.ext != 'html' and info.ext != 'pdf' safe_eng = info.opts.pdf || 'wkhtmltopdf' safe_eng = 'phantomjs' if safe_eng == 'phantom' if _.has engines, safe_eng diff --git a/src/generators/json-generator.coffee b/src/generators/json-generator.coffee index 584c165..228838d 100644 --- a/src/generators/json-generator.coffee +++ b/src/generators/json-generator.coffee @@ -7,27 +7,19 @@ Definition of the JsonGenerator class. BaseGenerator = require './base-generator' FS = require 'fs' _ = require 'underscore' +FJCV = require 'fresh-jrs-converter' -###* The JsonGenerator generates a JSON resume directly. ### +###* The JsonGenerator generates a FRESH or JRS resume as an output. ### module.exports = class JsonGenerator extends BaseGenerator constructor: () -> super 'json' - keys: ['imp', 'warnings', 'computed', 'filt', 'ctrl', 'index', - 'safeStartDate', 'safeEndDate', 'safeDate', 'safeReleaseDate', 'result', - 'isModified', 'htmlPreview', 'safe' ] - invoke: ( rez ) -> - - # TODO: merge with FCVD - replacer = ( key,value ) -> # Exclude these keys from stringification - if (_.some @keys, (val) -> key.trim() == val) - return undefined - else - value - JSON.stringify rez, replacer, 2 + altRez = FJCV[ 'to' + if rez.format() == 'FRESH' then 'JRS' else 'FRESH' ] rez + altRez = FJCV.toSTRING( altRez ) + #altRez.stringify() generate: ( rez, f ) -> - FS.writeFileSync( f, this.invoke(rez), 'utf8' ) + FS.writeFileSync f, @invoke(rez), 'utf8' return diff --git a/src/verbs/build.coffee b/src/verbs/build.coffee index 315e279..1214da1 100644 --- a/src/verbs/build.coffee +++ b/src/verbs/build.coffee @@ -232,7 +232,6 @@ _single = ( targInfo, theme, finished ) -> # Otherwise this is an ad-hoc format (JSON, YML, or PNG) that every theme # gets "for free". else - theFormat = _fmts.filter( (fmt) -> return fmt.name == targInfo.fmt.outFormat )[0]; diff --git a/test/expected/modern/modern-html.css b/test/expected/modern/modern-html.css new file mode 100644 index 0000000..76f4e4c --- /dev/null +++ b/test/expected/modern/modern-html.css @@ -0,0 +1,204 @@ + +* { + box-sizing: border-box; +} + +main { + display: block; +} + +body { + font-family: 'Helvetica Neue', 'Helvetica', 'Segoe UI', 'Calibri', 'sans-serif'; + font-size: 15px; + color: #333; + line-height: 1.42857143; + background-color: #F0F0F0; + margin: 0; + padding: 0; +} + +/* Typical page borders are awkward when rendered to PDF. */ +body.pdf { + background-color: #FFFFFF; +} + +/* Adobe or wkhtmltopdf has issues with the
tag, so we use
for +the PDF case,
for the HTML case, and style both via an ID. */ +#main { + background-color: #FFF; + margin: 10px; + padding: 10px; + border: 1px solid #E6E6E6; +} + +body.pdf > #main { + border: none; +} + +#container > header { + padding-top: 6em; + padding-bottom: 1em; +} + +body.pdf #container > header { + padding: 0; +} + +#main > #container > section { + margin-left: 5em; + position: relative; + display: block; +} + +span.fa +{ + position: absolute; + top: 4px; + left: -50px; + font-size: 30px; + color: #BFC1C3; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #EEE; +} + +.tenure, .keywords { + font-size: 75%; +} + +h1 { + margin: 0; + font-size: 46px; +} + +h2 { + font-size: 24px; + color: #BFC1C3; + text-transform: uppercase; + font-weight: normal; +} + +h3 { + margin-bottom: 0; + font-size: 18px; +} + +a, a:visited { + color: #428BCA; + text-decoration: none; + font-weight: bold; +} + +a:hover { + text-decoration: underline; +} + +.defunct { + color: #989898; + font-weight: bold; +} + +#summary > p > strong { + font-size: 1.25em; +} + + +.label-keyword { + display: inline-block; + background: #7eb0db; + color: white; + font-size: 0.9em; + padding: 5px; + border: 1px solid #357ebd; + border-radius: 5px; + margin-top: 2px; +} + +.card-skills { + position: relative; +} +.card-nested { + min-height: 0; + margin-bottom: 10px; + border-width: 1px 0 0 0; +} +.card { + background: #FFF; + border-radius: 3px; + padding: 10px; +} + +.skill-level { + border-radius: 3px; + position: absolute; + top: 10px; + bottom: 10px; + left: 0; + width: 10px; + box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.5); +} +.skill-level .skill-progress { + position: absolute; + border-radius: 3px; + bottom: 0; + width: 100%; + -webkit-transition: height 1s ease; +} +.skill-level .skill-progress.beginner { + height: 50%; + background: #e74c3c; +} +.skill-level .skill-progress.intermediate { + height: 70%; + background: #f1c40f; +} +.skill-level .skill-progress.advanced { + height: 80%; + background: #428bca; +} +.skill-level .skill-progress.master { + height: 95%; + background: #5cb85c; +} +.skill-info { + margin-left: 10px; +} +@media (max-width: 480px) { + .skill-info { + margin-left: 20px; + } +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.card-skills { + position: relative; +} + +.space-top { + margin-top: 10px; +} + +#container { + max-width: 800px; + margin: 0 auto; +} + +#elevator-pitch { + text-align: center; + font-size: 24px; + color: #BFC1C3; + text-transform: uppercase; + font-weight: normal; +} + +.res-label { + font-style: italic; +} diff --git a/test/expected/modern/modern-pdf.css b/test/expected/modern/modern-pdf.css new file mode 100644 index 0000000..6d8eddd --- /dev/null +++ b/test/expected/modern/modern-pdf.css @@ -0,0 +1,203 @@ +* { + box-sizing: border-box; +} + +main { + display: block; +} + +body { + font-family: 'Helvetica Neue', 'Helvetica', 'Segoe UI', 'Calibri', 'sans-serif'; + font-size: 15px; + color: #333; + line-height: 1.42857143; + background-color: #F0F0F0; + margin: 0; + padding: 0; +} + +/* Typical page borders are awkward when rendered to PDF. */ +body { + background-color: #FFFFFF; +} + +/* Adobe or wkhtmltopdf has issues with the
tag, so we use
for +the PDF case,
for the HTML case, and style both via an ID. */ +#main { + background-color: #FFF; + margin: 10px; + padding: 10px; + border: 1px solid #E6E6E6; +} + +body > #main { + border: none; +} + +#container > header { + padding-top: 6em; + padding-bottom: 1em; +} + +body.pdf #container > header { + padding: 0; +} + +#main > #container > section { + margin-left: 5em; + position: relative; + display: block; +} + +span.fa +{ + position: absolute; + top: 4px; + left: -50px; + font-size: 30px; + color: #BFC1C3; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #EEE; +} + +.tenure, .keywords { + font-size: 75%; +} + +h1 { + margin: 0; + font-size: 46px; +} + +h2 { + font-size: 24px; + color: #BFC1C3; + text-transform: uppercase; + font-weight: normal; +} + +h3 { + margin-bottom: 0; + font-size: 18px; +} + +a, a:visited { + color: #428BCA; + text-decoration: none; + font-weight: bold; +} + +a:hover { + text-decoration: underline; +} + +.defunct { + color: #989898; + font-weight: bold; +} + +#summary > p > strong { + font-size: 1.25em; +} + + +.label-keyword { + display: inline-block; + background: #7eb0db; + color: white; + font-size: 0.9em; + padding: 5px; + border: 1px solid #357ebd; + border-radius: 5px; + margin-top: 2px; +} + +.card-skills { + position: relative; +} +.card-nested { + min-height: 0; + margin-bottom: 10px; + border-width: 1px 0 0 0; +} +.card { + background: #FFF; + border-radius: 3px; + padding: 10px; +} + +.skill-level { + border-radius: 3px; + position: absolute; + top: 10px; + bottom: 10px; + left: 0; + width: 10px; + box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.5); +} +.skill-level .skill-progress { + position: absolute; + border-radius: 3px; + bottom: 0; + width: 100%; + -webkit-transition: height 1s ease; +} +.skill-level .skill-progress.beginner { + height: 50%; + background: #e74c3c; +} +.skill-level .skill-progress.intermediate { + height: 70%; + background: #f1c40f; +} +.skill-level .skill-progress.advanced { + height: 80%; + background: #428bca; +} +.skill-level .skill-progress.master { + height: 95%; + background: #5cb85c; +} +.skill-info { + margin-left: 10px; +} +@media (max-width: 480px) { + .skill-info { + margin-left: 20px; + } +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.card-skills { + position: relative; +} + +.space-top { + margin-top: 10px; +} + +#container { + max-width: 800px; + margin: 0 auto; +} + +#elevator-pitch { + text-align: center; + font-size: 24px; + color: #BFC1C3; + text-transform: uppercase; + font-weight: normal; +} + +.res-label { + font-style: italic; +} diff --git a/test/expected/modern/resume.doc b/test/expected/modern/resume.doc new file mode 100644 index 0000000..0038936 --- /dev/null +++ b/test/expected/modern/resume.doc @@ -0,0 +1,2613 @@ + + + + + + + + Resume for Jane Q. Fullstacker + Jane Q. Fullstacker + resume;CV + Jane Q. Fullstacker + 1 + 60 + 2015-12-16T17:38:00Z + 2015-12-16T18:32:00Z + 1 + 241 + 1379 + 11 + 3 + 1617 + 15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Jane Q. Fullstacker + + + + + + + + + + + + + + + + + jdoe@onecoolstartup.io + + + + + + + 1-650-999-7777 + + + + + + + + http://janef.me/blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPlQTFRFv8HDv8HEv8LQv8LSv8zdv8HGv8LKv8HKv8jXv8bVv8LOwczdzcHDycLEwcHDxcHGycLD18bD1cTDzcLDx8HD28jD08LDw8HD1cbDxcHD2czS1czSy8bEw9Dmzdzxz97xydj1xdLqx9Tqy9jszdz7wc7iy9bu0+P/2ef72e//2/X/+djK4czD6dDE89bK4crD99rM997Q/dzO5c7E89TI997T//vd/efX/+HQ++XT//Hd/+3V/+nT///5+/n/+//////75f//6f///f/////s///q8//////1///37/////vo///k4fH/5//////w4+/7//Hk5fH/////unTQ4QAAAQ1JREFUSMft1GtTQUEYB/A/JSlCoXJJUYqKqNwvFaFDquf7f5h0jrMXe3BmvGrGvnp29jc7O/99dkG2BzZ0Q/8/bbVt01vsd+zRlzskbO5a9jqul9OK78woqgfOV6r5kwtpJYCtN726x3a3F4QruYBO5c6NXr0f4pyofiRbWEhqhNxZUiwsJOWx2yfFwkIOwrgwKslClWJUooUqjahUq9NhAUh1Gf2Lik0eAM+HsKsWhCNtLo8iuGSyeIy9sXRW7YTb5qk7ZyFZAoI1o5qTPFdmeVSyFG7LtDwqWYo9MLMls2fmpNRZU+v8pEdc6bNJWJZyv2rRLyGq79jP8lcgRrXiwTzxqFbR53hm/S/jF09ZANBqGaBnAAAAAElFTkSuQmCC + + + + + + + SKILLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Web + + + + + + + + + JavaScript HTML 5 CSS LAMP MVC REST + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JavaScript + + + + + + + + + Node.js Angular.js jQuery Bootstrap React.js Backbone.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Database + + + + + + + + + MySQL PostgreSQL NoSQL ORM Hibernate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Cloud + + + + + + + + + AWS EC2 RDS S3 Azure Dropbox + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Project + + + + + + + + + Agile TFS Unified Process MS Project + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAASZQTFRFv8HDv8HOv8HGv8LIv8TTv8zdv8LOv8bVv8LEv8HEv8HKv8rbv8LQv8HIv8jXv8HMv8LKv8TQz8bEw8LEw8LGydDfyczOz8jGw8jOz8zKw8HDwcbMz8zOycTDy8zOzcHD1cTDxcHDz8LD3crEwcHDwcLEw8LDycHDx8HD0cLDy8HD1drb3dTMy9Tb3drTycLDwcrV3drb1cjE29rb287Izdz/z9zsxdDky9r7ydbs2/X/2/H/1eXw79LG79zQ69bK7dLG487E897Q89bK/+3d///d/+nT8+vd//XZ/+fT//HZ/ePS8+XV8+/f//vb9///4f//7//////q4evw8+/s6+/w7f/////o/f//4+/w8+/w7+/w4fv/4//////59+/w8/P5////sDySyAAAAP9JREFUSMdjSCQaMIwqHZJKXYSEsQARUX9MpbYMWAFjAD2VMomJMzBISEoxSMvIMjDLieNRyhLoKs8YEKTAYArksia6KeJWyhZsJ8Vk5q7EYB6izMAeaq9CHW+pqjEwcAAxpzDQQFUVvG71UOeyArrVAuxWTzxuZQnzUueyDgcpdWDgjvCWoncU8ET6aPDa+GoyWEY5MvBFO0nh85afFn8MUVEADixVYEBBAkuNOm4V0NZR4dTV02cwMDRiEDQ2oU5yIcFUUpMLHOANAVC4wlXidysothg4wLlahUBsgQCXFQoXn1KoHJWVkuAAuLdwK3XGEQWxmErj4qOwgQS4AgDkC738cGCe/AAAAABJRU5ErkJggk== + + + + + + + EMPLOYMENT + + + + + + + + + + + + + + + + Head Code Ninja, + + + + + + + One Cool Startup + + + + + + + + + + Sep 2013 — Current + + + + + + + + + Development team manager for OneCoolApp and OneCoolWebsite, a free social network tiddlywink generator and lifestyle portal with over 200,000 users. + + + + + + + + + + + + + + + + Managed a 5-person development team + + + + + + + + + + + + + + + Accomplishment 2 + + + + + + + + + + + + + + + Etc. + + + + + + + + + + + + + + + Principal Developer, + + + + + + + Veridian Dynamics + + + + + + + + + + Jul 2011 — Aug 2013 + + + + + + + + + Developer on numerous projects culminating in technical lead role for the Jabberwocky project and promotion to principal developer. + + + + + + + + + + + + + + + + Managed a 5-person development team + + + + + + + + + + + + + + + Accomplishment 2 + + + + + + + + + + + + + + + Etc. + + + + + + + + + + + + + + + IT Administrator, + + + + Stark Industries + + + + + + + + + + Oct 2008 — Jun 2011 + + + + + + + + + Junior programmer with heavy code responsibilities. Promoted to intermediate role after 6 months. + + + + + + + + + + + + + + + + Promoted to intermediate developer after 6 months + + + + + + + + + + + + + + + Accomplishment 2 + + + + + + + + + + + + + + + Etc. + + + + + + + + + + + + + + + Intern, + + + + Dunder Mifflin + + + + + + + + + + Jun 2008 — Sep 2008 + + + + + + + + + Performed IT administration and deployments for Dunder Mifflin. + + + + + + + + + + + + + + + + Supervised roll-out of Dunder Mifflin Infinity website. + + + + + + + + + + + + + + + Performed mission-critical system backups and + + + + + + + + + + + + + + + Etc. + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR1QTFRFv8HEv8HDv8jZv8HGv8rbv8HIv8HOv8zdv8bVv8TOv8TMv8LK08TD1cTD2dDOz8rIw8LDwcLGycrOz9DX0crIw8LEwcHDw8LGycrTx8HD2cjDzcHDw8bQ29zZz8TDxcHDy8TDx8LD3drizdzxz97xzdz/xdTs09zqz+H70+P70+X/0eH/0+Px1eX51+v/3ef11+Hw1en/99jK+drM49rb7dTI7dbK8djM9drO99zO89bK5c7E/9zO79rQ8dTI7drO69zi/efZ/+/X/+HQ///d/+vV8+HT///7+fX5///m9//////q+f///fXx8+vk6+/w9/n/5fH/4//////w7////f/////54f//+/////v1//Hm4+Hq//vw8fv/////A0CiDgAAARBJREFUSMdjiCMRMIxqGNUwqoHaGtw9SNRgxKBBkgZPHkYmL1I0GDMyMmuSoAFoASNOKxiwW4DbCgYcFuC0ggGHBUArtIjU4M0L0cDI4kNQg6+fCR+/ACMMCAoJK/kH4NLgKCIqxogNMIhLBGLTYMyIEzBoY9PgbopTvTJ2P7ibiRGhHtnT2HUwq+AOJXdzTB2sOviC1d1CjJB69IizRNXBqksopp0kUTSwBRHS4Ixmgx4hDVZoflAlpMEaTYMaAQ3BUmga2AlocJGGqJORlYMwOELwa3CVB6ni1A+NC3NTAAdTOH4NNkA1XAahYHaYrSIwYRji12DHyK0eAedF2stjBhOqhqjoCBR+jEMs/UtvAMiRyWLg7gtIAAAAAElFTkSuQmCC + + + + + + + PROJECTS + + + + + + + + + + + + + + + contributor, + + + + + + + HackMyResume + + + + + + + + + + 2015-09 — Current + + + + + + + + + Exemplar user for HackMyResume and FluentCV! + + + + + + + + + + + + + + + + co-creator, + + + + + + + Augmented Android + + + + + + + + + + 2012-02 — 2014-01 + + + + + + + + + Performed flagship product conceptualization and development. + + + + + + + + + + + + + + + + creator, + + + + + + + Blog + + + + + + + + + + ??? — Current + + + + + + + + + Conceptualization, design, development, and deployment. + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA8dJREFUeNrsl+1v2lYUhy8GLo6xsQHjuEA9MI4hTatG2qR+2D8/aR8mVVOytlrLO65DKLOT4DcoOMYMGqlbi7GdJlOjyVf+4mv76Dlvv3scW61W4CGtWAQUAUVAEVAEFAFFQBFQBHQ3IEcft6ShMQdomi2JZQZ+XyC1+VtrfP35NsmIPz5hE/81kNo/HRquZ3jm2mIJkqR4wEG1/VZduPEUhXoDoYV6g8MCgcJ4Y2rm1Nj9GKfrRRoCOo+rI2O50KYLz9cgnAJwP0AERaSR3RGyLlqj7DpCl9Z6xydCZPp/W0PAsfQ52MNx6N1lf75t6ksQ2+Pqz3jPLnNmM8uFFB6GFAl+xWifnLz5/eRV17OOEiSLo58spXLePT8bvjp9+fqPl29UcB9AzqinzomySNij3pl7+xS4w540RTmeAhOpa9wdSGlKJizWKsVaATWHTeW2PJPuuY5kOb7cqIRzyR/I6A40kK0IGQAyopgFyqA9vw2O3ZPGNlE5LKxTW/whD0O45AfkyoORnS7XCje3VG0/Y6tN2QnN86E9nqJMtXhTzDmBJ4NdQvxa+syEdOUfdcV4kYbaWVMLhzNvDS8AJdYzn+ufOQh2CdltTlIAyR9kvxDlgyINtHYrRHE6Z03FzrDrYv7XCuES4muuxnwlHYmSyKbnymAUlDft3VCDebH29Vlx41K3M7sd0C5zmyOpVmGhKb1T/aWrPQF0ScA9dKsk0ClL6SlOeKBZv6+51CMvc5uVFR4RjjaUZ77Sld4XyzsOtXqFAXq/MwkJ5CidvwxYaHA7hR7hqkU4lTvn3qJy1ZZNyFb53aNaofGYsC9kz7xvAc0kWQdMVUT9UpIRqhSij6WZV3jeT2yCFXK+vb1xyZRbk+DxQxtcWkksp3f7un/VonhSGw8u+aP8l/vy2ETwwkLqdAMEEEvZ2loXsrQ/EAYT4NqUP5hhlAaHe1t7SSS21NSxEeb7FIEGpgxWWToeTvjiJFfdbsPHlVwy5OSToTk8uIYSpSdHZSqQKU4IR4eMV91TR4cNMpAphhWEYy9Z8TCJUJXjF8zVoNNVzNly6+l6SGW4RnUf7uzCDPv8Ba302+/Vi4/XW50Yx4g8X+VpKvFNE6NtWVcTxdzM7ShRyOVIdLube6e/nE9BnDr++Sm19f1cM43LieVuKoahCCyDIXca8iGOs+vrm0dkiFL59cWE/gABD2w9OKAwfx3S61/PfXVl5XyygcRiPv6hzNOf6uS9/Ci6zmoVZkx0Vyufkdm27fuK0LpTPjp3zkUC8+rQrfW3AAMAaZzVLhuUv2EAAAAASUVORK5CYII= + + + + + + + GOVERNANCE + + + + + + + + + + + + + + + + Member, + + + + + + + + The Mommies Network + + + + + + + + + + 2008-02 — 2010-01 + + + + + + + + + + Since 2008 I've been a full-time member of the board of directors for TMN. + + + + + + + + + + + + + + + + + Academic Contributor, + + + + + + + + Khronos Group + + + + + + + + + + 2015-01 — Current + + + + + + + + + + + + + + + + + + Participated in GORFF standardization process (Draft 2). + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAaFQTFRFv8HDv8LIv8HGv8HEv8HKv8HMv8jXv8HOv8jZv8TT3dLS2c7Kw8HDwcbM08rIwcHDwcTKz9Lbz8jGy9DXy8bEyczTycTDxcrSx8LDw8jV2dDMxcHD3dLOw8jO1cTDx8rSwc7fzdLbz8LD1czK3dLTx8HD28jDy8HDy8zOz8rI0cLD3crD18jE0cjGyc7Z29LQz8rKxcLEw8LEw8TKy8zQ1djdzcHD1drk09bi09jm0dbizdz/xdLqy9jsxdTswc7i3ePs2eHo2+Ps2e3/z+H/3ev/2/X/3fn/2e//z+H71en/69zT6djS49LO/d7Q6drT4czD59TQ/97O/drM79LG5c7E8ePZ+eHS7eHX8+Pb/+/X/ePS8ePb//Xb9eXZ7+Pd///d/+nT/+HQ///7+evk8fX7///59+fi6/P5//v16ev1/f////nz5efz+////fXs+fv/+/Po9/n/6////evi9///8/n////q//nu4+fz///i+fHw9fX7///18//q4f/q8//i//nm6+/7///o+f//7///4///9+/w8+/w8/P5////rwMOhgAAAWBJREFUSMdj6CIaMIwqHVVKL6XJKVzmqUQoTUvn5mEAAl6LDLxKM8P4+BngQEAwKxu70hxvISR1EMAonJuHrjTfR4QBO2ASdShAKC30FWPAC8Qdi8BKwyUYiACSxUClJVLShFXyWpaCHZCcIoPXBbLmZUjeKpfDoYxZ3qkANQT8+FmcK/zRQ4tJtDIPPVyTAxgUQMGdGYGIA0ZF1BiAKq1SYnbpCgQHSVqkMjBmBawywJ5QcUVXGqXK4tYVAPQoOJ0kV9eAU4MUMBit0ZVG87C616pBYh5sXmaMMjjVYCiNVWdgYKuDBwKjhibcxehKg4Bi7PVYw8sGm6kNWsQo7QpmYPGo1cYWA57oSkMYmLy6GnUwVdpmoysNBbs/OU4XNbL0mjCiABROdpCsEK9vYGgEBMYmpmiRBVHaDPS8PXGZO8GMgYGjhSilicDEzdlKlNIkYOSwtxGlNK29o6OToFsBkPOxfsuGle0AAAAASUVORK5CYIJ= + + + + + + + EDUCATION + + + + + + + + + + + + + + + + + + + Cornell University + + + + + + + + + + 2005 — 2008 + + + + + + + + + + + + + + + + + + + + + Medfield College + + + + + + + + + + 2003 — 2005 + + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMxQTFRFv8HDv8HEv8jXv8HOv8LSv8TTv8zdv8LKv8bT3czIwcHDwcTM18bDxcHDw8zdx8HD08bDw8HDw8rZ3drbz8TDycHDzcHDw8LDwc7ixdLqzdzxxdLoxdTs1ePx0eH72+n//dzO79LG89bK+9rM997Q5drb/9zO7dbK5c7G/+nV++XT/+3X//Hf//HZ///d/+fT//nq///q8////fXx8+/z+///4f//9///6f///f//7/////Xk8fv///Hk/fXo5ef1///7///x6fX/////TAOGGAAAALpJREFUSMft1NcOgjAUBuCDe4Hixr33Xohb+/7vZCnEKC3ShEv4b5om30Xzn5wC4g741Keu6CqegGSdh65TgCM0OGgLSAKbv3S72yPUNmjwYN6ZdCyCpKKOQUNHNBGhrLFpFwtJnaYJVXQJ4RObnjPE9mR8ZC+6FCp2b70a9tbP3TVKWhog9pNfaS3r21ok1essbyfpEcwLJq06TmtRNKniZSqUuGlk4Hm6xCtQc6SPoRxtPkcQe7n4s96JF4yPwZXEugAAAABJRU5ErkJggk== + + + + + + + SERVICE + + + + + + + + + + + + + + + Technical Consultant, + + + + + + + Technology for Tots + + + + + + + + + + Nov 2003 — Jun 2005 + + + + + + + + + Summary of this volunteer stint. + + + + + + + + + + + + + + + + Accomplishment 1 + + + + + + + + + + + + + + + Accomplishment 2 + + + + + + + + + + + + + + + etc + + + + + + + + + + + + + + + NCO, + + + + + + + US Army Reserves + + + + + + + + + + Nov 1999 — Jun 2003 + + + + + + + + + Summary of this military stint. + + + + + + + + + + + + + + + + Accomplishment 1 + + + + + + + + + + + + + + + Accomplishment 2 + + + + + + + + + + + + + + + etc + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAihJREFUeNrsl+1P2lAUxukLFyxaEULFrjNoAFGMiW7OZPv3TZYlbkEbNkSsCghYIWCVIqWUFXUfxKa9k0vF5J6vTc759Z7nnPtcYjAYeKYpSM+UBQbCQBgIA2EgDISBMBAGwkDvDIieSFatKV9c1pSeQXpnw5FlfhFA1yFQvzp05fjw6KqjPyvi4xPbySj9Bi27PxUzIzRmDLqV/M+c7L6GVOl3pW1Yf+vVLgqay0BG9Uax6X+nWVTdBVLUe3t5aXcuAhmtUkU1pmLsTZT8SbnW6TsNNBPkUAHpjaIoFW+7T+ND+UJcbCMRISFRHgKEeB7NHlLOM2K59aIoTVF6v28pgpedIwP8l0+rfhQtUwp/LGiGpzZKQ/jnFlPpeNBzLYlSud37h+Vlw8JG+oMfTgBOJ1QR9ws3ulOSJxTwfKaUtk4HGIZGKepWU7WlIYCJshYLWVSlATsP0E+ZYT/JZHApHmJctB+s3/4n+3L++69s6U5DBuSkIbVwcFCDWLCUqdxk4uMsmLz9aGV/ZBo9uGxDLAHU89X2q+0HjB/S6tnDXKM7UiPKh/V6td6FtFPeaGovxaEBerwfquclWdFMjZOA5WIrS4+DpctS7gwOayb6dTcOUAE5XC1QWD7h826cGW/KYJcHt7q5921rgZoi+zHMRZIT30P/FcF522sCzn4g9dSCwPnGtR9oXx0LyXWeJazKBPiddORN3mXm2pqo/RhjFbzOfvwVYACXgQOVsrGQ2gAAAABJRU5ErkJggg== + + + + + + + AFFILIATION + + + + + + + + + + + + + + + Member, + + + + + + + IEEE + + + + + + + + + + Jun 2013 — Current + + + + + + + + + Member in good standing since 2013-06. + + + + + + + + + + + + + + + + Member, + + + + + + + Apple Developer Network + + + + + + + + + + ??? — Current + + + + + + + + + Member of the Apple Developer program since 2008. + + + + + + + + + + + + + + + + Subscriber, + + + + + + + MSDN + + + + + + + + + + Jan 2010 — Current + + + + + + + + + Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket. + + + + + + + + + + + + + + + + Coordinator, + + + + Campus Coder's Meetup + + + + + + + + + + Feb 2003 — Apr 2004 + + + + + + + + + Host of a monthly campus-wide meetup for CS students. Code, coffee, and crullers! + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAI1QTFRFv8HDv8HEv8bVv8jXv8LKv8HGv8HIv8zdv8rZv8TT18bDxcHD2dLd1cbDwczd2cjDxcLKwc7fxcTDx8HDz8TDy9jszdzxy9jmy9jo2ef72+n/1eX56dLI79LG/efT/+3X//Hf///59+/w9fX7//vo/f//9///7///8////fv7//nm8+/w8/H1/fXx////vxL+UwAAAMZJREFUSMft1NkSgjAMBdCL4i7uG+4KiIr2/z/PwghtsYk8+WSez2TuJJlAVC786Z/+mp7OQUUaduHMoypUSpgWnDQtRfc9lK2dhv1LYRcsDT0MCluLGSollK1faSqlsxzm1vXpAKlcbfO+Sn7SQmZ25NNz1WRqb/S2DAl3Td9ASfr0ubDSoLzU6Rep0XRHY0YqKmVjAkYqukNzc/cYqdOWEG9rlTptJ48os3apU6ATi8OUkmV6nJHSpHROG6Wlos8kq4D+Ni/aqw5+HvnsQQAAAABJRU5ErkJggk== + + + + + + + WRITING + + + + + + + + + + + + + + + + + + Building User Interfaces with Electron and Atom + + + + + + + + + + 2011 + + + + + + + + + + + + + + + + + + + + Jane Fullstacker's Blog + + + + + + + + + + 2011 + + + + + + + + + + + + + + + + + + + + Teach Yourself GORFF in 21 Days + + + + + + + + + + 2008 + + + + + + + + + A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space. + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAArtJREFUeNrsmP1v0kAYx1soxZW2YOl4s8xkvkyJMZop/380JkuMLpmOxSkvQQasdNCWUks5Wq8WZP4waG9HMpPeL/SSK/e553m+z/NcSdd1ibs0YsQdGxFQBBQBRUARUAQUAUVAEVAE9J8BUUhv2er3by2TpJ2Z7QTahS3u7ZfSQU5PItw67Prx0cXECfkWk39ZPeC34bJRQw5NA4dpKFuJIavekmdI0RpLbCOGBo3+dfOQFLl+vQsWEUHymeI2gJx/w+J19YBZt7p+/O5i4q8VynCvka5wvEjhA5IH6vzvJM7szAxVu3k16CqTxeMOV4BbqZe12g/x1dvHPB4gIPfG9mo6V1pflIAS40s0QRi9sUVM9QFB8DiC2mqenmtzpLyVzOShZ82+PoXBRCfxxJDVVcZgNU0UKofP1kUDaH88avzyebhSBvJ0VY+HFSQ8sp+C6wGdTEtrY5MAnaG1eKSZLAsDvDc24H6sUMKjMvPSO98KT/n8/sOa0ziuu+SP89ldCNjXTThh+SIe2RvNkXnjluuLE5vzbNKTDZiRUuJDCkem1s9rV0jp2fNRJgd/2kMd8iRThU0WCAY0mJiI3QTJZ8te/hoZ0JxMRqKx1DLVtFDbG0ZY+csXPwagXkefI/Kk0hL0kXzl/YEv/tsD2fX+EJWHYQtwA2MwsZfivzWQ2fjaRel+/GQllKGPtK4BBRHP5Hdx9EPK2ED+jp3kCswygZGsmMPS5M8cB1lf4h70kf1TgwqleCEYz6bEqFqL6h4jyTDNJcUIUuUR4yVo44997j/Ac+ugYh4GW6y+eUKjmAm0vY5okaxxuIzNc/egTOSzjmKG952tnA10T2xcIXDN3HgNAsPTTyeodcNvVHJPDyuBiYLcy4DZPDvpaBaK3BLi/vMXEh9CC8EvisDQLBCqriYYngl7z/otwABxHQzMzw8ozAAAAABJRU5ErkJggg== + + + + + + + READING + + + + + + + + + + + + + + + + Code Complete + + + + + , Steve McConnell + + + + + + + + + + + + + + + + + + r/programming + + + + + + + + + + + + + + + + + + + + Hacker News / YCombinator + + + + + + + + + + + + + + + + + + + + Coding Horror + + + + + , Jeff Atwood + + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUFQTFRFv8HDv8HEv8bVv8HOv8HMv8HKv8zdv8LSv8TTv8TSv8jZv8HGv8LIv8LQv8LKv8HI08zOz8zOz87TzcHDy8HDwcHDw8LEwcLE1cTDzcLDw87f18jExcHDx8LDwcTK3dTM0djb08LD0cbDw8rVwczdzdzxzdz/xdLmw9Dk0djkzdrw0droz97xwdDky9jo3eXw2+/w2e3/0+P/z+H/0+P71ePx7dLI79LG/dzO4crD4czE99zO89bK49LM8drO5dTM7dbK99rM5dDI7+HX///d8+/Z/eHQ//Xb//Xd8e3Z7+Pd//Hf///5/f/////77///4f//+/Pw8+/w9fX76f/////q6fv////o+f//+//////x6///9fv///nm4/Po//nu+fv/4+Ps///k/fXx8+/s9/n/6/n/5f//+fHw8/P5////sapGIwAAASVJREFUSMdjyCIaMIwqHVVKB6U+zgKCMCCk74tHqZ8ZAxJgVMWj1EUYWSkDkz/RSpkDsCoNDAICVxEUpSwGIMFgNKVuogy4AKshqlJzBkYxIEBTJQ4UEmVQQ1fKhulW9pCsrFAJopRy+GNTasHAGZaVFS6BopQrIivLXYTRCFWphySDemSWnyWKUo2srCgrBs5otMCyFmWQismyQYkt46xYaQZuE/RwBcUpj6YncsDyxtnKMDBq+WLElp+dDJZA5TPFGrHx9rJoCuW0E3AmwkAveVi08SskBuNP2n4OELXcOkTkAkeQWoS/8SlNUoSGPmGl4HjQJSobhkoQaWpyihM4pvSCUvEr9VZCClXlNDxKQ1FTlkoE0dmQN50qSv0ygpBBJqpbAYc7NrM+qyXXAAAAAElFTkSuQmCC + + + + + + + RECOGNITION + + + + + + + + + + + + + + + + Honorable Mention + + + + + + + + + + 2012-01 + + + + + + + + + + + + + + + + + + + + + + + + + + Summa cum laude + + + + + + + + + + 2012-01 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA5hJREFUeNrsmPtT2kAQx0M4DhJeAZFGqohBGdHal9PWdvrX94dOO1Pta2gtICLFgBQhhhDgOJLGii8khZBMpz9kh58y2c3n9na/e4dDVVXifzKS+M/MBrKBbCAbyAaygWwgG+gfG5jqLfSr/IOvyjImPb4AyyUXaDBlfCQcZEuNjoRJmvYvLnMRZoKnY+KJUaln977XpJtvOf2prUexwCQYfJLdzfO9m54uNrW9zgIzW/Yrm7tNo9mglc8V0CScWqZwm0azfjWX4bGZGipX6/1xaWufFoW/e1Z4cTDmsdoqH8gmaqiHddaD8WWKFFls1GtiT1sdFb43z/jgRTIUnVrAqE0Q9KxALlLLoTLOEWjfRZX9z8Vq5zoTpeND4Aom0ulFRj8H0Gtiy2KRsHPcc7c/Rhb23h/cpBkmoH+W/7K7X11k/Y5xnlRkiTYBBO5vJBk42ppeLj1XzvCiboOeF6+ylIi4Rj0D99c4eva2x0hWIA0V4Wc2x9e7WjmR0Def2lylj3bfVjoT1hJMvt6E5e/FsjD0ZFfSXBQqCBEQksaBcOPr7pdmH7iDieVkjKUvQ2AFE+WP7wqdSYrhCj9+lgoAQF5HPC4elsrtAemNPd/mPMaKWi4Wmucdj3tn+exePusAf0pCUUF0g1PQFCrd74mgVHhTkYe1pGL1SjVOCjVuI2qohurt23KhhTv/KYan09AR39qJgdSUjRU16iBFT4G6IR+cgsTlDsh6MnahRkaAZKQXShWbTZahJs9tOkQft/RUGaGWZccPJPD1lTjr+vvU9ibWPIV6x2hwXSAajq93SAVjrB+I/vXNWMChu1vs2tYigXyRaNTrHhsIAMoYEEzeyYHTv/pw5/kyQ8hn/GGuhOJPXyRZalTItdGx+nA75ans/+DrEvIspF7tJFm3YyR/8ZWFGYQRdasnfKt3gR64F0EHmWzralY46FD8QXrJg0aGKyHkMt8q7StlAO7IxpN5dDTsK0iFouyczgZMcUC7MiHz/tPp3bOIk6Z8DEP9ia90xbNGu3e3HTQl3NnmpmnNqYHk/IcPVWn2s7IzsvryQcy6Q7501DRBc66EjZOfFt465KrYM3mdUCShZh3QqYQIs6Z2RdkqIKHdteDfbIxEq4AQVszzEINu275K/yugMO2x4Ftu35xVQCCeCLnMLt07l2As2zIQ3kqvh9xgVhroZR8/snZ0DDtXlqW+0Y4DdNADp335twADAHYlmV3HkUP7AAAAAElFTkSuQmCC + + + + + + + SPEAKING + + + + + + + + + + + + + + + + Data Warehousing Evolved: DARMA 2.0 + + + + + + + + + + 2012-01 + + + + + + + + + + + + + + + + + + + + + + + + + Won 'Best Presentation on an Emerging Technical Field' prize. + + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABEpJREFUeNrsV2tz2kYUXQmBBQghZDAYZFsmxo/4VbfOtNPp3+9MmzpxqF8EAyYEbCxjLITEQwipuwIMxIChqSeZqTT6sivp7rnnnj13hRmGAb6nCwff2WUBsgBZgCxAFiALkAXIAmQBsgBZgCxA/zNAxFdHkEppQdL7Y4c7EA578W8GKJ0+LSjDU3cS/uZ1iHhZQHpNqqlf/nTjDrcr4POXGqLapUg3DB20hXQi5N9h/xUkbLp/+9vz3y+F9pezDt/Gr7uB4QKmjuJF2YCPYr/sBvEXE7WHoewEhvXuR94aslgZuvVA1D8Hn6gPmURRezmGBi/t+vjPZHWKr2zM3s8zF25mUhvpk1R1uhzaYuLiVv+vGNLKheyna0FudqSMYzaSmo8GtVSq3IBDz8pvB0v4CLjHbwuKDjDK7agpTR3Y2KBXFytSs91BhtudLBuOvlp0ETMAUktn8fP75tjk7MzemxG10IunfyRFFXQU7cz/dZKpj+ESc3Jb+2t+YpptLxXjF4lKy8zGHYqEwzSJUpcgYWXZjE+Q1Ij8tNvEFUID4W5uBXEpU2r00Ng966t8J4z4OZ97qKtGPX/+Tl3/6aldEU84TycRGsw1H/1xe/HxMXGfqfXia9XC6SV7GKMH08jFUwL6zhndhuQ9JC+upUd2WjURuMMMDOalmCAnFU7PrkqtlnB5xvj3w8QkUd+kilABgPDyhwNoQDnxASkDSofb9NoAMGThU2k4jawC18focGyZBvpVrthEzCys73LIBJBVlh9NgI7sbIdp6B1GNffxYeIuy5dE5H7OcCyCD9Ti/GOpYdZiZ5cPxQIUWkIq5vvSeW/CdfjWfngFadPy5aqJPrgZ8q5thSjsyY6jo+us3SxhQZxQMrnaQGnMeTjXgOucmLWA6xGtXPw4B3QVJWeIheMPt+YWaCh96aCJBxnBBxTNoyG9thOqvL2pm1Y5/ygaat7tuBfVdksCgBnHkKaZtBKEo1+M7HXPddS6IirwrneMQGt2hkoNkoq5Tel0XlRURLON9HRjkLEY70QsCYV8fzGWdDzbXAkCDtsQF9q63WB8NKjkZH2oz9YQJmLOTXW/xsng6nJf4m4HlFm73agCsNCt0PIGX0uXXUtcP0y5oT4LiPKQxF1Ta1bzNRDtVo1gN/bZwZdqqaOjugowJnKww400GR9FAkEBspTVAY/3hLx5EBmSx71ZaJudniRqzs/A5ED9+rIwxhU14fJORoHoEDf2SMOxHhhXr96O7a9SJllGwiSZCDOxly2uhdxwSqtkj85utBEOfpyoIMlQCyv+CQ1ydTmEdjt0mpOc+CQM8iHTpTDP8obv2dYxzqlv8oWSaG43wsMdHvDkMyfbzPt4xxsx0hOILgVNc+85Nei41AinnrWXYS4fv7cbIac6bWf/PsmX27P1smm7PcBsLmqeX+EXWMcspwlVTCczQkVuGV/T7b/l9Y8AAwCSXjehR+kgEQAAAABJRU5ErkJggg== + + + + + + + INTERESTS + + + + + + + + + + + + + + + reading + + + + + + mystery, Agatha Christie, John Grisham + + + + + + + + + + + hiking + + + + + + + + + + + yoga + + + + + + + + + + + + + + + + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAArlJREFUeNrsl91T2kAQwEMIIYQQPhoDWlBaYDogOD7UGTu2//9THS3WMopQNUoIUSEkIcZ8NJcp0I44ggTIQ+7lcpvM3i+7e7t7PtM0ITcNGHLZ8IA8IA/IA/KAPCAPyAPygFw2EKcUGXz9tHknGAiORTYyWTqBvk2Pz5meWmgcHt8KY00+fC3/uZiEV+Wy7mUb0Pgj6WQsFvBBkCl3GjVuZTHU42TdmnCqkP9U3v1SSQetlX7fulkRkNYRHq3JT0Rxe02mSECkqQNjJUDGtSTbYRNL/ZUQqH1WVEVYAZDWrrF9yxIwEU2NQkpWwIRi5NKBhPr3c+7JMk84m8sOdT2wom7zROHl5iHtvvqLAdEToAuVzaE1DIbhn4CQjKNitwd+Gg3jOLJwIOWievIAjEO+L5ZSIz0a2xE08PDEN6r86Gt/iN4qlNLkolym3Z4c3kggdMLrpdy/27Q4cVKm1Qdco3p0ITuRqbW7+vEZI+kTXgViO3vlxGtWNuR242edGZiQP1o+qFBzWkht/p5IgwSpaWjAHngyv70GcpQuctzcMSQr6jNZKL1b/EjiM/gbR5BFHnsYnYnG8lqzL4IZIxJu6IeUxtG1nTwjVBpxAxC2SYXs+EAwGHIDkBWpU++zFCDhjJXs8kvEXQFk3A3sYkvQHxBXAMEhvw1iGM66DPb53oSvce0+SGXBUMxJoCC9/+3gayYyMxNbq/d0UIOpTcJJIFVi+B4vyLbZDbUrarMdG5zO4c60Hzhm3bAGkCldnVaHsgHz44gB5SxCr6eyG0n0ZTViRwL+CgSJ6fjnq/bjQhtOxCg6GSUJcgynivzlea0lWbbE3m3vb8cdAnrBhQrbvmqxXP/xdd8FEjt7pQQCLRTof7I21xUVWX+uyk/E06ViZuoO1qmr9LgXE2TVHLYEM7TSo/FHgAEAC/8S0Mwjye0AAAAASUVORK5CYII= + + + + + + + REFERENCES + + + + + + + + + + + + + + + John Davidson + + + + + + + + + Feb 2016 — Feb 2016 + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/expected/modern/resume.html b/test/expected/modern/resume.html new file mode 100644 index 0000000..a94a3d7 --- /dev/null +++ b/test/expected/modern/resume.html @@ -0,0 +1,756 @@ + + + + + + Jane Q. Fullstacker + + + + + + +
+
+
+

Jane Q. Fullstacker

+ +
+
+
+
+
+

info

+ +
Imaginary full-stack software developer with 6+ years industry experience specializing + in scalable cloud architectures for this, that, and the other. A native + of southern CA, Jane enjoys hiking, mystery novels, and the company of + Rufus, her two-year-old beagle.
+
+
+
+

Skills

+ +
+ +
    +
  • +
    +
    +
    +
    Web + +
    JavaScript + HTML 5 + + CSS LAMP + MVC + + REST +
    +
    +
  • +
  • +
    +
    +
    +
    JavaScript + +
    Node.js + Angular.js + + jQuery Bootstrap + React.js + + Backbone.js +
    +
    +
  • +
  • +
    +
    +
    +
    Database + +
    MySQL + PostgreSQL + + NoSQL ORM + Hibernate + +
    +
    +
  • +
  • +
    +
    +
    +
    Cloud + +
    AWS + EC2 + + RDS S3 + Azure + + Dropbox +
    +
    +
  • +
  • +
    +
    +
    +
    Project + +
    Agile + TFS + + Unified Process MS Project + +
    +
    +
  • +
+
+
+
+
+

employment

+ +
+
+

Head Code Ninja, + One Cool Startup +

+ 2013-09 — Current +| Agile PM Amazon Web Services AWS + +

+

Development team manager for OneCoolApp and + OneCoolWebsite, a free social network tiddlywink generator and lifestyle + portal with over 200,000 users.

+

+
    +
  • Managed a 5-person development team
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

Principal Developer, + Veridian Dynamics +

+ 2011-07 — 2013-08 +| C++ C Linux + +

+

Developer on numerous projects culminating in technical lead role for + the Jabberwocky project and + promotion to principal developer.

+

+
    +
  • Managed a 5-person development team
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

IT Administrator, + Stark Industries +

+ 2008-10 — 2011-06 +| Novell Active Directory Linux Windows + +

+

Junior programmer with heavy code responsibilities. Promoted to intermediate + role after 6 months.

+

+
    +
  • Promoted to intermediate developer after 6 months
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

Intern, + Dunder Mifflin +

+ 2008-06 — 2008-09 +| Novell Active Directory Linux Windows + +

+

Performed IT administration and deployments for Dunder Mifflin.

+

+
    +
  • Supervised roll-out of Dunder Mifflin Infinity website.
  • +
  • Performed mission-critical system backups and
  • +
  • Etc.
  • +
+
+
+
+
+
+

projects

+ +
+
+ +

Contributor, +HackMyResume +

+ +2015-09 — Current +| JavaScript Node.js cross-platform JSON + +

Exemplar user for HackMyResume and FluentCV!

+
+
+ +

Co-creator, +Augmented Android +

+ +2012-02 — 2014-01 +| Android Java Xamarin + +

Performed flagship product conceptualization and development.

+
+
+ +

Creator, +Blog +

+ +Jekyll Ruby HTML 5 JavaScript HTTP LAMP + +

Conceptualization, design, development, and deployment.

+
+
+
+
+
+

education

+ +
+
+ +

BSCS, +Cornell University +

+ +2005-09 — 2008-05 +| Course 1 Course 2 Course 2 + +

A multiline summary of the education.

+
+
+ +

+Medfield College +

+ +2003-09 — 2005-06 +| Course 1 Course 2 Course 2 + +

A multiline summary of the education.

+
+
+
+
+
+

governance

+ +
+
+ +

Member, +The Mommies Network +

+ +2008-02 — 2010-01 + +

Since 2008 I've been a full-time member of the board of directors + for TMN.

+
+
+ +

Academic Contributor, +Khronos Group +

+ +2015-01 — Current + +
    +
  • Participated in GORFF standardization process (Draft 2).
  • +
+
+
+
+
+
+

service

+ +
+
+

Technical Consultant, + Technology for Tots +

+ 2003-11 — 2005-06 + +

+

Summary of this volunteer stint.

+

+
    +
  • Accomplishment 1
  • +
  • Accomplishment 2
  • +
  • etc
  • +
+
+
+

NCO, + US Army Reserves +

+ 1999-11 — 2003-06 + +

+

Summary of this military stint.

+

+
    +
  • Accomplishment 1
  • +
  • Accomplishment 2
  • +
  • etc
  • +
+
+
+
+
+
+

affiliation

+ +
+
+

Member, + IEEE +

+ 2013-06 — Current + +

Member in good standing since 2013-06.

+
+
+

Member, + Apple Developer Network +

+ ??? — Current + +

Member of the Apple Developer program since + 2008.

+
+
+

Subscriber, + MSDN +

+ 2010-01 — Current + +

Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription + toaster and XBox ping pong racket.

+
+
+

Coordinator, + Campus Coder's Meetup +

+ 2003-02 — 2004-04 + +

Host of a monthly campus-wide meetup for CS students. + Code, coffee, and crullers!

+
+
+
+
+
+

samples

+ +
+
+

+ Asteroids +

+ 2014-09 + +

A browser-based space shooter built on Three.js.

+
+
+

+ Rememberpedia +

+ 2015-07 + +

A website to help you remember things.

+
+
+
+
+
+

writing

+ +
+ +
+

Jane Fullstacker's Blog, + self

+ 2011 + +
+
+

Teach Yourself GORFF in 21 Days, + Amazon

+ 2008 + +

A primer on the programming language of GORFF, whose for loops are coterminous + with all of time and space.

+
+
+
+
+
+

reading

+ +
+
+

Code Complete, Steve McConnell

+ 2016 + +
+
+

r/programming

+ 2016 + +
+ +
+

Coding Horror, Jeff Atwood

+ 2016 + +
+
+
+
+
+

recognition

+ +
+
+

Honorable Mention, Google

+ 2012 + +
+
+

Summa cum laude, Cornell University

+ 2012 + +
+
+
+
+
+

speaking

+ +
+
+

Data Warehousing Evolved: DARMA 2.0, OPENSTART 2013 Developer's Conference

+ 2012 + +
    +
  • Won 'Best Presentation on an Emerging Technical Field' prize.
  • +
+
+
+
+
+
+

testimonials

+ +
+
+

John Davidson

+ +

Jane is awesome! I'd hire her again in a heartbeat.

+
+
+

Elias Fullstacker

+ +

I worked with Jane on Jabberwocky and can vouch for her awesome technical + capabilities and attention to detail. Insta-hire.

+
+
+

Dana Nevins

+ +

I've known Jane personally and professionally for almost ten years. + She is one in a million.

+
+
+
+
+
+

references

+ +
+
+

John Davidson

+ +
+
+
+
+
+

interests

+ +
+
+

reading

+ 2016 + +

Jane is a fan of mystery novels and courtroom dramas including Agatha + Christie and John Grisham.

+
+
+

hiking

+ 2016 + +

Jane enjoys hiking, light mountain climbing, and has four summits under + her belt!

+
+
+

yoga

+ 2016 + +
+
+
+
+ + + \ No newline at end of file diff --git a/test/expected/modern/resume.json b/test/expected/modern/resume.json new file mode 100644 index 0000000..92df97b --- /dev/null +++ b/test/expected/modern/resume.json @@ -0,0 +1,272 @@ +{ + "basics": { + "name": "Jane Q. Fullstacker", + "label": "Senior Developer", + "summary": "**Imaginary full-stack software developer with 6+ years industry experience** specializing in scalable cloud architectures for this, that, and the other. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two-year-old beagle.", + "website": "http://janef.me/blog", + "phone": "1-650-999-7777", + "email": "jdoe@onecoolstartup.io", + "picture": "jane_doe.png", + "location": { + "address": "Jane Fullstacker\n123 Somewhere Rd.\nMountain View, CA 94035", + "postalCode": "94035", + "city": "Mountain View", + "countryCode": "US", + "region": "CA" + }, + "profiles": [ + { + "network": "GitHub", + "username": "janef-was-here", + "url": "https://github.com/janef-was-here" + }, + { + "network": "Twitter", + "username": "janef-was-here", + "url": "https://twitter.com/janef-was-here" + } + ] + }, + "work": [ + { + "company": "One Cool Startup", + "website": "https://onecool.io/does-not-exist", + "position": "Head Code Ninja", + "startDate": "2013-09", + "summary": "Development team manager for [OneCoolApp](https://en.wikipedia.org/wiki/Vaporware) and OneCoolWebsite, a free social network tiddlywink generator and lifestyle portal with over 200,000 users.", + "highlights": [ + "Managed a 5-person development team", + "Accomplishment 2", + "Etc." + ] + }, + { + "company": "Veridian Dynamics", + "website": "https://en.wikipedia.org/wiki/Better_Off_Ted#Plot", + "position": "Principal Developer", + "startDate": "2011-07", + "endDate": "2013-08", + "summary": "Developer on numerous projects culminating in technical lead role for the [Jabberwocky project](http://betteroffted.wikia.com/wiki/Jabberwocky) and promotion to principal developer.", + "highlights": [ + "Managed a 5-person development team", + "Accomplishment 2", + "Etc." + ] + }, + { + "company": "Stark Industries", + "position": "IT Administrator", + "startDate": "2008-10", + "endDate": "2011-06", + "summary": "Junior programmer with heavy code responsibilities. Promoted to intermediate role after 6 months.", + "highlights": [ + "Promoted to intermediate developer after 6 months", + "Accomplishment 2", + "Etc." + ] + }, + { + "company": "Dunder Mifflin", + "position": "Intern", + "startDate": "2008-06", + "endDate": "2008-09", + "summary": "Performed IT administration and deployments for Dunder Mifflin.", + "highlights": [ + "Supervised roll-out of Dunder Mifflin Infinity website.", + "Performed mission-critical system backups and ", + "Etc." + ] + } + ], + "education": [ + { + "institution": "Cornell University", + "gpa": "3.5", + "courses": [ + "Course 1", + "Course 2", + "Course 2" + ], + "startDate": "2005-09", + "endDate": "2008-05" + }, + { + "institution": "Medfield College", + "gpa": "3.2", + "courses": [ + "Course 1", + "Course 2", + "Course 2" + ], + "startDate": "2003-09", + "endDate": "2005-06" + } + ], + "skills": [ + { + "name": "Web", + "level": "advanced", + "keywords": [ + "JavaScript", + "HTML 5", + "CSS", + "LAMP", + "MVC", + "REST" + ] + }, + { + "name": "JavaScript", + "level": "master", + "keywords": [ + "Node.js", + "Angular.js", + "jQuery", + "Bootstrap", + "React.js", + "Backbone.js" + ] + }, + { + "name": "Database", + "level": "intermediate", + "keywords": [ + "MySQL", + "PostgreSQL", + "NoSQL", + "ORM", + "Hibernate" + ] + }, + { + "name": "Cloud", + "level": "intermediate", + "keywords": [ + "AWS", + "EC2", + "RDS", + "S3", + "Azure", + "Dropbox" + ] + }, + { + "name": "Project", + "level": "beginner", + "keywords": [ + "Agile", + "TFS", + "Unified Process", + "MS Project" + ] + } + ], + "volunteer": [ + { + "flavor": "volunteer", + "organization": "Technology for Tots", + "position": "Technical Consultant", + "startDate": "2003-11", + "endDate": "2005-06", + "website": "http://technology-for-tots.org", + "summary": "Summary of this volunteer stint.", + "highlights": [ + "Accomplishment 1", + "Accomplishment 2", + "etc" + ] + }, + { + "flavor": "military", + "organization": "US Army Reserves", + "position": "NCO", + "startDate": "1999-11", + "endDate": "2003-06", + "website": "http://www.usar.army.mil/", + "summary": "Summary of this military stint.", + "highlights": [ + "Accomplishment 1", + "Accomplishment 2", + "etc" + ] + } + ], + "awards": [ + { + "flavor": "award", + "title": "Honorable Mention", + "date": "2012", + "awarder": "Google" + }, + { + "flavor": "honor", + "title": "Summa cum laude", + "date": "2012", + "awarder": "Cornell University" + } + ], + "publications": [ + { + "name": "Building User Interfaces with Electron and Atom", + "publisher": "Code Project", + "releaseDate": "2011", + "website": "http://codeproject.com/build-ui-electron-atom.aspx" + }, + { + "name": "Jane Fullstacker's Blog", + "publisher": "self", + "releaseDate": "2011", + "website": "http://janef.me" + }, + { + "name": "Teach Yourself GORFF in 21 Days", + "publisher": "Amazon", + "releaseDate": "2008", + "website": "http://url.to.publication.com/blah", + "summary": "A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space." + } + ], + "interests": [ + { + "name": "reading", + "summary": "Jane is a fan of mystery novels and courtroom dramas including Agatha Christie and John Grisham.", + "keywords": [ + "mystery", + "Agatha Christie", + "John Grisham" + ] + }, + { + "name": "hiking", + "summary": "Jane enjoys hiking, light mountain climbing, and has four summits under her belt!" + }, + { + "name": "yoga" + } + ], + "references": [ + { + "name": "John Davidson", + "reference": "Jane is awesome! I'd hire her again in a heartbeat." + }, + { + "name": "Elias Fullstacker", + "reference": "I worked with Jane on Jabberwocky and can vouch for her awesome technical capabilities and attention to detail. Insta-hire." + }, + { + "name": "Dana Nevins", + "reference": "I've known Jane personally and professionally for almost ten years. She is one in a million." + } + ], + "languages": [ + { + "language": "English", + "level": "Native" + }, + { + "language": "Spanish", + "level": "Moderate", + "years": 10 + } + ] +} \ No newline at end of file diff --git a/test/expected/modern/resume.md b/test/expected/modern/resume.md new file mode 100644 index 0000000..7a99b55 --- /dev/null +++ b/test/expected/modern/resume.md @@ -0,0 +1,196 @@ +Jane Q. Fullstacker +============ +Email: jdoe@onecoolstartup.io +Tel: 1-650-999-7777 +Web: http://janef.me/blog + +**Imaginary full-stack software developer with 6+ years industry experience** specializing in scalable cloud architectures for this, that, and the other. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two-year-old beagle. + +## SKILLS + + - Web: JavaScript HTML 5 CSS LAMP MVC REST + - JavaScript: Node.js Angular.js jQuery Bootstrap React.js Backbone.js + - Database: MySQL PostgreSQL NoSQL ORM Hibernate + - Cloud: AWS EC2 RDS S3 Azure Dropbox + - Project: Agile TFS Unified Process MS Project + +## EMPLOYMENT + +### *Head Code Ninja*, [One Cool Startup](https://onecool.io/does-not-exist) (2013-09 — 2016-02) + +Development team manager for [OneCoolApp](https://en.wikipedia.org/wiki/Vaporware) and OneCoolWebsite, a free social network tiddlywink generator and lifestyle portal with over 200,000 users. + - Managed a 5-person development team + - Accomplishment 2 + - Etc. + +### *Principal Developer*, [Veridian Dynamics](https://en.wikipedia.org/wiki/Better_Off_Ted#Plot) (2011-07 — 2013-08) + +Developer on numerous projects culminating in technical lead role for the [Jabberwocky project](http://betteroffted.wikia.com/wiki/Jabberwocky) and promotion to principal developer. + - Managed a 5-person development team + - Accomplishment 2 + - Etc. + +### *IT Administrator*, Stark Industries (2008-10 — 2011-06) + +Junior programmer with heavy code responsibilities. Promoted to intermediate role after 6 months. + - Promoted to intermediate developer after 6 months + - Accomplishment 2 + - Etc. + +### *Intern*, Dunder Mifflin (2008-06 — 2008-09) + +Performed IT administration and deployments for Dunder Mifflin. + - Supervised roll-out of Dunder Mifflin Infinity website. + - Performed mission-critical system backups and + - Etc. + + +## PROJECTS + +### *Contributor*, [HackMyResume](http://please.hackmyresume.com) (2015-09 — 2016-02) + +A resume authoring and analysis tool for OS X, Linux, and Windows. +Exemplar user for HackMyResume and FluentCV! + +### *Co-creator*, [Augmented Android](http://project.website.com) (2012-02 — 2014-01) + +An augmented reality app for Android. +Performed flagship product conceptualization and development. + +### *Creator*, [Blog](http://myblog.jane.com/blog) (2016-02 — 2016-02) + +My programming blog. Powered by Jekyll. +Conceptualization, design, development, and deployment. + + +## GOVERNANCE + +### *Member*, [The Mommies Network](http://themommiesnetwork.org) + +Since 2008 I've been a full-time member of the board of directors for TMN. + +### *Academic Contributor*, [Khronos Group](https://www.khronos.org) + +- Participated in GORFF standardization process (Draft 2). + + + +## EDUCATION + +### [Cornell University](https://www.cornell.edu/) (2005-09 — 2008-05) + +A multiline summary of the education. + + +### [Medfield College](https://en.wikipedia.org/wiki/Medfield_College) (2003-09 — 2005-06) + +A multiline summary of the education. + + + +## AFFILIATION + +### *Member*, [IEEE](https://www.ieee.org/index.html) (2013-06 — Current) + +Member in good standing since 2013-06. + +### *Member*, [Apple Developer Network](https://developer.apple.com/) (??? — Current) + +Member of the [Apple Developer program](https://developer.apple.com/) since 2008. + +### *Subscriber*, [MSDN](https://msdn.microsoft.com) (2010-01 — Current) + +Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket. + +### *Coordinator*, Campus Coder's Meetup (2003-02 — 2004-04) + +Host of a monthly **campus-wide meetup for CS students**. Code, coffee, and crullers! + + +## SAMPLES + +### [Asteroids](http://janef.me/asteroids) (2014-09) + +A browser-based space shooter built on Three.js. + +### [Rememberpedia](https://rememberpedia.com) (2015-07) + +A website to help you remember things. + + +## WRITING + +### [Building User Interfaces with Electron and Atom](http://codeproject.com/build-ui-electron-atom.aspx) (2011-01) + + + +### [Jane Fullstacker's Blog](http://janef.me) (2011-01) + + + +### [Teach Yourself GORFF in 21 Days](http://url.to.publication.com/blah) (2008-01) + +A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space. + + +## READING + +### [*Code Complete*](http://www.cc2e.com/Default.aspx), Steve McConnell + +### [*r/programming*](https://www.reddit.com/r/programming/) + +### [*Hacker News / YCombinator*](https://news.ycombinator.com/) + +### [*Coding Horror*](http://www.codinghorror.com), Jeff Atwood + + +## SERVICE + +### *Technical Consultant*, [Technology for Tots](http://technology-for-tots.org) (2003-11 — 2005-06) + +Summary of this volunteer stint. + - Accomplishment 1 + - Accomplishment 2 + - etc + +### *NCO*, [US Army Reserves](http://www.usar.army.mil/) (1999-11 — 2003-06) + +Summary of this military stint. + - Accomplishment 1 + - Accomplishment 2 + - etc + + +## RECOGNITION + +### Honorable Mention, Google + +### Summa cum laude, Cornell University + + +## SPEAKING + +### *Data Warehousing Evolved: DARMA 2.0*, OPENSTART 2013 Developer's Conference (2012) + + + - Won 'Best Presentation on an Emerging Technical Field' prize. + + +## REFERENCES + +### *John Davidson* +Mobile: 9-(999)-999-9999 +Work email: jdavidson@veridiandynamics.com + + +## INTERESTS + +- READING: mystery Agatha Christie John Grisham +Jane is a fan of mystery novels and courtroom dramas including Agatha Christie and John Grisham. + +- HIKING +Jane enjoys hiking, light mountain climbing, and has four summits under her belt! + +- YOGA + + diff --git a/test/expected/modern/resume.pdf b/test/expected/modern/resume.pdf new file mode 100644 index 0000000..270fb04 Binary files /dev/null and b/test/expected/modern/resume.pdf differ diff --git a/test/expected/modern/resume.pdf.html b/test/expected/modern/resume.pdf.html new file mode 100644 index 0000000..40aca4b --- /dev/null +++ b/test/expected/modern/resume.pdf.html @@ -0,0 +1,759 @@ + + + + + + + Jane Q. Fullstacker + + + + + + + + + + + + +
+
+
+ + +

Jane Q. Fullstacker

+ +
+ + + +
+
+ + + + +
+
+
+

info

+
+ Imaginary full-stack software developer with 6+ years industry experience specializing in scalable cloud architectures for this, that, and the other. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two-year-old beagle. +
+ + + + +
+
+
+

Skills

+
+ +
    +
  • +
    +
    +
    +
    + Web +
    + JavaScript + HTML 5 + CSS + LAMP + MVC + REST +
    +
    +
  • +
  • +
    +
    +
    +
    + JavaScript +
    + Node.js + Angular.js + jQuery + Bootstrap + React.js + Backbone.js +
    +
    +
  • +
  • +
    +
    +
    +
    + Database +
    + MySQL + PostgreSQL + NoSQL + ORM + Hibernate +
    +
    +
  • +
  • +
    +
    +
    +
    + Cloud +
    + AWS + EC2 + RDS + S3 + Azure + Dropbox +
    +
    +
  • +
  • +
    +
    +
    +
    + Project +
    + Agile + TFS + Unified Process + MS Project +
    +
    +
  • +
+
+ + + + + + + + + + +
+
+
+

employment

+
+ +
+

Head Code Ninja, + One Cool Startup +

+ 2013-09 — Current + | Agile PM Amazon Web Services AWS +

Development team manager for OneCoolApp and OneCoolWebsite, a free social network tiddlywink generator and lifestyle portal with over 200,000 users.

+

+
    +
  • Managed a 5-person development team
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

Principal Developer, + Veridian Dynamics +

+ 2011-07 — 2013-08 + | C++ C Linux +

Developer on numerous projects culminating in technical lead role for the Jabberwocky project and promotion to principal developer.

+

+
    +
  • Managed a 5-person development team
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

IT Administrator, + Stark Industries +

+ 2008-10 — 2011-06 + | Novell Active Directory Linux Windows +

Junior programmer with heavy code responsibilities. Promoted to intermediate role after 6 months.

+

+
    +
  • Promoted to intermediate developer after 6 months
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

Intern, + Dunder Mifflin +

+ 2008-06 — 2008-09 + | Novell Active Directory Linux Windows +

Performed IT administration and deployments for Dunder Mifflin.

+

+
    +
  • Supervised roll-out of Dunder Mifflin Infinity website.
  • +
  • Performed mission-critical system backups and
  • +
  • Etc.
  • +
+
+
+ + + + + + + +
+
+
+

projects

+
+
+

Contributor, +HackMyResume +

+2015-09 — Current +| JavaScript Node.js cross-platform JSON +

Exemplar user for HackMyResume and FluentCV!

+ +
+
+

Co-creator, +Augmented Android +

+2012-02 — 2014-01 +| Android Java Xamarin +

Performed flagship product conceptualization and development.

+ +
+
+

Creator, +Blog +

+ +Jekyll Ruby HTML 5 JavaScript HTTP LAMP +

Conceptualization, design, development, and deployment.

+ +
+
+ + + + + + +
+
+
+

education

+
+
+

BSCS, +Cornell University +

+2005-09 — 2008-05 +| Course 1 Course 2 Course 2 +

A multiline summary of the education.

+ +
+
+

+Medfield College +

+2003-09 — 2005-06 +| Course 1 Course 2 Course 2 +

A multiline summary of the education.

+ +
+
+ + + + + + +
+
+
+

governance

+
+ +
+

Member, +The Mommies Network +

+2008-02 — 2010-01 +

Since 2008 I've been a full-time member of the board of directors for TMN.

+ +
+
+

Academic Contributor, +Khronos Group +

+2015-01 — Current + +
    +
  • Participated in GORFF standardization process (Draft 2).
  • +
+
+
+ + + + + + + + + + + + + + + +
+
+
+

service

+
+
+

Technical Consultant, + Technology for Tots +

+ 2003-11 — 2005-06 +

Summary of this volunteer stint.

+

+
    +
  • Accomplishment 1
  • +
  • Accomplishment 2
  • +
  • etc
  • +
+
+
+

NCO, + US Army Reserves +

+ 1999-11 — 2003-06 +

Summary of this military stint.

+

+
    +
  • Accomplishment 1
  • +
  • Accomplishment 2
  • +
  • etc
  • +
+
+
+
+
+
+

affiliation

+
+ +
+

Member, + IEEE +

+ 2013-06 — Current +

Member in good standing since 2013-06.

+ + +
+
+

Member, + Apple Developer Network +

+ ??? — Current +

Member of the Apple Developer program since 2008.

+ + +
+
+

Subscriber, + MSDN +

+ 2010-01 — Current +

Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket.

+ + +
+
+

Coordinator, + Campus Coder's Meetup +

+ 2003-02 — 2004-04 +

Host of a monthly campus-wide meetup for CS students. Code, coffee, and crullers!

+ + +
+
+
+
+
+

samples

+
+
+

+ Asteroids +

+ 2014-09 +

A browser-based space shooter built on Three.js.

+ +
+
+

+ Rememberpedia +

+ 2015-07 +

A website to help you remember things.

+ +
+
+
+
+
+

writing

+
+ +
+

Jane Fullstacker's Blog, + self

+ 2011 + +
+
+

Teach Yourself GORFF in 21 Days, + Amazon

+ 2008 +

A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space.

+ +
+
+
+
+
+

reading

+
+
+

Code Complete, Steve McConnell

+ 2016 + +
+
+

r/programming

+ 2016 + +
+ +
+

Coding Horror, Jeff Atwood

+ 2016 + +
+
+
+
+
+

recognition

+
+
+

Honorable Mention, Google

+ 2012 + +
+
+

Summa cum laude, Cornell University

+ 2012 + +
+
+
+
+
+

speaking

+
+
+

Data Warehousing Evolved: DARMA 2.0, OPENSTART 2013 Developer's Conference

+ 2012 + +
    +
  • Won 'Best Presentation on an Emerging Technical Field' prize.
  • +
+
+
+
+
+
+

testimonials

+
+
+

John Davidson

+

Jane is awesome! I'd hire her again in a heartbeat.

+
+
+

Elias Fullstacker

+

I worked with Jane on Jabberwocky and can vouch for her awesome technical capabilities and attention to detail. Insta-hire.

+
+
+

Dana Nevins

+

I've known Jane personally and professionally for almost ten years. She is one in a million.

+
+
+
+
+
+

references

+
+
+

John Davidson

+ +
+
+
+
+
+

interests

+
+
+

reading

+ 2016 +

Jane is a fan of mystery novels and courtroom dramas including Agatha Christie and John Grisham.

+ +
+
+

hiking

+ 2016 +

Jane enjoys hiking, light mountain climbing, and has four summits under her belt!

+ +
+
+

yoga

+ 2016 + +
+
+ +
+
+ + diff --git a/test/expected/modern/resume.png b/test/expected/modern/resume.png new file mode 100644 index 0000000..f2fd740 Binary files /dev/null and b/test/expected/modern/resume.png differ diff --git a/test/expected/modern/resume.png.html b/test/expected/modern/resume.png.html new file mode 100644 index 0000000..a94a3d7 --- /dev/null +++ b/test/expected/modern/resume.png.html @@ -0,0 +1,756 @@ + + + + + + Jane Q. Fullstacker + + + + + + +
+
+
+

Jane Q. Fullstacker

+ +
+
+
+
+
+

info

+ +
Imaginary full-stack software developer with 6+ years industry experience specializing + in scalable cloud architectures for this, that, and the other. A native + of southern CA, Jane enjoys hiking, mystery novels, and the company of + Rufus, her two-year-old beagle.
+
+
+
+

Skills

+ +
+ +
    +
  • +
    +
    +
    +
    Web + +
    JavaScript + HTML 5 + + CSS LAMP + MVC + + REST +
    +
    +
  • +
  • +
    +
    +
    +
    JavaScript + +
    Node.js + Angular.js + + jQuery Bootstrap + React.js + + Backbone.js +
    +
    +
  • +
  • +
    +
    +
    +
    Database + +
    MySQL + PostgreSQL + + NoSQL ORM + Hibernate + +
    +
    +
  • +
  • +
    +
    +
    +
    Cloud + +
    AWS + EC2 + + RDS S3 + Azure + + Dropbox +
    +
    +
  • +
  • +
    +
    +
    +
    Project + +
    Agile + TFS + + Unified Process MS Project + +
    +
    +
  • +
+
+
+
+
+

employment

+ +
+
+

Head Code Ninja, + One Cool Startup +

+ 2013-09 — Current +| Agile PM Amazon Web Services AWS + +

+

Development team manager for OneCoolApp and + OneCoolWebsite, a free social network tiddlywink generator and lifestyle + portal with over 200,000 users.

+

+
    +
  • Managed a 5-person development team
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

Principal Developer, + Veridian Dynamics +

+ 2011-07 — 2013-08 +| C++ C Linux + +

+

Developer on numerous projects culminating in technical lead role for + the Jabberwocky project and + promotion to principal developer.

+

+
    +
  • Managed a 5-person development team
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

IT Administrator, + Stark Industries +

+ 2008-10 — 2011-06 +| Novell Active Directory Linux Windows + +

+

Junior programmer with heavy code responsibilities. Promoted to intermediate + role after 6 months.

+

+
    +
  • Promoted to intermediate developer after 6 months
  • +
  • Accomplishment 2
  • +
  • Etc.
  • +
+
+
+

Intern, + Dunder Mifflin +

+ 2008-06 — 2008-09 +| Novell Active Directory Linux Windows + +

+

Performed IT administration and deployments for Dunder Mifflin.

+

+
    +
  • Supervised roll-out of Dunder Mifflin Infinity website.
  • +
  • Performed mission-critical system backups and
  • +
  • Etc.
  • +
+
+
+
+
+
+

projects

+ +
+
+ +

Contributor, +HackMyResume +

+ +2015-09 — Current +| JavaScript Node.js cross-platform JSON + +

Exemplar user for HackMyResume and FluentCV!

+
+
+ +

Co-creator, +Augmented Android +

+ +2012-02 — 2014-01 +| Android Java Xamarin + +

Performed flagship product conceptualization and development.

+
+
+ +

Creator, +Blog +

+ +Jekyll Ruby HTML 5 JavaScript HTTP LAMP + +

Conceptualization, design, development, and deployment.

+
+
+
+
+
+

education

+ +
+
+ +

BSCS, +Cornell University +

+ +2005-09 — 2008-05 +| Course 1 Course 2 Course 2 + +

A multiline summary of the education.

+
+
+ +

+Medfield College +

+ +2003-09 — 2005-06 +| Course 1 Course 2 Course 2 + +

A multiline summary of the education.

+
+
+
+
+
+

governance

+ +
+
+ +

Member, +The Mommies Network +

+ +2008-02 — 2010-01 + +

Since 2008 I've been a full-time member of the board of directors + for TMN.

+
+
+ +

Academic Contributor, +Khronos Group +

+ +2015-01 — Current + +
    +
  • Participated in GORFF standardization process (Draft 2).
  • +
+
+
+
+
+
+

service

+ +
+
+

Technical Consultant, + Technology for Tots +

+ 2003-11 — 2005-06 + +

+

Summary of this volunteer stint.

+

+
    +
  • Accomplishment 1
  • +
  • Accomplishment 2
  • +
  • etc
  • +
+
+
+

NCO, + US Army Reserves +

+ 1999-11 — 2003-06 + +

+

Summary of this military stint.

+

+
    +
  • Accomplishment 1
  • +
  • Accomplishment 2
  • +
  • etc
  • +
+
+
+
+
+
+

affiliation

+ +
+
+

Member, + IEEE +

+ 2013-06 — Current + +

Member in good standing since 2013-06.

+
+
+

Member, + Apple Developer Network +

+ ??? — Current + +

Member of the Apple Developer program since + 2008.

+
+
+

Subscriber, + MSDN +

+ 2010-01 — Current + +

Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription + toaster and XBox ping pong racket.

+
+
+

Coordinator, + Campus Coder's Meetup +

+ 2003-02 — 2004-04 + +

Host of a monthly campus-wide meetup for CS students. + Code, coffee, and crullers!

+
+
+
+
+
+

samples

+ +
+
+

+ Asteroids +

+ 2014-09 + +

A browser-based space shooter built on Three.js.

+
+
+

+ Rememberpedia +

+ 2015-07 + +

A website to help you remember things.

+
+
+
+
+
+

writing

+ +
+ +
+

Jane Fullstacker's Blog, + self

+ 2011 + +
+
+

Teach Yourself GORFF in 21 Days, + Amazon

+ 2008 + +

A primer on the programming language of GORFF, whose for loops are coterminous + with all of time and space.

+
+
+
+
+
+

reading

+ +
+
+

Code Complete, Steve McConnell

+ 2016 + +
+
+

r/programming

+ 2016 + +
+ +
+

Coding Horror, Jeff Atwood

+ 2016 + +
+
+
+
+
+

recognition

+ +
+
+

Honorable Mention, Google

+ 2012 + +
+
+

Summa cum laude, Cornell University

+ 2012 + +
+
+
+
+
+

speaking

+ +
+
+

Data Warehousing Evolved: DARMA 2.0, OPENSTART 2013 Developer's Conference

+ 2012 + +
    +
  • Won 'Best Presentation on an Emerging Technical Field' prize.
  • +
+
+
+
+
+
+

testimonials

+ +
+
+

John Davidson

+ +

Jane is awesome! I'd hire her again in a heartbeat.

+
+
+

Elias Fullstacker

+ +

I worked with Jane on Jabberwocky and can vouch for her awesome technical + capabilities and attention to detail. Insta-hire.

+
+
+

Dana Nevins

+ +

I've known Jane personally and professionally for almost ten years. + She is one in a million.

+
+
+
+
+
+

references

+ +
+
+

John Davidson

+ +
+
+
+
+
+

interests

+ +
+
+

reading

+ 2016 + +

Jane is a fan of mystery novels and courtroom dramas including Agatha + Christie and John Grisham.

+
+
+

hiking

+ 2016 + +

Jane enjoys hiking, light mountain climbing, and has four summits under + her belt!

+
+
+

yoga

+ 2016 + +
+
+
+
+ + + \ No newline at end of file diff --git a/test/expected/modern/resume.txt b/test/expected/modern/resume.txt new file mode 100644 index 0000000..ad740f2 --- /dev/null +++ b/test/expected/modern/resume.txt @@ -0,0 +1,168 @@ +Jane Q. Fullstacker +Email: jdoe@onecoolstartup.io +Tel: 1-650-999-7777 +Web: http://janef.me/blog +================================================================================ + +**Imaginary full-stack software developer with 6+ years industry experience** specializing in scalable cloud architectures for this, that, and the other. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two-year-old beagle. + +SKILLS ------------------------------------------------------------------------- + +- Web: JavaScript HTML 5 CSS LAMP MVC REST +- JavaScript: Node.js Angular.js jQuery Bootstrap React.js Backbone.js +- Database: MySQL PostgreSQL NoSQL ORM Hibernate +- Cloud: AWS EC2 RDS S3 Azure Dropbox +- Project: Agile TFS Unified Process MS Project + +EMPLOYMENT --------------------------------------------------------------------- + +Head Code Ninja, One Cool Startup (2013-09 — Current) +Development team manager for [OneCoolApp](https://en.wikipedia.org/wiki/Vaporware) and OneCoolWebsite, a free social network tiddlywink generator and lifestyle portal with over 200,000 users. +- Managed a 5-person development team +- Accomplishment 2 +- Etc. + +Principal Developer, Veridian Dynamics (2011-07 — 2013-08) +Developer on numerous projects culminating in technical lead role for the [Jabberwocky project](http://betteroffted.wikia.com/wiki/Jabberwocky) and promotion to principal developer. +- Managed a 5-person development team +- Accomplishment 2 +- Etc. + +IT Administrator, Stark Industries (2008-10 — 2011-06) +Junior programmer with heavy code responsibilities. Promoted to intermediate role after 6 months. +- Promoted to intermediate developer after 6 months +- Accomplishment 2 +- Etc. + +Intern, Dunder Mifflin (2008-06 — 2008-09) +Performed IT administration and deployments for Dunder Mifflin. +- Supervised roll-out of Dunder Mifflin Infinity website. +- Performed mission-critical system backups and +- Etc. + + +PROJECTS ----------------------------------------------------------------------- + +HackMyResume, contributor (2015-09 — Current) +A resume authoring and analysis tool for OS X, Linux, and Windows. +Exemplar user for HackMyResume and FluentCV! + +Augmented Android, co-creator (2012-02 — 2014-01) +An augmented reality app for Android. +Performed flagship product conceptualization and development. + +Blog, creator (??? — Current) +My programming blog. Powered by Jekyll. +Conceptualization, design, development, and deployment. + + +GOVERNANCE --------------------------------------------------------------------- + +Member, The Mommies Network +Since 2008 I've been a full-time member of the board of directors for TMN. + +Academic Contributor, Khronos Group +- Participated in GORFF standardization process (Draft 2). + + + +EDUCATION ---------------------------------------------------------------------- + +Cornell University (2005-09 — 2008-05) +A multiline summary of the education. + +Medfield College (2003-09 — 2005-06) +A multiline summary of the education. + + +AFFILIATION -------------------------------------------------------------------- + +Member, IEEE (2013-06 — Current) +Member in good standing since 2013-06. + +Member, Apple Developer Network (??? — Current) +Member of the [Apple Developer program](https://developer.apple.com/) since 2008. + +Subscriber, MSDN (2010-01 — Current) +Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket. + +Coordinator, Campus Coder's Meetup (2003-02 — 2004-04) +Host of a monthly **campus-wide meetup for CS students**. Code, coffee, and crullers! + + +SAMPLES ------------------------------------------------------------------------ + +Asteroids (2014-09) + +A browser-based space shooter built on Three.js. + +Rememberpedia (2015-07) + +A website to help you remember things. + + +WRITING ------------------------------------------------------------------------ + +Building User Interfaces with Electron and Atom + +Jane Fullstacker's Blog + +Teach Yourself GORFF in 21 Days +A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space. + + +READING ------------------------------------------------------------------------ + +"Code Complete", Steve McConnell +http://www.cc2e.com/Default.aspx + +"r/programming" +https://www.reddit.com/r/programming/ + +"Hacker News / YCombinator" +https://news.ycombinator.com/ + +"Coding Horror", Jeff Atwood +http://www.codinghorror.com + + +SERVICE ------------------------------------------------------------------------ + +Technology for Tots (2003-11 — 2005-06) +Summary of this volunteer stint. +- Accomplishment 1 +- Accomplishment 2 +- etc + +US Army Reserves (1999-11 — 2003-06) +Summary of this military stint. +- Accomplishment 1 +- Accomplishment 2 +- etc + + +RECOGNITION -------------------------------------------------------------------- + +Honorable Mention, Google + +Summa cum laude, Cornell University + + +REFERENCES --------------------------------------------------------------------- + +John Davidson +Mobile: 9-(999)-999-9999 +Work email: jdavidson@veridiandynamics.com + + +INTERESTS ---------------------------------------------------------------------- + +READING: mystery Agatha Christie John Grisham +Jane is a fan of mystery novels and courtroom dramas including Agatha Christie and John Grisham. + +HIKING +Jane enjoys hiking, light mountain climbing, and has four summits under her belt! + +YOGA + + diff --git a/test/expected/modern/resume.yml b/test/expected/modern/resume.yml new file mode 100644 index 0000000..08c71c1 --- /dev/null +++ b/test/expected/modern/resume.yml @@ -0,0 +1,477 @@ +name: 'Jane Q. Fullstacker' +meta: + format: FRESH@0.4.0 + version: 0.3.0 +info: + label: 'Senior Developer' + characterClass: Programmer + brief: '**Imaginary full-stack software developer with 6+ years industry experience** specializing in scalable cloud architectures for this, that, and the other. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two-year-old beagle.' + image: jane_doe.png + quote: 'Be the change you want to see in the world.' +contact: + website: 'http://janef.me/blog' + phone: 1-650-999-7777 + email: jdoe@onecoolstartup.io + other: + - + label: 'Home Phone' + flavor: phone + value: 1-650-999-4321 + - + label: 'Work Phone' + flavor: phone + value: 1-650-777-1234 + - + label: 'Personal Email' + flavor: email + value: jane@janef.me +location: + address: "Jane Fullstacker\n123 Somewhere Rd.\nMountain View, CA 94035" + city: 'Mountain View' + region: CA + code: '94035' + country: US +projects: + - + title: HackMyResume + category: FOSS + role: contributor + url: 'http://please.hackmyresume.com' + start: 2015-09 + repo: 'https://github.com/hacksalot/hackmyresume' + description: 'A resume authoring and analysis tool for OS X, Linux, and Windows.' + summary: 'Exemplar user for HackMyResume and FluentCV!' + keywords: + - JavaScript + - Node.js + - cross-platform + - JSON + media: + - + category: download + url: 'https://www.npmjs.com/package/hackmyresume' + - + title: 'Augmented Android' + category: commercial + role: co-creator + url: 'http://project.website.com' + repo: 'http://repo.website.com' + description: 'An augmented reality app for Android.' + start: 2012-02 + end: 2014-01 + summary: 'Performed flagship product conceptualization and development.' + keywords: + - Android + - Java + - Xamarin + - + title: Blog + category: personal + role: creator + url: 'http://myblog.jane.com/blog' + description: 'My programming blog. Powered by Jekyll.' + summary: 'Conceptualization, design, development, and deployment.' + keywords: + - Jekyll + - Ruby + - 'HTML 5' + - JavaScript + - HTTP + - LAMP +social: + - + label: GitHub + network: GitHub + user: janef-was-here + url: 'https://github.com/janef-was-here' + - + label: Twitter + network: Twitter + user: janef-was-here + url: 'https://twitter.com/janef-was-here' +employment: + summary: '7+ years industry IT and software development experience.' + history: + - + employer: 'One Cool Startup' + url: 'https://onecool.io/does-not-exist' + position: 'Head Code Ninja' + summary: 'Development team manager for [OneCoolApp](https://en.wikipedia.org/wiki/Vaporware) and OneCoolWebsite, a free social network tiddlywink generator and lifestyle portal with over 200,000 users.' + start: 2013-09 + current: true + keywords: + - Agile + - PM + - 'Amazon Web Services' + - AWS + highlights: + - 'Managed a 5-person development team' + - 'Accomplishment 2' + - Etc. + - + employer: 'Veridian Dynamics' + url: 'https://en.wikipedia.org/wiki/Better_Off_Ted#Plot' + position: 'Principal Developer' + summary: 'Developer on numerous projects culminating in technical lead role for the [Jabberwocky project](http://betteroffted.wikia.com/wiki/Jabberwocky) and promotion to principal developer.' + start: 2011-07 + end: 2013-08 + keywords: + - C++ + - C + - Linux + highlights: + - 'Managed a 5-person development team' + - 'Accomplishment 2' + - Etc. + - + employer: 'Stark Industries' + position: 'IT Administrator' + summary: 'Junior programmer with heavy code responsibilities. Promoted to intermediate role after 6 months.' + start: 2008-10 + end: 2011-06 + keywords: + - Novell + - 'Active Directory' + - Linux + - Windows + highlights: + - 'Promoted to intermediate developer after 6 months' + - 'Accomplishment 2' + - Etc. + - + employer: 'Dunder Mifflin' + position: Intern + summary: 'Performed IT administration and deployments for Dunder Mifflin.' + start: 2008-06 + end: 2008-09 + keywords: + - Novell + - 'Active Directory' + - Linux + - Windows + highlights: + - 'Supervised roll-out of Dunder Mifflin Infinity website.' + - 'Performed mission-critical system backups and ' + - Etc. +education: + summary: "" + level: degree + degree: BSCS + history: + - + institution: 'Cornell University' + title: BSCS + url: 'https://www.cornell.edu/' + start: 2005-09 + end: 2008-05 + grade: '3.5' + summary: 'A multiline summary of the education.' + curriculum: + - 'Course 1' + - 'Course 2' + - 'Course 2' + - + institution: 'Medfield College' + url: 'https://en.wikipedia.org/wiki/Medfield_College' + start: 2003-09 + end: 2005-06 + grade: '3.2' + summary: 'A multiline summary of the education.' + curriculum: + - 'Course 1' + - 'Course 2' + - 'Course 2' +affiliation: + summary: 'Member of numerous collegiate and professional groups and organizations.' + history: + - + role: Member + organization: IEEE + url: 'https://www.ieee.org/index.html' + start: 2013-06 + summary: 'Member in good standing since 2013-06.' + - + role: Member + organization: 'Apple Developer Network' + url: 'https://developer.apple.com/' + summary: 'Member of the [Apple Developer program](https://developer.apple.com/) since 2008.' + - + role: Subscriber + organization: MSDN + url: 'https://msdn.microsoft.com' + start: '2010' + summary: 'Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket.' + - + role: Coordinator + organization: 'Campus Coder''s Meetup' + start: 2003-02 + end: 2004-04 + summary: 'Host of a monthly **campus-wide meetup for CS students**. Code, coffee, and crullers!' +service: + summary: 'Active US Army Reserve member and Technology for Tots technical consultant and volunteer coordinator.' + history: + - + flavor: volunteer + position: 'Technical Consultant' + organization: 'Technology for Tots' + url: 'http://technology-for-tots.org' + start: 2003-11 + end: 2005-06 + summary: 'Summary of this volunteer stint.' + highlights: + - 'Accomplishment 1' + - 'Accomplishment 2' + - etc + - + flavor: military + position: NCO + organization: 'US Army Reserves' + url: 'http://www.usar.army.mil/' + start: 1999-11 + end: 2003-06 + summary: 'Summary of this military stint.' + highlights: + - 'Accomplishment 1' + - 'Accomplishment 2' + - etc +skills: + sets: + - + name: Web + level: advanced + skills: + - JavaScript + - 'HTML 5' + - CSS + - LAMP + - MVC + - REST + - + name: JavaScript + level: master + skills: + - Node.js + - Angular.js + - jQuery + - Bootstrap + - React.js + - Backbone.js + - + name: Database + level: intermediate + skills: + - MySQL + - PostgreSQL + - NoSQL + - ORM + - Hibernate + - + name: Cloud + level: intermediate + skills: + - AWS + - EC2 + - RDS + - S3 + - Azure + - Dropbox + - + name: Project + level: beginner + skills: + - Agile + - TFS + - 'Unified Process' + - 'MS Project' + list: + - + name: C++ + id: '1' + summary: 'Optional summary of your experience with the skill.' + level: '9' + years: 7 + proof: 'http://myblog.com/interesting-cplusplus-post' + - + name: Ruby + id: '2' + summary: 'Optional summary of your experience with the skill.' + level: '9' + years: 7 + proof: 'http://myblog.com/interesting-cplusplus-post' + - + name: Xcode + summary: 'Xcode 6 development.' + level: '5' + years: '3' + - + name: Linux + summary: 'Optional summary of your experience with the skill.' + level: advanced + years: 4+ + - + name: Agile + summary: 'Optional summary of your experience with the skill.' + level: B+ + years: 2 +samples: + - + title: Asteroids + summary: 'A browser-based space shooter built on Three.js.' + url: 'http://janef.me/asteroids' + date: 2014-09 + - + title: Rememberpedia + summary: 'A website to help you remember things.' + url: 'https://rememberpedia.com' + date: 2015-07 +writing: + - + title: 'Building User Interfaces with Electron and Atom' + flavor: article + date: '2011' + publisher: + name: 'Code Project' + url: 'http://codeproject.com' + url: 'http://codeproject.com/build-ui-electron-atom.aspx' + - + title: 'Jane Fullstacker''s Blog' + flavor: blog + date: '2011' + publisher: + name: self + url: 'http://janef.me' + url: 'http://janef.me' + - + title: 'Teach Yourself GORFF in 21 Days' + flavor: book + date: '2008' + publisher: + name: Amazon + url: 'https://www.amazon.com' + url: 'http://url.to.publication.com/blah' + author: + - 'Jane Fullstacker' + - 'John Smith' + summary: 'A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space.' +reading: + - + title: 'Code Complete' + flavor: book + url: 'http://www.cc2e.com/Default.aspx' + author: 'Steve McConnell' + - + title: r/programming + flavor: website + url: 'https://www.reddit.com/r/programming/' + - + title: 'Hacker News / YCombinator' + flavor: website + url: 'https://news.ycombinator.com/' + - + title: 'Coding Horror' + flavor: blog + url: 'http://www.codinghorror.com' + author: 'Jeff Atwood' +speaking: + - + title: 'Data Warehousing Evolved: DARMA 2.0' + role: Speaker + event: 'OPENSTART 2013 Developer''s Conference' + location: 'Portland, OR' + date: '2012' + highlights: + - 'Won ''Best Presentation on an Emerging Technical Field'' prize.' +recognition: + - + flavor: award + from: Google + title: 'Honorable Mention' + event: 'Summer of Code' + date: '2012' + - + flavor: honor + from: 'Cornell University' + title: 'Summa cum laude' + event: graduation + date: '2012' +references: + - + name: 'John Davidson' + flavor: professional + private: true + contact: + - + label: Mobile + flavor: phone + value: 9-(999)-999-9999 + - + label: 'Work email' + flavor: email + value: jdavidson@veridiandynamics.com +testimonials: + - + name: 'John Davidson' + flavor: professional + quote: 'Jane is awesome! I''d hire her again in a heartbeat.' + private: true + - + name: 'Elias Fullstacker' + flavor: technical + quote: 'I worked with Jane on Jabberwocky and can vouch for her awesome technical capabilities and attention to detail. Insta-hire.' + - + name: 'Dana Nevins' + flavor: personal + quote: 'I''ve known Jane personally and professionally for almost ten years. She is one in a million.' +languages: + - + language: English + level: Native + - + language: Spanish + level: Moderate + years: 10 +extracurricular: + - + title: 'Bay Area Crew Club' + activity: "" + location: 'San Francisco, CA' + start: 2014-05 + - + title: 'Organizer / Manager' + activity: 'JavaScript Game Development Meetup' + location: 'Austin, TX' + start: 2011-03 + end: 2014-01 + highlights: + - 'Monthly speaker on creative JavaScript development.' + - 'Founded group and oversaw growth to 500+ members.' +governance: + - + flavor: board + role: Member + organization: 'The Mommies Network' + url: 'http://themommiesnetwork.org' + start: 2008-02 + end: 2010-01 + summary: 'Since 2008 I''ve been a full-time member of the board of directors for TMN.' + - + flavor: committee + role: 'Academic Contributor' + organization: 'Khronos Group' + url: 'https://www.khronos.org' + start: 2015-01 + highlights: + - 'Participated in GORFF standardization process (Draft 2).' +interests: + - + name: reading + summary: 'Jane is a fan of mystery novels and courtroom dramas including Agatha Christie and John Grisham.' + keywords: + - mystery + - 'Agatha Christie' + - 'John Grisham' + - + name: hiking + summary: 'Jane enjoys hiking, light mountain climbing, and has four summits under her belt!' + - + name: yoga diff --git a/test/scripts/test-cli.js b/test/scripts/test-cli.js index 657f957..37fdbb2 100644 --- a/test/scripts/test-cli.js +++ b/test/scripts/test-cli.js @@ -18,7 +18,7 @@ var chai = require('chai') describe('Testing CLI interface', function () { - this.timeout(10000); + this.timeout(20000); function run( args, expErr ) { var title = args; diff --git a/test/scripts/test-output.js b/test/scripts/test-output.js index e270184..cd584d6 100644 --- a/test/scripts/test-output.js +++ b/test/scripts/test-output.js @@ -41,7 +41,7 @@ function MyConsoleLog() { describe('Testing Ouput interface', function () { - + this.timeout(20000); // HackMyResume CLI stub. Handle a single HMR invocation. function HackMyResumeOutputStub( args ) { diff --git a/test/scripts/test-themes.js b/test/scripts/test-themes.js index 76b9eab..90964d6 100644 --- a/test/scripts/test-themes.js +++ b/test/scripts/test-themes.js @@ -18,7 +18,8 @@ var chai = require('chai') , READFILES = require('recursive-readdir-sync') , fileContains = require('../../dist/utils/file-contains') , FS = require('fs') - , CHALK = require('chalk'); + , CHALK = require('chalk') + , DIRCOMP = require('dir-compare'); chai.config.includeStack = true; @@ -91,12 +92,26 @@ function folderContains( needle, haystack ) { }); } +function foldersMatch( a, b ) { + var ret; + ret = DIRCOMP.compareSync(a, b, {compareSize: true, skipSubdirs: true}); + if( !ret.same ) return false; + ret = DIRCOMP.compareSync(a, b, {compareContent: true, skipSubdirs: true}); + return ret.differences === 1; +} + genThemes( 'jane-q-fullstacker', ['node_modules/fresh-test-resumes/src/fresh/jane-fullstacker.json'], 'FRESH' ); genThemes( 'johnny-trouble', ['node_modules/fresh-test-resumes/src/fresh/johnny-trouble.json'], 'FRESH' ); genThemes( 'richard-hendriks', ['test/resumes/jrs-0.0.0/richard-hendriks.json'], 'JRS' ); describe('Verifying generated theme files...', function() { + it('Generated files should not contain ICE.', function() { expect( folderContains('@@@@', '../sandbox') ).to.be.false; }); + + it('Generated files should match exemplars...', function() { + expect( foldersMatch( 'test/sandbox/FRESH/jane-q-fullstacker/modern', 'test/expected/modern' ) ).to.be.true; + }); + });