1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-11-22 08:20:11 +00:00

Refactor helpers.

Rebind Handlebars helpers to drop the pesky options hash for standalone
helpers that don't need it. Move block helpers (which do need the
Handlebars options/context) to a separate file for special handling.
This commit is contained in:
hacksalot 2016-02-14 04:10:23 -05:00
parent 6ac2cd490b
commit 917fd8e3f3
16 changed files with 500 additions and 292 deletions

71
dist/helpers/block-helpers.js vendored Normal file
View File

@ -0,0 +1,71 @@
/**
Block helper definitions for HackMyResume / FluentCV.
@license MIT. See LICENSE.md for details.
@module helpers/generic-helpers
*/
(function() {
var BlockHelpers, HMSTATUS, LO, _, unused;
HMSTATUS = require('../core/status-codes');
LO = require('lodash');
_ = require('underscore');
unused = require('../utils/string');
/** Block helper function definitions. */
BlockHelpers = module.exports = {
/**
Emit the enclosed content if the resume has a section with
the specified name. Otherwise, emit an empty string ''.
*/
section: function(title, options) {
var obj, ret;
title = title.trim().toLowerCase();
obj = LO.get(this.r, title);
ret = '';
if (obj) {
if (_.isArray(obj)) {
if (obj.length) {
ret = options.fn(this);
}
} else if (_.isObject(obj)) {
if ((obj.history && obj.history.length) || (obj.sets && obj.sets.length)) {
ret = options.fn(this);
}
}
}
return ret;
},
/**
Emit the enclosed content if the resume has the named
property or subproperty.
*/
has: function(title, options) {
title = title && title.trim().toLowerCase();
if (LO.get(this.r, title)) {
return options.fn(this);
}
},
/**
Return true if either value is truthy.
@method either
*/
either: function(lhs, rhs, options) {
if (lhs || rhs) {
return options.fn(this);
}
}
};
}).call(this);
//# sourceMappingURL=block-helpers.js.map

View File

@ -38,34 +38,61 @@ Generic template helper definitions for HackMyResume / FluentCV.
GenericHelpers = module.exports = { GenericHelpers = module.exports = {
/** /**
Display a formatted date with optional fallback text. Emit a formatted string representing the specified datetime.
Convert the input date to the specified format through Moment.js. If date is Convert the input date to the specified format through Moment.js. If date is
valid, return the formatted date string. If date is null, undefined, or other valid, return the formatted date string. If date is null, undefined, or other
falsy value, return the value of the 'fallback' parameter, if specified, or falsy value, return the value of the 'fallback' parameter, if specified, or
null if no fallback was specified. If date is invalid, but not null/undefined/ null if no fallback was specified. If date is invalid, but not null/undefined/
falsy, return it as-is. falsy, return it as-is.
@param {string|Moment} datetime A date value.
@param {string} [dtFormat='YYYY-MM'] The desired datetime format. Must be a
Moment.js-compatible datetime format.
@param {string|Moment} fallback A fallback value to use if the specified date
is null, undefined, or falsy.
*/ */
formatDate: function(datetime, dtFormat, fallback) { formatDate: function(datetime, dtFormat, fallback) {
var momentDate; var momentDate;
if (datetime == null) {
datetime = void 0;
}
if (dtFormat == null) { if (dtFormat == null) {
dtFormat = 'YYYY-MM'; dtFormat = 'YYYY-MM';
} }
momentDate = moment(datetime); if (datetime && moment.isMoment(datetime)) {
if (momentDate.isValid()) { return datetime.format(dtFormat);
return momentDate.format(dtFormat);
} }
return datetime || (typeof fallback === 'string' ? fallback : (fallback === true ? 'Present' : null)); if (String.is(datetime)) {
momentDate = moment(datetime, dtFormat);
if (momentDate.isValid()) {
return momentDate.format(dtFormat);
}
momentDate = moment(datetime);
if (momentDate.isValid()) {
return momentDate.format(dtFormat);
}
}
return datetime || (typeof fallback === 'string' ? fallback : (fallback === true ? 'Present' : ''));
}, },
/** Display a formatted date. */ /**
Emit a formatted string representing the specified datetime.
@param {string} dateValue A raw date value from the FRESH or JRS resume.
@param {string} [dateFormat='YYYY-MM'] The desired datetime format. Must be
compatible with Moment.js datetime formats.
@param {string} [dateDefault=null] The default date value to use if the dateValue
parameter is null, undefined, or falsy.
*/
date: function(dateValue, dateFormat, dateDefault) { date: function(dateValue, dateFormat, dateDefault) {
var dateValueMoment, dateValueSafe, reserved; var dateValueMoment, dateValueSafe, reserved;
if (arguments.length < 4 || !dateDefault || !String.is(dateDefault)) { if (!dateDefault || !String.is(dateDefault)) {
dateDefault = 'Current'; dateDefault = 'Current';
} }
if (arguments.length < 3 || !dateFormat || !String.is(dateFormat)) { if (!dateFormat || !String.is(dateFormat)) {
dateFormat = 'YYYY-MM'; dateFormat = 'YYYY-MM';
} }
if (!dateValue || !String.is(dateValue)) {
dateValue = null;
}
if (!dateValue) { if (!dateValue) {
return dateDefault; return dateDefault;
} }
@ -84,13 +111,12 @@ Generic template helper definitions for HackMyResume / FluentCV.
/** /**
Given a resume sub-object with a start/end date, format a representation of Given a resume sub-object with a start/end date, format a representation of
the date range. the date range.
@method dateRange
*/ */
dateRange: function(obj, fmt, sep, fallback, options) { dateRange: function(obj, fmt, sep, fallback) {
if (!obj) { if (!obj) {
return ''; return '';
} }
return _fromTo(obj.start, obj.end, fmt, sep, fallback, options); return _fromTo(obj.start, obj.end, fmt, sep, fallback);
}, },
/** /**
@ -125,30 +151,6 @@ Generic template helper definitions for HackMyResume / FluentCV.
} }
}, },
/**
Block-level helper. Emit the enclosed content if the resume has a section with
the specified name. Otherwise, emit an empty string ''.
@method section
*/
section: function(title, options) {
var obj, ret;
title = title.trim().toLowerCase();
obj = LO.get(this.r, title);
ret = '';
if (obj) {
if (_.isArray(obj)) {
if (obj.length) {
ret = options.fn(this);
}
} else if (_.isObject(obj)) {
if ((obj.history && obj.history.length) || (obj.sets && obj.sets.length)) {
ret = options.fn(this);
}
}
}
return ret;
},
/** /**
Emit the size of the specified named font. Emit the size of the specified named font.
@param key {String} A named style from the "fonts" section of the theme's @param key {String} A named style from the "fonts" section of the theme's
@ -306,7 +308,7 @@ Generic template helper definitions for HackMyResume / FluentCV.
}, },
/** /**
Capitalize the first letter of the word. Capitalize the first letter of the word. TODO: Rename
@method section @method section
*/ */
camelCase: function(val) { camelCase: function(val) {
@ -319,20 +321,8 @@ Generic template helper definitions for HackMyResume / FluentCV.
}, },
/** /**
Emit the enclosed content if the resume has the named property or subproperty. Display a user-overridable section title for a FRESH resume theme. Use this in
@method has lieue of hard-coding section titles.
*/
has: function(title, options) {
title = title && title.trim().toLowerCase();
if (LO.get(this.r, title)) {
return options.fn(this);
}
},
/**
Generic template helper function to display a user-overridable section
title for a FRESH resume theme. Use this in lieue of hard-coding section
titles.
Usage: Usage:
@ -464,16 +454,6 @@ Generic template helper definitions for HackMyResume / FluentCV.
} }
}, },
/**
Return true if either value is truthy.
@method either
*/
either: function(lhs, rhs, options) {
if (lhs || rhs) {
return options.fn(this);
}
},
/** /**
Conditional stylesheet link. Creates a link to the specified stylesheet with Conditional stylesheet link. Creates a link to the specified stylesheet with
<link> or embeds the styles inline with <style></style>, depending on the <link> or embeds the styles inline with <style></style>, depending on the

View File

@ -1,12 +1,12 @@
/** /**
Template helper definitions for Handlebars. Template helper definitions for Handlebars.
@license MIT. Copyright (c) 2015 James Devlin / FluentDesk. @license MIT. See LICENSE.md for details.
@module handlebars-helpers.js @module handlebars-helpers.js
*/ */
(function() { (function() {
var HANDLEBARS, _, helpers; var HANDLEBARS, _, blockHelpers, helpers;
HANDLEBARS = require('handlebars'); HANDLEBARS = require('handlebars');
@ -14,6 +14,8 @@ Template helper definitions for Handlebars.
helpers = require('./generic-helpers'); helpers = require('./generic-helpers');
blockHelpers = require('./block-helpers');
/** /**
Register useful Handlebars helpers. Register useful Handlebars helpers.
@ -21,9 +23,24 @@ Template helper definitions for Handlebars.
*/ */
module.exports = function(theme, opts) { module.exports = function(theme, opts) {
var wrappedHelpers;
helpers.theme = theme; helpers.theme = theme;
helpers.opts = opts; helpers.opts = opts;
return HANDLEBARS.registerHelper(helpers); helpers.type = 'handlebars';
wrappedHelpers = _.mapObject(helpers, function(hVal, hKey) {
if (_.isFunction(hVal)) {
_.wrap(hVal, function(func) {
var args;
args = Array.prototype.slice.call(arguments);
args.shift();
args.pop();
return func.apply(this, args);
});
}
return hVal;
}, this);
HANDLEBARS.registerHelper(wrappedHelpers);
HANDLEBARS.registerHelper(blockHelpers);
}; };
}).call(this); }).call(this);

View File

@ -0,0 +1,58 @@
###*
Block helper definitions for HackMyResume / FluentCV.
@license MIT. See LICENSE.md for details.
@module helpers/generic-helpers
###
HMSTATUS = require '../core/status-codes'
LO = require 'lodash'
_ = require 'underscore'
unused = require '../utils/string'
###* Block helper function definitions. ###
BlockHelpers = module.exports =
###*
Emit the enclosed content if the resume has a section with
the specified name. Otherwise, emit an empty string ''.
###
section: ( title, options ) ->
title = title.trim().toLowerCase()
obj = LO.get this.r, title
ret = ''
if obj
if _.isArray obj
if obj.length
ret = options.fn @
else if _.isObject obj
if (obj.history && obj.history.length) || (obj.sets && obj.sets.length)
ret = options.fn @
ret
###*
Emit the enclosed content if the resume has the named
property or subproperty.
###
has: ( title, options ) ->
title = title && title.trim().toLowerCase()
if LO.get this.r, title
return options.fn this
return
###*
Return true if either value is truthy.
@method either
###
either: ( lhs, rhs, options ) -> options.fn @ if lhs || rhs

View File

@ -27,34 +27,70 @@ GenericHelpers = module.exports =
###* ###*
Display a formatted date with optional fallback text. Emit a formatted string representing the specified datetime.
Convert the input date to the specified format through Moment.js. If date is Convert the input date to the specified format through Moment.js. If date is
valid, return the formatted date string. If date is null, undefined, or other valid, return the formatted date string. If date is null, undefined, or other
falsy value, return the value of the 'fallback' parameter, if specified, or falsy value, return the value of the 'fallback' parameter, if specified, or
null if no fallback was specified. If date is invalid, but not null/undefined/ null if no fallback was specified. If date is invalid, but not null/undefined/
falsy, return it as-is. falsy, return it as-is.
@param {string|Moment} datetime A date value.
@param {string} [dtFormat='YYYY-MM'] The desired datetime format. Must be a
Moment.js-compatible datetime format.
@param {string|Moment} fallback A fallback value to use if the specified date
is null, undefined, or falsy.
### ###
formatDate: (datetime, dtFormat, fallback) -> formatDate: (datetime, dtFormat, fallback) ->
datetime ?= undefined
dtFormat ?= 'YYYY-MM' dtFormat ?= 'YYYY-MM'
momentDate = moment datetime
return momentDate.format(dtFormat) if momentDate.isValid()
# If a Moment.js object was passed in, just call format on it
if datetime and moment.isMoment datetime
return datetime.format dtFormat
if String.is datetime
# If a string was passed in, convert to Moment using the 2-paramter
# constructor with an explicit format string.
momentDate = moment datetime, dtFormat
return momentDate.format(dtFormat) if momentDate.isValid()
# If that didn't work, try again with the single-parameter constructor
# but this may throw a deprecation warning
momentDate = moment datetime
return momentDate.format(dtFormat) if momentDate.isValid()
# We weren't able to format the provided datetime. Now do one of three
# things.
# 1. If datetime is non-null/non-falsy, return it. For this helper,
# string date values that we can't parse are assumed to be display dates.
# 2. If datetime IS null or falsy, use the value from the fallback.
# 3. If the fallback value is specifically 'true', emit 'Present'.
datetime || datetime ||
if typeof fallback == 'string' if typeof fallback == 'string'
then fallback then fallback
else (if fallback == true then 'Present' else null) else (if fallback == true then 'Present' else '')
###* Display a formatted date. ### ###*
Emit a formatted string representing the specified datetime.
@param {string} dateValue A raw date value from the FRESH or JRS resume.
@param {string} [dateFormat='YYYY-MM'] The desired datetime format. Must be
compatible with Moment.js datetime formats.
@param {string} [dateDefault=null] The default date value to use if the dateValue
parameter is null, undefined, or falsy.
###
date: (dateValue, dateFormat, dateDefault) -> date: (dateValue, dateFormat, dateDefault) ->
dateDefault = 'Current' if arguments.length < 4 or !dateDefault or !String.is dateDefault
dateFormat = 'YYYY-MM' if arguments.length < 3 or !dateFormat or !String.is dateFormat dateDefault = 'Current' if !dateDefault or !String.is dateDefault
dateFormat = 'YYYY-MM' if !dateFormat or !String.is dateFormat
dateValue = null if !dateValue or !String.is dateValue
return dateDefault if !dateValue return dateDefault if !dateValue
reserved = ['current', 'present', 'now'];
reserved = ['current', 'present', 'now']
dateValueSafe = dateValue.trim().toLowerCase(); dateValueSafe = dateValue.trim().toLowerCase();
return dateValue if _.contains reserved, dateValueSafe return dateValue if _.contains reserved, dateValueSafe
dateValueMoment = moment dateValue, dateFormat dateValueMoment = moment dateValue, dateFormat
return dateValueMoment.format dateFormat if dateValueMoment.isValid() return dateValueMoment.format dateFormat if dateValueMoment.isValid()
dateValue dateValue
@ -64,11 +100,10 @@ GenericHelpers = module.exports =
###* ###*
Given a resume sub-object with a start/end date, format a representation of Given a resume sub-object with a start/end date, format a representation of
the date range. the date range.
@method dateRange
### ###
dateRange: ( obj, fmt, sep, fallback, options ) -> dateRange: ( obj, fmt, sep, fallback ) ->
return '' if !obj return '' if !obj
_fromTo obj.start, obj.end, fmt, sep, fallback, options _fromTo obj.start, obj.end, fmt, sep, fallback
@ -98,26 +133,6 @@ GenericHelpers = module.exports =
###*
Block-level helper. Emit the enclosed content if the resume has a section with
the specified name. Otherwise, emit an empty string ''.
@method section
###
section: ( title, options ) ->
title = title.trim().toLowerCase()
obj = LO.get this.r, title
ret = ''
if obj
if _.isArray obj
if obj.length
ret = options.fn @
else if _.isObject obj
if (obj.history && obj.history.length) || (obj.sets && obj.sets.length)
ret = options.fn @
ret
###* ###*
Emit the size of the specified named font. Emit the size of the specified named font.
@param key {String} A named style from the "fonts" section of the theme's @param key {String} A named style from the "fonts" section of the theme's
@ -280,7 +295,7 @@ GenericHelpers = module.exports =
###* ###*
Capitalize the first letter of the word. Capitalize the first letter of the word. TODO: Rename
@method section @method section
### ###
camelCase: (val) -> camelCase: (val) ->
@ -290,21 +305,8 @@ GenericHelpers = module.exports =
###* ###*
Emit the enclosed content if the resume has the named property or subproperty. Display a user-overridable section title for a FRESH resume theme. Use this in
@method has lieue of hard-coding section titles.
###
has: ( title, options ) ->
title = title && title.trim().toLowerCase()
if LO.get this.r, title
return options.fn this
return
###*
Generic template helper function to display a user-overridable section
title for a FRESH resume theme. Use this in lieue of hard-coding section
titles.
Usage: Usage:
@ -414,8 +416,7 @@ GenericHelpers = module.exports =
Convert text to lowercase. Convert text to lowercase.
@method toLower @method toLower
### ###
toLower: ( txt ) -> toLower: ( txt ) -> if txt && txt.trim() then txt.toLowerCase() else ''
if txt && txt.trim() then txt.toLowerCase() else ''
@ -423,18 +424,7 @@ GenericHelpers = module.exports =
Convert text to lowercase. Convert text to lowercase.
@method toLower @method toLower
### ###
toUpper: ( txt ) -> toUpper: ( txt ) -> if txt && txt.trim() then txt.toUpperCase() else ''
if txt && txt.trim() then txt.toUpperCase() else ''
###*
Return true if either value is truthy.
@method either
###
either: ( lhs, rhs, options ) ->
if lhs || rhs
return options.fn this

View File

@ -1,13 +1,14 @@
###* ###*
Template helper definitions for Handlebars. Template helper definitions for Handlebars.
@license MIT. Copyright (c) 2015 James Devlin / FluentDesk. @license MIT. See LICENSE.md for details.
@module handlebars-helpers.js @module handlebars-helpers.js
### ###
HANDLEBARS = require 'handlebars' HANDLEBARS = require 'handlebars'
_ = require 'underscore' _ = require 'underscore'
helpers = require './generic-helpers' helpers = require './generic-helpers'
blockHelpers = require './block-helpers'
###* ###*
Register useful Handlebars helpers. Register useful Handlebars helpers.
@ -15,6 +16,21 @@ Register useful Handlebars helpers.
### ###
module.exports = ( theme, opts ) -> module.exports = ( theme, opts ) ->
helpers.theme = theme helpers.theme = theme
helpers.opts = opts helpers.opts = opts
HANDLEBARS.registerHelper helpers helpers.type = 'handlebars'
wrappedHelpers = _.mapObject helpers, ( hVal, hKey ) ->
if _.isFunction hVal
_.wrap hVal, (func) ->
args = Array.prototype.slice.call arguments
args.shift() # lose the 1st element (func)
args.pop() # lose the last element (the Handlebars options hash)
func.apply @, args
hVal
, @
HANDLEBARS.registerHelper wrappedHelpers
HANDLEBARS.registerHelper blockHelpers
return

View File

@ -869,7 +869,7 @@
<w:caps/> <w:caps/>
<w:spacing w:val="22"/> <w:spacing w:val="22"/>
</w:rPr> </w:rPr>
<w:t>Agile TFS Unified Process MS Project</w:t> <w:t>Agile TFS JIRA GitHub Unified Process MS Project</w:t>
</w:r> </w:r>
</w:p> </w:p>
</w:tc> </w:tc>
@ -938,12 +938,12 @@
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA"> <w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA">
<w:t>Head Code Ninja, </w:t> <w:t>Head Code Ninja, </w:t>
</w:r> </w:r>
<w:hlink w:dest="https://onecool.io/does-not-exist"> <w:hlink w:dest="https://area52.io/does-not-exist">
<w:r wsp:rsidR="009452CA" wsp:rsidRPr="00606071"> <w:r wsp:rsidR="009452CA" wsp:rsidRPr="00606071">
<w:rPr> <w:rPr>
<w:rStyle w:val="Hyperlink"/> <w:rStyle w:val="Hyperlink"/>
</w:rPr> </w:rPr>
<w:t>One Cool Startup</w:t> <w:t>Area 52</w:t>
</w:r> </w:r>
</w:hlink> </w:hlink>
<w:r wsp:rsidR="00EA0B64"> <w:r wsp:rsidR="00EA0B64">
@ -953,7 +953,7 @@
<w:rPr> <w:rPr>
<w:rStyle w:val="FromTo"/> <w:rStyle w:val="FromTo"/>
</w:rPr> </w:rPr>
<w:t>Sep 2013 — Current</w:t> <w:t>Sep 2013 — Present</w:t>
</w:r> </w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA"> <w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -962,7 +962,7 @@
<w:sz-cs w:val="20"/> <w:sz-cs w:val="20"/>
</w:rPr> </w:rPr>
</w:pPr> </w:pPr>
<w:r><w:rPr></w:rPr><w:t>Development team manager for </w:t></w:r><w:hlink w:dest="https://en.wikipedia.org/wiki/Vaporware"><w:r><w:rPr><w:rStyle w:val="Hyperlink"/></w:rPr><w:t>OneCoolApp</w:t></w:r></w:hlink><w:r><w:rPr></w:rPr><w:t> and OneCoolWebsite, a free social network tiddlywink generator and lifestyle portal with over 200,000 users.</w:t></w:r> <w:r><w:rPr></w:rPr><w:t>Development team manager for </w:t></w:r><w:hlink w:dest="https://en.wikipedia.org/wiki/Vaporware"><w:r><w:rPr><w:b/><w:rStyle w:val="Hyperlink"/></w:rPr><w:t>Quantum Diorama</w:t></w:r></w:hlink><w:r><w:rPr></w:rPr><w:t>, a distributed molecular modeling and analysis suite for Linux and OS X.</w:t></w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRDefault="009452CA" wsp:rsidP="00C146CA"> <w:p wsp:rsidR="00C146CA" wsp:rsidRDefault="009452CA" wsp:rsidP="00C146CA">
@ -1323,7 +1323,7 @@
<w:rPr> <w:rPr>
<w:rStyle w:val="FromTo"/> <w:rStyle w:val="FromTo"/>
</w:rPr> </w:rPr>
<w:t>2015-09 — Current</w:t> <w:t>2015-09 — Present</w:t>
</w:r> </w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA"> <w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -1407,7 +1407,7 @@
<w:rPr> <w:rPr>
<w:rStyle w:val="FromTo"/> <w:rStyle w:val="FromTo"/>
</w:rPr> </w:rPr>
<w:t>??? — Current</w:t> <w:t>??? — Present</w:t>
</w:r> </w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA"> <w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -1524,7 +1524,7 @@
<w:rPr> <w:rPr>
<w:rStyle w:val="FromTo"/> <w:rStyle w:val="FromTo"/>
</w:rPr> </w:rPr>
<w:t>2015-01 — Current</w:t> <w:t>2015-01 — Present</w:t>
</w:r> </w:r>
</w:p> </w:p>
@ -1894,7 +1894,7 @@
<w:rPr> <w:rPr>
<w:rStyle w:val="FromTo"/> <w:rStyle w:val="FromTo"/>
</w:rPr> </w:rPr>
<w:t>Jun 2013 — Current</w:t> <w:t>Jun 2013 — Present</w:t>
</w:r> </w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA"> <w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -1936,7 +1936,7 @@
<w:rPr> <w:rPr>
<w:rStyle w:val="FromTo"/> <w:rStyle w:val="FromTo"/>
</w:rPr> </w:rPr>
<w:t>??? — Current</w:t> <w:t>??? — Present</w:t>
</w:r> </w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA"> <w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -1978,7 +1978,7 @@
<w:rPr> <w:rPr>
<w:rStyle w:val="FromTo"/> <w:rStyle w:val="FromTo"/>
</w:rPr> </w:rPr>
<w:t>Jan 2010 — Current</w:t> <w:t>Jan 2010 — Present</w:t>
</w:r> </w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA"> <w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -2186,33 +2186,6 @@
</w:p> </w:p>
</wx:pBdrGroup> </wx:pBdrGroup>
<wx:sub-section>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="00606071" wsp:rsidP="00E578D4">
<w:pPr>
<w:pStyle w:val="Heading2"/>
<!-- <w:tabs>
<w:tab w:val="right" w:pos="9360"/>
</w:tabs> -->
</w:pPr>
<w:hlink w:dest="http://www.cc2e.com/Default.aspx">
<w:r wsp:rsidR="009452CA" wsp:rsidRPr="00606071">
<w:rPr>
<w:rStyle w:val="Hyperlink"/>
</w:rPr>
<w:t>Code Complete</w:t>
</w:r>
</w:hlink>
<!-- <w:r wsp:rsidR="00EA0B64">
<w:tab/>
</w:r> -->
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA">
<w:t>, Steve McConnell</w:t>
</w:r>
</w:p>
</wx:sub-section>
<wx:sub-section> <wx:sub-section>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="00606071" wsp:rsidP="00E578D4"> <w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="00606071" wsp:rsidP="00E578D4">
<w:pPr> <w:pPr>
@ -2233,6 +2206,14 @@
<w:tab/> <w:tab/>
</w:r> --> </w:r> -->
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
<w:pPr>
<w:rPr>
<w:sz-cs w:val="20"/>
</w:rPr>
</w:pPr>
<w:r><w:rPr></w:rPr><w:t>Daily reader and longtime lurker.</w:t></w:r>
</w:p>
</wx:sub-section> </wx:sub-section>
@ -2257,6 +2238,14 @@
<w:tab/> <w:tab/>
</w:r> --> </w:r> -->
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
<w:pPr>
<w:rPr>
<w:sz-cs w:val="20"/>
</w:rPr>
</w:pPr>
<w:r><w:rPr></w:rPr><w:t>Daily reader and longtime lurker.</w:t></w:r>
</w:p>
</wx:sub-section> </wx:sub-section>
@ -2284,6 +2273,49 @@
<w:t>, Jeff Atwood</w:t> <w:t>, Jeff Atwood</w:t>
</w:r> </w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
<w:pPr>
<w:rPr>
<w:sz-cs w:val="20"/>
</w:rPr>
</w:pPr>
<w:r><w:rPr></w:rPr><w:t>Reader since 2007; member of the StackOverflow Beta.</w:t></w:r>
</w:p>
</wx:sub-section>
<wx:sub-section>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="00606071" wsp:rsidP="00E578D4">
<w:pPr>
<w:pStyle w:val="Heading2"/>
<!-- <w:tabs>
<w:tab w:val="right" w:pos="9360"/>
</w:tabs> -->
</w:pPr>
<w:hlink w:dest="http://www.cc2e.com/Default.aspx">
<w:r wsp:rsidR="009452CA" wsp:rsidRPr="00606071">
<w:rPr>
<w:rStyle w:val="Hyperlink"/>
</w:rPr>
<w:t>Code Complete</w:t>
</w:r>
</w:hlink>
<!-- <w:r wsp:rsidR="00EA0B64">
<w:tab/>
</w:r> -->
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA">
<w:t>, Steve McConnell</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
<w:pPr>
<w:rPr>
<w:sz-cs w:val="20"/>
</w:rPr>
</w:pPr>
<w:r><w:rPr></w:rPr><w:t>My &apos;desert-island&apos; software construction manual.</w:t></w:r>
</w:p>
</wx:sub-section> </wx:sub-section>
@ -2584,7 +2616,7 @@
<w:rPr> <w:rPr>
<w:rStyle w:val="FromTo"/> <w:rStyle w:val="FromTo"/>
</w:rPr> </w:rPr>
<w:t>Feb 2016 — Feb 2016</w:t> <w:t>??? — Present</w:t>
</w:r> </w:r>
</w:p> </w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA"> <w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">

View File

@ -228,9 +228,9 @@
<h2>info</h2> <h2>info</h2>
</header> <strong>Imaginary full-stack software developer with 6+ years industry experience</strong> specializing </header> <strong>Imaginary full-stack software developer with 6+ years industry experience</strong> specializing
in scalable cloud architectures for this, that, and the other. A native in cloud-driven web applications and middleware. A native of southern CA,
of southern CA, Jane enjoys hiking, mystery novels, and the company of Jane enjoys hiking, mystery novels, and the company of Rufus, her two year
Rufus, her two-year-old beagle.</section> old beagle.</section>
<hr> <hr>
<section id="skills"> <section id="skills">
<header> <header>
@ -319,8 +319,11 @@
<span class="label label-keyword">TFS</span> <span class="label label-keyword">TFS</span>
<span <span
class="label label-keyword">Unified Process</span> <span class="label label-keyword">MS Project</span> class="label label-keyword">JIRA</span> <span class="label label-keyword">GitHub</span>
<span class="label label-keyword">Unified Process</span>
<span
class="label label-keyword">MS Project</span>
</div> </div>
</div> </div>
</li> </li>
@ -334,15 +337,14 @@
</header> </header>
<div> <div>
<h3><em>Head Code Ninja</em>, <h3><em>Head Code Ninja</em>,
<a href="https://onecool.io/does-not-exist">One Cool Startup</a> <a href="https://area52.io/does-not-exist">Area 52</a>
</h3> </h3>
<span class="tenure">2013-09 — Current</span> <span class="tenure">2013-09 — Present</span>
| <span class="keywords">Agile PM Amazon Web Services AWS </span> | <span class="keywords">Agile PM C C++ R OpenGL Boost MySQL PostgreSQL JIRA </span>
<p> <p>
<p>Development team manager for <a href="https://en.wikipedia.org/wiki/Vaporware">OneCoolApp</a> and <p>Development team manager for <a href="https://en.wikipedia.org/wiki/Vaporware"><strong>Quantum Diorama</strong></a>,
OneCoolWebsite, a free social network tiddlywink generator and lifestyle a distributed molecular modeling and analysis suite for Linux and OS X.</p>
portal with over 200,000 users.</p>
</p> </p>
<ul> <ul>
<li>Managed a 5-person development team</li> <li>Managed a 5-person development team</li>
@ -355,7 +357,7 @@
<a href="https://en.wikipedia.org/wiki/Better_Off_Ted#Plot">Veridian Dynamics</a> <a href="https://en.wikipedia.org/wiki/Better_Off_Ted#Plot">Veridian Dynamics</a>
</h3> </h3>
<span class="tenure">2011-07 — 2013-08</span> <span class="tenure">2011-07 — 2013-08</span>
| <span class="keywords">C++ C Linux </span> | <span class="keywords">C++ C Linux R Clojure </span>
<p> <p>
<p>Developer on numerous projects culminating in technical lead role for <p>Developer on numerous projects culminating in technical lead role for
@ -414,7 +416,7 @@
<a href="http://please.hackmyresume.com">HackMyResume</a> <a href="http://please.hackmyresume.com">HackMyResume</a>
</h3> </h3>
<span class="tenure">2015-09 — Current</span> <span class="tenure">2015-09 — Present</span>
| <span class="keywords">JavaScript Node.js cross-platform JSON </span> | <span class="keywords">JavaScript Node.js cross-platform JSON </span>
<p>Exemplar user for HackMyResume and FluentCV!</p> <p>Exemplar user for HackMyResume and FluentCV!</p>
@ -493,7 +495,7 @@
<a href="https://www.khronos.org">Khronos Group</a> <a href="https://www.khronos.org">Khronos Group</a>
</h3> </h3>
<span class="tenure">2015-01 — Current</span> <span class="tenure">2015-01 — Present</span>
<ul> <ul>
<li>Participated in GORFF standardization process (Draft 2).</li> <li>Participated in GORFF standardization process (Draft 2).</li>
@ -547,7 +549,7 @@
<h3><em>Member</em>, <h3><em>Member</em>,
<a href="https://www.ieee.org/index.html">IEEE</a> <a href="https://www.ieee.org/index.html">IEEE</a>
</h3> </h3>
<span class="tenure">2013-06 — Current</span> <span class="tenure">2013-06 — Present</span>
<p>Member in good standing since 2013-06.</p> <p>Member in good standing since 2013-06.</p>
</div> </div>
@ -555,7 +557,7 @@
<h3><em>Member</em>, <h3><em>Member</em>,
<a href="https://developer.apple.com/">Apple Developer Network</a> <a href="https://developer.apple.com/">Apple Developer Network</a>
</h3> </h3>
<span class="tenure">??? — Current</span> <span class="tenure">??? — Present</span>
<p>Member of the <a href="https://developer.apple.com/">Apple Developer program</a> since <p>Member of the <a href="https://developer.apple.com/">Apple Developer program</a> since
2008.</p> 2008.</p>
@ -564,7 +566,7 @@
<h3><em>Subscriber</em>, <h3><em>Subscriber</em>,
<a href="https://msdn.microsoft.com">MSDN</a> <a href="https://msdn.microsoft.com">MSDN</a>
</h3> </h3>
<span class="tenure">2010-01 — Current</span> <span class="tenure">2010-01 — Present</span>
<p>Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription <p>Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription
toaster and XBox ping pong racket.</p> toaster and XBox ping pong racket.</p>
@ -635,25 +637,29 @@
<h2>reading</h2> <h2>reading</h2>
</header> </header>
<div>
<h3><em><a href="http://www.cc2e.com/Default.aspx">Code Complete</a></em>, Steve McConnell</h3>
<span class="tenure">2016</span>
</div>
<div> <div>
<h3><em><a href="https://www.reddit.com/r/programming/">r/programming</a></em></h3> <h3><em><a href="https://www.reddit.com/r/programming/">r/programming</a></em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Daily reader and longtime lurker.</p>
</div> </div>
<div> <div>
<h3><em><a href="https://news.ycombinator.com/">Hacker News / YCombinator</a></em></h3> <h3><em><a href="https://news.ycombinator.com/">Hacker News / YCombinator</a></em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Daily reader and longtime lurker.</p>
</div> </div>
<div> <div>
<h3><em><a href="http://www.codinghorror.com">Coding Horror</a></em>, Jeff Atwood</h3> <h3><em><a href="http://www.codinghorror.com">Coding Horror</a></em>, Jeff Atwood</h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Reader since 2007; member of the StackOverflow Beta.</p>
</div>
<div>
<h3><em><a href="http://www.cc2e.com/Default.aspx">Code Complete</a></em>, Steve McConnell</h3>
<span class="tenure">2014</span>
<p>My &#39;desert-island&#39; software construction manual.</p>
</div> </div>
</section> </section>
<hr> <hr>
@ -731,21 +737,21 @@
</header> </header>
<div> <div>
<h3><em>reading</em></h3> <h3><em>reading</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Jane is a fan of mystery novels and courtroom dramas including Agatha <p>Jane is a fan of mystery novels and courtroom dramas including Agatha
Christie and John Grisham.</p> Christie and John Grisham.</p>
</div> </div>
<div> <div>
<h3><em>hiking</em></h3> <h3><em>hiking</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Jane enjoys hiking, light mountain climbing, and has four summits under <p>Jane enjoys hiking, light mountain climbing, and has four summits under
her belt!</p> her belt!</p>
</div> </div>
<div> <div>
<h3><em>yoga</em></h3> <h3><em>yoga</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
</div> </div>
</section> </section>

View File

@ -2,7 +2,7 @@
"basics": { "basics": {
"name": "Jane Q. Fullstacker", "name": "Jane Q. Fullstacker",
"label": "Senior Developer", "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.", "summary": "**Imaginary full-stack software developer with 6+ years industry experience** specializing in cloud-driven web applications and middleware. 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", "website": "http://janef.me/blog",
"phone": "1-650-999-7777", "phone": "1-650-999-7777",
"email": "jdoe@onecoolstartup.io", "email": "jdoe@onecoolstartup.io",
@ -29,11 +29,11 @@
}, },
"work": [ "work": [
{ {
"company": "One Cool Startup", "company": "Area 52",
"website": "https://onecool.io/does-not-exist", "website": "https://area52.io/does-not-exist",
"position": "Head Code Ninja", "position": "Head Code Ninja",
"startDate": "2013-09", "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.", "summary": "Development team manager for [**Quantum Diorama**](https://en.wikipedia.org/wiki/Vaporware), a distributed molecular modeling and analysis suite for Linux and OS X.",
"highlights": [ "highlights": [
"Managed a 5-person development team", "Managed a 5-person development team",
"Accomplishment 2", "Accomplishment 2",
@ -156,6 +156,8 @@
"keywords": [ "keywords": [
"Agile", "Agile",
"TFS", "TFS",
"JIRA",
"GitHub",
"Unified Process", "Unified Process",
"MS Project" "MS Project"
] ]

View File

@ -4,7 +4,7 @@ Email: jdoe@onecoolstartup.io
Tel: 1-650-999-7777 Tel: 1-650-999-7777
Web: http://janef.me/blog 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. **Imaginary full-stack software developer with 6+ years industry experience** specializing in cloud-driven web applications and middleware. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two year old beagle.
## SKILLS ## SKILLS
@ -12,13 +12,13 @@ Web: http://janef.me/blog
- JavaScript: Node.js Angular.js jQuery Bootstrap React.js Backbone.js - JavaScript: Node.js Angular.js jQuery Bootstrap React.js Backbone.js
- Database: MySQL PostgreSQL NoSQL ORM Hibernate - Database: MySQL PostgreSQL NoSQL ORM Hibernate
- Cloud: AWS EC2 RDS S3 Azure Dropbox - Cloud: AWS EC2 RDS S3 Azure Dropbox
- Project: Agile TFS Unified Process MS Project - Project: Agile TFS JIRA GitHub Unified Process MS Project
## EMPLOYMENT ## EMPLOYMENT
### *Head Code Ninja*, [One Cool Startup](https://onecool.io/does-not-exist) (2013-09 — 2016-02) ### *Head Code Ninja*, [Area 52](https://area52.io/does-not-exist) (2013-09 — Present)
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. Development team manager for [**Quantum Diorama**](https://en.wikipedia.org/wiki/Vaporware), a distributed molecular modeling and analysis suite for Linux and OS X.
- Managed a 5-person development team - Managed a 5-person development team
- Accomplishment 2 - Accomplishment 2
- Etc. - Etc.
@ -47,7 +47,7 @@ Performed IT administration and deployments for Dunder Mifflin.
## PROJECTS ## PROJECTS
### *Contributor*, [HackMyResume](http://please.hackmyresume.com) (2015-09 — 2016-02) ### *Contributor*, [HackMyResume](http://please.hackmyresume.com) (2015-09 — Present)
A resume authoring and analysis tool for OS X, Linux, and Windows. A resume authoring and analysis tool for OS X, Linux, and Windows.
Exemplar user for HackMyResume and FluentCV! Exemplar user for HackMyResume and FluentCV!
@ -57,7 +57,7 @@ Exemplar user for HackMyResume and FluentCV!
An augmented reality app for Android. An augmented reality app for Android.
Performed flagship product conceptualization and development. Performed flagship product conceptualization and development.
### *Creator*, [Blog](http://myblog.jane.com/blog) (2016-02 — 2016-02) ### *Creator*, [Blog](http://myblog.jane.com/blog) (??? — Present)
My programming blog. Powered by Jekyll. My programming blog. Powered by Jekyll.
Conceptualization, design, development, and deployment. Conceptualization, design, development, and deployment.
@ -90,15 +90,15 @@ A multiline summary of the education.
## AFFILIATION ## AFFILIATION
### *Member*, [IEEE](https://www.ieee.org/index.html) (2013-06 — Current) ### *Member*, [IEEE](https://www.ieee.org/index.html) (2013-06 — Present)
Member in good standing since 2013-06. Member in good standing since 2013-06.
### *Member*, [Apple Developer Network](https://developer.apple.com/) (??? — Current) ### *Member*, [Apple Developer Network](https://developer.apple.com/) (??? — Present)
Member of the [Apple Developer program](https://developer.apple.com/) since 2008. Member of the [Apple Developer program](https://developer.apple.com/) since 2008.
### *Subscriber*, [MSDN](https://msdn.microsoft.com) (2010-01 — Current) ### *Subscriber*, [MSDN](https://msdn.microsoft.com) (2010-01 — Present)
Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket. Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket.
@ -135,13 +135,17 @@ A primer on the programming language of GORFF, whose for loops are coterminous w
## READING ## READING
### [*Code Complete*](http://www.cc2e.com/Default.aspx), Steve McConnell
### [*r/programming*](https://www.reddit.com/r/programming/) ### [*r/programming*](https://www.reddit.com/r/programming/)
Daily reader and longtime lurker.
### [*Hacker News / YCombinator*](https://news.ycombinator.com/) ### [*Hacker News / YCombinator*](https://news.ycombinator.com/)
Daily reader and longtime lurker.
### [*Coding Horror*](http://www.codinghorror.com), Jeff Atwood ### [*Coding Horror*](http://www.codinghorror.com), Jeff Atwood
Reader since 2007; member of the StackOverflow Beta.
### [*Code Complete*](http://www.cc2e.com/Default.aspx), Steve McConnell
My 'desert-island' software construction manual.
## SERVICE ## SERVICE
@ -163,9 +167,9 @@ Summary of this military stint.
## RECOGNITION ## RECOGNITION
### Honorable Mention, Google ### Honorable Mention, Google (Jan 2012)
### Summa cum laude, Cornell University ### Summa cum laude, Cornell University (Jan 2012)
## SPEAKING ## SPEAKING

Binary file not shown.

View File

@ -242,7 +242,7 @@ a:hover {
<header> <header>
<span class="fa fa-lg fa-info"></span> <h2>info</h2> <span class="fa fa-lg fa-info"></span> <h2>info</h2>
</header> </header>
<strong>Imaginary full-stack software developer with 6+ years industry experience</strong> 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. <strong>Imaginary full-stack software developer with 6+ years industry experience</strong> specializing in cloud-driven web applications and middleware. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two year old beagle.
</section> </section>
@ -327,6 +327,8 @@ a:hover {
<div class="space-top labels"> <div class="space-top labels">
<span class="label label-keyword">Agile</span> <span class="label label-keyword">Agile</span>
<span class="label label-keyword">TFS</span> <span class="label label-keyword">TFS</span>
<span class="label label-keyword">JIRA</span>
<span class="label label-keyword">GitHub</span>
<span class="label label-keyword">Unified Process</span> <span class="label label-keyword">Unified Process</span>
<span class="label label-keyword">MS Project</span> <span class="label label-keyword">MS Project</span>
</div> </div>
@ -352,11 +354,11 @@ a:hover {
<div> <div>
<h3><em>Head Code Ninja</em>, <h3><em>Head Code Ninja</em>,
<a href="https://onecool.io/does-not-exist">One Cool Startup</a> <a href="https://area52.io/does-not-exist">Area 52</a>
</h3> </h3>
<span class="tenure">2013-09 — Current</span> <span class="tenure">2013-09 — Present</span>
| <span class="keywords">Agile PM Amazon Web Services AWS </span> | <span class="keywords">Agile PM C C++ R OpenGL Boost MySQL PostgreSQL JIRA </span>
<p><p>Development team manager for <a href="https://en.wikipedia.org/wiki/Vaporware">OneCoolApp</a> and OneCoolWebsite, a free social network tiddlywink generator and lifestyle portal with over 200,000 users.</p> <p><p>Development team manager for <a href="https://en.wikipedia.org/wiki/Vaporware"><strong>Quantum Diorama</strong></a>, a distributed molecular modeling and analysis suite for Linux and OS X.</p>
</p> </p>
<ul> <ul>
<li>Managed a 5-person development team</li> <li>Managed a 5-person development team</li>
@ -369,7 +371,7 @@ a:hover {
<a href="https://en.wikipedia.org/wiki/Better_Off_Ted#Plot">Veridian Dynamics</a> <a href="https://en.wikipedia.org/wiki/Better_Off_Ted#Plot">Veridian Dynamics</a>
</h3> </h3>
<span class="tenure">2011-07 — 2013-08</span> <span class="tenure">2011-07 — 2013-08</span>
| <span class="keywords">C++ C Linux </span> | <span class="keywords">C++ C Linux R Clojure </span>
<p><p>Developer on numerous projects culminating in technical lead role for the <a href="http://betteroffted.wikia.com/wiki/Jabberwocky">Jabberwocky project</a> and promotion to principal developer.</p> <p><p>Developer on numerous projects culminating in technical lead role for the <a href="http://betteroffted.wikia.com/wiki/Jabberwocky">Jabberwocky project</a> and promotion to principal developer.</p>
</p> </p>
<ul> <ul>
@ -423,7 +425,7 @@ a:hover {
<h3><em>Contributor</em>, <h3><em>Contributor</em>,
<a href="http://please.hackmyresume.com">HackMyResume</a> <a href="http://please.hackmyresume.com">HackMyResume</a>
</h3> </h3>
<span class="tenure">2015-09 — Current</span> <span class="tenure">2015-09 — Present</span>
| <span class="keywords">JavaScript Node.js cross-platform JSON </span> | <span class="keywords">JavaScript Node.js cross-platform JSON </span>
<p>Exemplar user for HackMyResume and FluentCV!</p> <p>Exemplar user for HackMyResume and FluentCV!</p>
@ -501,7 +503,7 @@ a:hover {
<h3><em>Academic Contributor</em>, <h3><em>Academic Contributor</em>,
<a href="https://www.khronos.org">Khronos Group</a> <a href="https://www.khronos.org">Khronos Group</a>
</h3> </h3>
<span class="tenure">2015-01 — Current</span> <span class="tenure">2015-01 — Present</span>
<ul> <ul>
<li>Participated in GORFF standardization process (Draft 2).</li> <li>Participated in GORFF standardization process (Draft 2).</li>
@ -565,7 +567,7 @@ a:hover {
<h3><em>Member</em>, <h3><em>Member</em>,
<a href="https://www.ieee.org/index.html">IEEE</a> <a href="https://www.ieee.org/index.html">IEEE</a>
</h3> </h3>
<span class="tenure">2013-06 — Current</span> <span class="tenure">2013-06 — Present</span>
<p>Member in good standing since 2013-06.</p> <p>Member in good standing since 2013-06.</p>
@ -574,7 +576,7 @@ a:hover {
<h3><em>Member</em>, <h3><em>Member</em>,
<a href="https://developer.apple.com/">Apple Developer Network</a> <a href="https://developer.apple.com/">Apple Developer Network</a>
</h3> </h3>
<span class="tenure">??? — Current</span> <span class="tenure">??? — Present</span>
<p>Member of the <a href="https://developer.apple.com/">Apple Developer program</a> since 2008.</p> <p>Member of the <a href="https://developer.apple.com/">Apple Developer program</a> since 2008.</p>
@ -583,7 +585,7 @@ a:hover {
<h3><em>Subscriber</em>, <h3><em>Subscriber</em>,
<a href="https://msdn.microsoft.com">MSDN</a> <a href="https://msdn.microsoft.com">MSDN</a>
</h3> </h3>
<span class="tenure">2010-01 — Current</span> <span class="tenure">2010-01 — Present</span>
<p>Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket.</p> <p>Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket.</p>
@ -651,23 +653,27 @@ a:hover {
<span class="fa fa-lg fa-book"></span> <h2>reading</h2> <span class="fa fa-lg fa-book"></span> <h2>reading</h2>
</header> </header>
<div> <div>
<h3><em><a href="http://www.cc2e.com/Default.aspx">Code Complete</a></em>, Steve McConnell</h3>
<span class="tenure">2016</span>
</div>
<div>
<h3><em><a href="https://www.reddit.com/r/programming/">r/programming</a></em></h3> <h3><em><a href="https://www.reddit.com/r/programming/">r/programming</a></em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Daily reader and longtime lurker.</p>
</div> </div>
<div> <div>
<h3><em><a href="https://news.ycombinator.com/">Hacker News / YCombinator</a></em></h3> <h3><em><a href="https://news.ycombinator.com/">Hacker News / YCombinator</a></em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Daily reader and longtime lurker.</p>
</div> </div>
<div> <div>
<h3><em><a href="http://www.codinghorror.com">Coding Horror</a></em>, Jeff Atwood</h3> <h3><em><a href="http://www.codinghorror.com">Coding Horror</a></em>, Jeff Atwood</h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Reader since 2007; member of the StackOverflow Beta.</p>
</div>
<div>
<h3><em><a href="http://www.cc2e.com/Default.aspx">Code Complete</a></em>, Steve McConnell</h3>
<span class="tenure">2014</span>
<p>My &#39;desert-island&#39; software construction manual.</p>
</div> </div>
</section> </section>
@ -736,19 +742,19 @@ a:hover {
</header> </header>
<div> <div>
<h3><em>reading</em></h3> <h3><em>reading</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Jane is a fan of mystery novels and courtroom dramas including Agatha Christie and John Grisham.</p> <p>Jane is a fan of mystery novels and courtroom dramas including Agatha Christie and John Grisham.</p>
</div> </div>
<div> <div>
<h3><em>hiking</em></h3> <h3><em>hiking</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Jane enjoys hiking, light mountain climbing, and has four summits under her belt!</p> <p>Jane enjoys hiking, light mountain climbing, and has four summits under her belt!</p>
</div> </div>
<div> <div>
<h3><em>yoga</em></h3> <h3><em>yoga</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
</div> </div>
</section> </section>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 245 KiB

After

Width:  |  Height:  |  Size: 251 KiB

View File

@ -228,9 +228,9 @@
<h2>info</h2> <h2>info</h2>
</header> <strong>Imaginary full-stack software developer with 6+ years industry experience</strong> specializing </header> <strong>Imaginary full-stack software developer with 6+ years industry experience</strong> specializing
in scalable cloud architectures for this, that, and the other. A native in cloud-driven web applications and middleware. A native of southern CA,
of southern CA, Jane enjoys hiking, mystery novels, and the company of Jane enjoys hiking, mystery novels, and the company of Rufus, her two year
Rufus, her two-year-old beagle.</section> old beagle.</section>
<hr> <hr>
<section id="skills"> <section id="skills">
<header> <header>
@ -319,8 +319,11 @@
<span class="label label-keyword">TFS</span> <span class="label label-keyword">TFS</span>
<span <span
class="label label-keyword">Unified Process</span> <span class="label label-keyword">MS Project</span> class="label label-keyword">JIRA</span> <span class="label label-keyword">GitHub</span>
<span class="label label-keyword">Unified Process</span>
<span
class="label label-keyword">MS Project</span>
</div> </div>
</div> </div>
</li> </li>
@ -334,15 +337,14 @@
</header> </header>
<div> <div>
<h3><em>Head Code Ninja</em>, <h3><em>Head Code Ninja</em>,
<a href="https://onecool.io/does-not-exist">One Cool Startup</a> <a href="https://area52.io/does-not-exist">Area 52</a>
</h3> </h3>
<span class="tenure">2013-09 — Current</span> <span class="tenure">2013-09 — Present</span>
| <span class="keywords">Agile PM Amazon Web Services AWS </span> | <span class="keywords">Agile PM C C++ R OpenGL Boost MySQL PostgreSQL JIRA </span>
<p> <p>
<p>Development team manager for <a href="https://en.wikipedia.org/wiki/Vaporware">OneCoolApp</a> and <p>Development team manager for <a href="https://en.wikipedia.org/wiki/Vaporware"><strong>Quantum Diorama</strong></a>,
OneCoolWebsite, a free social network tiddlywink generator and lifestyle a distributed molecular modeling and analysis suite for Linux and OS X.</p>
portal with over 200,000 users.</p>
</p> </p>
<ul> <ul>
<li>Managed a 5-person development team</li> <li>Managed a 5-person development team</li>
@ -355,7 +357,7 @@
<a href="https://en.wikipedia.org/wiki/Better_Off_Ted#Plot">Veridian Dynamics</a> <a href="https://en.wikipedia.org/wiki/Better_Off_Ted#Plot">Veridian Dynamics</a>
</h3> </h3>
<span class="tenure">2011-07 — 2013-08</span> <span class="tenure">2011-07 — 2013-08</span>
| <span class="keywords">C++ C Linux </span> | <span class="keywords">C++ C Linux R Clojure </span>
<p> <p>
<p>Developer on numerous projects culminating in technical lead role for <p>Developer on numerous projects culminating in technical lead role for
@ -414,7 +416,7 @@
<a href="http://please.hackmyresume.com">HackMyResume</a> <a href="http://please.hackmyresume.com">HackMyResume</a>
</h3> </h3>
<span class="tenure">2015-09 — Current</span> <span class="tenure">2015-09 — Present</span>
| <span class="keywords">JavaScript Node.js cross-platform JSON </span> | <span class="keywords">JavaScript Node.js cross-platform JSON </span>
<p>Exemplar user for HackMyResume and FluentCV!</p> <p>Exemplar user for HackMyResume and FluentCV!</p>
@ -493,7 +495,7 @@
<a href="https://www.khronos.org">Khronos Group</a> <a href="https://www.khronos.org">Khronos Group</a>
</h3> </h3>
<span class="tenure">2015-01 — Current</span> <span class="tenure">2015-01 — Present</span>
<ul> <ul>
<li>Participated in GORFF standardization process (Draft 2).</li> <li>Participated in GORFF standardization process (Draft 2).</li>
@ -547,7 +549,7 @@
<h3><em>Member</em>, <h3><em>Member</em>,
<a href="https://www.ieee.org/index.html">IEEE</a> <a href="https://www.ieee.org/index.html">IEEE</a>
</h3> </h3>
<span class="tenure">2013-06 — Current</span> <span class="tenure">2013-06 — Present</span>
<p>Member in good standing since 2013-06.</p> <p>Member in good standing since 2013-06.</p>
</div> </div>
@ -555,7 +557,7 @@
<h3><em>Member</em>, <h3><em>Member</em>,
<a href="https://developer.apple.com/">Apple Developer Network</a> <a href="https://developer.apple.com/">Apple Developer Network</a>
</h3> </h3>
<span class="tenure">??? — Current</span> <span class="tenure">??? — Present</span>
<p>Member of the <a href="https://developer.apple.com/">Apple Developer program</a> since <p>Member of the <a href="https://developer.apple.com/">Apple Developer program</a> since
2008.</p> 2008.</p>
@ -564,7 +566,7 @@
<h3><em>Subscriber</em>, <h3><em>Subscriber</em>,
<a href="https://msdn.microsoft.com">MSDN</a> <a href="https://msdn.microsoft.com">MSDN</a>
</h3> </h3>
<span class="tenure">2010-01 — Current</span> <span class="tenure">2010-01 — Present</span>
<p>Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription <p>Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription
toaster and XBox ping pong racket.</p> toaster and XBox ping pong racket.</p>
@ -635,25 +637,29 @@
<h2>reading</h2> <h2>reading</h2>
</header> </header>
<div>
<h3><em><a href="http://www.cc2e.com/Default.aspx">Code Complete</a></em>, Steve McConnell</h3>
<span class="tenure">2016</span>
</div>
<div> <div>
<h3><em><a href="https://www.reddit.com/r/programming/">r/programming</a></em></h3> <h3><em><a href="https://www.reddit.com/r/programming/">r/programming</a></em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Daily reader and longtime lurker.</p>
</div> </div>
<div> <div>
<h3><em><a href="https://news.ycombinator.com/">Hacker News / YCombinator</a></em></h3> <h3><em><a href="https://news.ycombinator.com/">Hacker News / YCombinator</a></em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Daily reader and longtime lurker.</p>
</div> </div>
<div> <div>
<h3><em><a href="http://www.codinghorror.com">Coding Horror</a></em>, Jeff Atwood</h3> <h3><em><a href="http://www.codinghorror.com">Coding Horror</a></em>, Jeff Atwood</h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Reader since 2007; member of the StackOverflow Beta.</p>
</div>
<div>
<h3><em><a href="http://www.cc2e.com/Default.aspx">Code Complete</a></em>, Steve McConnell</h3>
<span class="tenure">2014</span>
<p>My &#39;desert-island&#39; software construction manual.</p>
</div> </div>
</section> </section>
<hr> <hr>
@ -731,21 +737,21 @@
</header> </header>
<div> <div>
<h3><em>reading</em></h3> <h3><em>reading</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Jane is a fan of mystery novels and courtroom dramas including Agatha <p>Jane is a fan of mystery novels and courtroom dramas including Agatha
Christie and John Grisham.</p> Christie and John Grisham.</p>
</div> </div>
<div> <div>
<h3><em>hiking</em></h3> <h3><em>hiking</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
<p>Jane enjoys hiking, light mountain climbing, and has four summits under <p>Jane enjoys hiking, light mountain climbing, and has four summits under
her belt!</p> her belt!</p>
</div> </div>
<div> <div>
<h3><em>yoga</em></h3> <h3><em>yoga</em></h3>
<span class="tenure">2016</span> <span class="tenure">Current</span>
</div> </div>
</section> </section>

View File

@ -4,7 +4,7 @@ Tel: 1-650-999-7777
Web: http://janef.me/blog 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. **Imaginary full-stack software developer with 6+ years industry experience** specializing in cloud-driven web applications and middleware. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two year old beagle.
SKILLS ------------------------------------------------------------------------- SKILLS -------------------------------------------------------------------------
@ -12,12 +12,12 @@ SKILLS -------------------------------------------------------------------------
- JavaScript: Node.js Angular.js jQuery Bootstrap React.js Backbone.js - JavaScript: Node.js Angular.js jQuery Bootstrap React.js Backbone.js
- Database: MySQL PostgreSQL NoSQL ORM Hibernate - Database: MySQL PostgreSQL NoSQL ORM Hibernate
- Cloud: AWS EC2 RDS S3 Azure Dropbox - Cloud: AWS EC2 RDS S3 Azure Dropbox
- Project: Agile TFS Unified Process MS Project - Project: Agile TFS JIRA GitHub Unified Process MS Project
EMPLOYMENT --------------------------------------------------------------------- EMPLOYMENT ---------------------------------------------------------------------
Head Code Ninja, One Cool Startup (2013-09 — Current) Head Code Ninja, Area 52 (2013-09 — Present)
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. Development team manager for [**Quantum Diorama**](https://en.wikipedia.org/wiki/Vaporware), a distributed molecular modeling and analysis suite for Linux and OS X.
- Managed a 5-person development team - Managed a 5-person development team
- Accomplishment 2 - Accomplishment 2
- Etc. - Etc.
@ -43,7 +43,7 @@ Performed IT administration and deployments for Dunder Mifflin.
PROJECTS ----------------------------------------------------------------------- PROJECTS -----------------------------------------------------------------------
HackMyResume, contributor (2015-09 — Current) HackMyResume, contributor (2015-09 — Present)
A resume authoring and analysis tool for OS X, Linux, and Windows. A resume authoring and analysis tool for OS X, Linux, and Windows.
Exemplar user for HackMyResume and FluentCV! Exemplar user for HackMyResume and FluentCV!
@ -51,7 +51,7 @@ Augmented Android, co-creator (2012-02 — 2014-01)
An augmented reality app for Android. An augmented reality app for Android.
Performed flagship product conceptualization and development. Performed flagship product conceptualization and development.
Blog, creator (??? — Current) Blog, creator (??? — Present)
My programming blog. Powered by Jekyll. My programming blog. Powered by Jekyll.
Conceptualization, design, development, and deployment. Conceptualization, design, development, and deployment.
@ -77,13 +77,13 @@ A multiline summary of the education.
AFFILIATION -------------------------------------------------------------------- AFFILIATION --------------------------------------------------------------------
Member, IEEE (2013-06 — Current) Member, IEEE (2013-06 — Present)
Member in good standing since 2013-06. Member in good standing since 2013-06.
Member, Apple Developer Network (??? — Current) Member, Apple Developer Network (??? — Present)
Member of the [Apple Developer program](https://developer.apple.com/) since 2008. Member of the [Apple Developer program](https://developer.apple.com/) since 2008.
Subscriber, MSDN (2010-01 — Current) Subscriber, MSDN (2010-01 — Present)
Super-Ultra-gold level Ultimate Access MSDN subscriber package with subscription toaster and XBox ping pong racket. 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) Coordinator, Campus Coder's Meetup (2003-02 — 2004-04)
@ -103,27 +103,32 @@ A website to help you remember things.
WRITING ------------------------------------------------------------------------ WRITING ------------------------------------------------------------------------
Building User Interfaces with Electron and Atom Building User Interfaces with Electron and Atom (2011-01)
Jane Fullstacker's Blog Jane Fullstacker's Blog (2011-01)
Teach Yourself GORFF in 21 Days Teach Yourself GORFF in 21 Days (2008-01)
A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space. A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space.
READING ------------------------------------------------------------------------ READING ------------------------------------------------------------------------
"Code Complete", Steve McConnell
http://www.cc2e.com/Default.aspx
"r/programming" "r/programming"
https://www.reddit.com/r/programming/ https://www.reddit.com/r/programming/
Daily reader and longtime lurker.
"Hacker News / YCombinator" "Hacker News / YCombinator"
https://news.ycombinator.com/ https://news.ycombinator.com/
Daily reader and longtime lurker.
"Coding Horror", Jeff Atwood "Coding Horror", Jeff Atwood
http://www.codinghorror.com http://www.codinghorror.com
Reader since 2007; member of the StackOverflow Beta.
"Code Complete", Steve McConnell
http://www.cc2e.com/Default.aspx
My 'desert-island' software construction manual.
2014-09
SERVICE ------------------------------------------------------------------------ SERVICE ------------------------------------------------------------------------
@ -143,9 +148,9 @@ Summary of this military stint.
RECOGNITION -------------------------------------------------------------------- RECOGNITION --------------------------------------------------------------------
Honorable Mention, Google Honorable Mention, Google (Jan 2012)
Summa cum laude, Cornell University Summa cum laude, Cornell University (Jan 2012)
REFERENCES --------------------------------------------------------------------- REFERENCES ---------------------------------------------------------------------

View File

@ -1,11 +1,11 @@
name: 'Jane Q. Fullstacker' name: 'Jane Q. Fullstacker'
meta: meta:
format: FRESH@0.4.0 format: FRESH@0.6.0
version: 0.3.0 version: 0.4.0
info: info:
label: 'Senior Developer' label: 'Senior Developer'
characterClass: Programmer 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.' brief: '**Imaginary full-stack software developer with 6+ years industry experience** specializing in cloud-driven web applications and middleware. A native of southern CA, Jane enjoys hiking, mystery novels, and the company of Rufus, her two year old beagle.'
image: jane_doe.png image: jane_doe.png
quote: 'Be the change you want to see in the world.' quote: 'Be the change you want to see in the world.'
contact: contact:
@ -93,17 +93,22 @@ employment:
summary: '7+ years industry IT and software development experience.' summary: '7+ years industry IT and software development experience.'
history: history:
- -
employer: 'One Cool Startup' employer: 'Area 52'
url: 'https://onecool.io/does-not-exist' url: 'https://area52.io/does-not-exist'
position: 'Head Code Ninja' 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.' summary: 'Development team manager for [**Quantum Diorama**](https://en.wikipedia.org/wiki/Vaporware), a distributed molecular modeling and analysis suite for Linux and OS X.'
start: 2013-09 start: 2013-09
current: true
keywords: keywords:
- Agile - Agile
- PM - PM
- 'Amazon Web Services' - C
- AWS - C++
- R
- OpenGL
- Boost
- MySQL
- PostgreSQL
- JIRA
highlights: highlights:
- 'Managed a 5-person development team' - 'Managed a 5-person development team'
- 'Accomplishment 2' - 'Accomplishment 2'
@ -119,6 +124,8 @@ employment:
- C++ - C++
- C - C
- Linux - Linux
- R
- Clojure
highlights: highlights:
- 'Managed a 5-person development team' - 'Managed a 5-person development team'
- 'Accomplishment 2' - 'Accomplishment 2'
@ -172,6 +179,7 @@ education:
- 'Course 2' - 'Course 2'
- -
institution: 'Medfield College' institution: 'Medfield College'
title: ""
url: 'https://en.wikipedia.org/wiki/Medfield_College' url: 'https://en.wikipedia.org/wiki/Medfield_College'
start: 2003-09 start: 2003-09
end: 2005-06 end: 2005-06
@ -281,6 +289,8 @@ skills:
skills: skills:
- Agile - Agile
- TFS - TFS
- JIRA
- GitHub
- 'Unified Process' - 'Unified Process'
- 'MS Project' - 'MS Project'
list: list:
@ -354,24 +364,29 @@ writing:
- 'John Smith' - 'John Smith'
summary: 'A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space.' summary: 'A primer on the programming language of GORFF, whose for loops are coterminous with all of time and space.'
reading: reading:
-
title: 'Code Complete'
flavor: book
url: 'http://www.cc2e.com/Default.aspx'
author: 'Steve McConnell'
- -
title: r/programming title: r/programming
flavor: website flavor: website
url: 'https://www.reddit.com/r/programming/' url: 'https://www.reddit.com/r/programming/'
summary: 'Daily reader and longtime lurker.'
- -
title: 'Hacker News / YCombinator' title: 'Hacker News / YCombinator'
flavor: website flavor: website
url: 'https://news.ycombinator.com/' url: 'https://news.ycombinator.com/'
summary: 'Daily reader and longtime lurker.'
- -
title: 'Coding Horror' title: 'Coding Horror'
flavor: blog flavor: blog
url: 'http://www.codinghorror.com' url: 'http://www.codinghorror.com'
author: 'Jeff Atwood' author: 'Jeff Atwood'
summary: 'Reader since 2007; member of the StackOverflow Beta.'
-
title: 'Code Complete'
flavor: book
url: 'http://www.cc2e.com/Default.aspx'
author: 'Steve McConnell'
date: 2014-09
summary: 'My ''desert-island'' software construction manual.'
speaking: speaking:
- -
title: 'Data Warehousing Evolved: DARMA 2.0' title: 'Data Warehousing Evolved: DARMA 2.0'