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 = {
/**
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
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
null if no fallback was specified. If date is invalid, but not null/undefined/
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) {
var momentDate;
if (datetime == null) {
datetime = void 0;
}
if (dtFormat == null) {
dtFormat = 'YYYY-MM';
}
momentDate = moment(datetime);
if (momentDate.isValid()) {
return momentDate.format(dtFormat);
if (datetime && moment.isMoment(datetime)) {
return datetime.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) {
var dateValueMoment, dateValueSafe, reserved;
if (arguments.length < 4 || !dateDefault || !String.is(dateDefault)) {
if (!dateDefault || !String.is(dateDefault)) {
dateDefault = 'Current';
}
if (arguments.length < 3 || !dateFormat || !String.is(dateFormat)) {
if (!dateFormat || !String.is(dateFormat)) {
dateFormat = 'YYYY-MM';
}
if (!dateValue || !String.is(dateValue)) {
dateValue = null;
}
if (!dateValue) {
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
the date range.
@method dateRange
*/
dateRange: function(obj, fmt, sep, fallback, options) {
dateRange: function(obj, fmt, sep, fallback) {
if (!obj) {
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.
@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
*/
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.
@method has
*/
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.
Display a user-overridable section title for a FRESH resume theme. Use this in
lieue of hard-coding section titles.
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
<link> or embeds the styles inline with <style></style>, depending on the

View File

@ -1,12 +1,12 @@
/**
Template helper definitions for Handlebars.
@license MIT. Copyright (c) 2015 James Devlin / FluentDesk.
@license MIT. See LICENSE.md for details.
@module handlebars-helpers.js
*/
(function() {
var HANDLEBARS, _, helpers;
var HANDLEBARS, _, blockHelpers, helpers;
HANDLEBARS = require('handlebars');
@ -14,6 +14,8 @@ Template helper definitions for Handlebars.
helpers = require('./generic-helpers');
blockHelpers = require('./block-helpers');
/**
Register useful Handlebars helpers.
@ -21,9 +23,24 @@ Template helper definitions for Handlebars.
*/
module.exports = function(theme, opts) {
var wrappedHelpers;
helpers.theme = theme;
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);

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
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
null if no fallback was specified. If date is invalid, but not null/undefined/
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) ->
datetime ?= undefined
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 ||
if typeof fallback == 'string'
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) ->
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
reserved = ['current', 'present', 'now'];
reserved = ['current', 'present', 'now']
dateValueSafe = dateValue.trim().toLowerCase();
return dateValue if _.contains reserved, dateValueSafe
dateValueMoment = moment dateValue, dateFormat
return dateValueMoment.format dateFormat if dateValueMoment.isValid()
dateValue
@ -64,11 +100,10 @@ GenericHelpers = module.exports =
###*
Given a resume sub-object with a start/end date, format a representation of
the date range.
@method dateRange
###
dateRange: ( obj, fmt, sep, fallback, options ) ->
dateRange: ( obj, fmt, sep, fallback ) ->
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.
@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
###
camelCase: (val) ->
@ -290,21 +305,8 @@ GenericHelpers = module.exports =
###*
Emit the enclosed content if the resume has the named property or subproperty.
@method has
###
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.
Display a user-overridable section title for a FRESH resume theme. Use this in
lieue of hard-coding section titles.
Usage:
@ -414,8 +416,7 @@ GenericHelpers = module.exports =
Convert text to lowercase.
@method toLower
###
toLower: ( txt ) ->
if txt && txt.trim() then txt.toLowerCase() else ''
toLower: ( txt ) -> if txt && txt.trim() then txt.toLowerCase() else ''
@ -423,18 +424,7 @@ GenericHelpers = module.exports =
Convert text to lowercase.
@method toLower
###
toUpper: ( txt ) ->
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
toUpper: ( txt ) -> if txt && txt.trim() then txt.toUpperCase() else ''

View File

@ -1,13 +1,14 @@
###*
Template helper definitions for Handlebars.
@license MIT. Copyright (c) 2015 James Devlin / FluentDesk.
@license MIT. See LICENSE.md for details.
@module handlebars-helpers.js
###
HANDLEBARS = require 'handlebars'
_ = require 'underscore'
helpers = require './generic-helpers'
blockHelpers = require './block-helpers'
###*
Register useful Handlebars helpers.
@ -15,6 +16,21 @@ Register useful Handlebars helpers.
###
module.exports = ( theme, opts ) ->
helpers.theme = theme
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:spacing w:val="22"/>
</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:p>
</w:tc>
@ -938,12 +938,12 @@
<w:r wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA">
<w:t>Head Code Ninja, </w:t>
</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:rPr>
<w:rStyle w:val="Hyperlink"/>
</w:rPr>
<w:t>One Cool Startup</w:t>
<w:t>Area 52</w:t>
</w:r>
</w:hlink>
<w:r wsp:rsidR="00EA0B64">
@ -953,7 +953,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>Sep 2013 — Current</w:t>
<w:t>Sep 2013 — Present</w:t>
</w:r>
</w:p>
<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:rPr>
</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 wsp:rsidR="00C146CA" wsp:rsidRDefault="009452CA" wsp:rsidP="00C146CA">
@ -1323,7 +1323,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>2015-09 — Current</w:t>
<w:t>2015-09 — Present</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -1407,7 +1407,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>??? — Current</w:t>
<w:t>??? — Present</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -1524,7 +1524,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>2015-01 — Current</w:t>
<w:t>2015-01 — Present</w:t>
</w:r>
</w:p>
@ -1894,7 +1894,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>Jun 2013 — Current</w:t>
<w:t>Jun 2013 — Present</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -1936,7 +1936,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>??? — Current</w:t>
<w:t>??? — Present</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -1978,7 +1978,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>Jan 2010 — Current</w:t>
<w:t>Jan 2010 — Present</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">
@ -2186,33 +2186,6 @@
</w:p>
</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>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="00C146CA" wsp:rsidRDefault="00606071" wsp:rsidP="00E578D4">
<w:pPr>
@ -2233,6 +2206,14 @@
<w:tab/>
</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>Daily reader and longtime lurker.</w:t></w:r>
</w:p>
</wx:sub-section>
@ -2257,6 +2238,14 @@
<w:tab/>
</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>Daily reader and longtime lurker.</w:t></w:r>
</w:p>
</wx:sub-section>
@ -2284,6 +2273,49 @@
<w:t>, Jeff Atwood</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>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>
@ -2584,7 +2616,7 @@
<w:rPr>
<w:rStyle w:val="FromTo"/>
</w:rPr>
<w:t>Feb 2016 — Feb 2016</w:t>
<w:t>??? — Present</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C146CA" wsp:rsidRPr="000A3AF0" wsp:rsidRDefault="00C146CA" wsp:rsidP="00C146CA">

View File

@ -228,9 +228,9 @@
<h2>info</h2>
</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.</section>
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>
<hr>
<section id="skills">
<header>
@ -319,8 +319,11 @@
<span class="label label-keyword">TFS</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>
</li>
@ -334,15 +337,14 @@
</header>
<div>
<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>
<span class="tenure">2013-09 — Current</span>
| <span class="keywords">Agile PM Amazon Web Services AWS </span>
<span class="tenure">2013-09 — Present</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>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>
<ul>
<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>
</h3>
<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
@ -414,7 +416,7 @@
<a href="http://please.hackmyresume.com">HackMyResume</a>
</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>
<p>Exemplar user for HackMyResume and FluentCV!</p>
@ -493,7 +495,7 @@
<a href="https://www.khronos.org">Khronos Group</a>
</h3>
<span class="tenure">2015-01 — Current</span>
<span class="tenure">2015-01 — Present</span>
<ul>
<li>Participated in GORFF standardization process (Draft 2).</li>
@ -547,7 +549,7 @@
<h3><em>Member</em>,
<a href="https://www.ieee.org/index.html">IEEE</a>
</h3>
<span class="tenure">2013-06 — Current</span>
<span class="tenure">2013-06 — Present</span>
<p>Member in good standing since 2013-06.</p>
</div>
@ -555,7 +557,7 @@
<h3><em>Member</em>,
<a href="https://developer.apple.com/">Apple Developer Network</a>
</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>
@ -564,7 +566,7 @@
<h3><em>Subscriber</em>,
<a href="https://msdn.microsoft.com">MSDN</a>
</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>
@ -635,25 +637,29 @@
<h2>reading</h2>
</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>
<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>
<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>
<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>
</section>
<hr>
@ -731,21 +737,21 @@
</header>
<div>
<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>
</div>
<div>
<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>
</div>
<div>
<h3><em>yoga</em></h3>
<span class="tenure">2016</span>
<span class="tenure">Current</span>
</div>
</section>

View File

@ -2,7 +2,7 @@
"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.",
"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",
"phone": "1-650-999-7777",
"email": "jdoe@onecoolstartup.io",
@ -29,11 +29,11 @@
},
"work": [
{
"company": "One Cool Startup",
"website": "https://onecool.io/does-not-exist",
"company": "Area 52",
"website": "https://area52.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.",
"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": [
"Managed a 5-person development team",
"Accomplishment 2",
@ -156,6 +156,8 @@
"keywords": [
"Agile",
"TFS",
"JIRA",
"GitHub",
"Unified Process",
"MS Project"
]

View File

@ -4,7 +4,7 @@ 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.
**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
@ -12,13 +12,13 @@ Web: http://janef.me/blog
- 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
- Project: Agile TFS JIRA GitHub Unified Process MS Project
## 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
- Accomplishment 2
- Etc.
@ -47,7 +47,7 @@ Performed IT administration and deployments for Dunder Mifflin.
## 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.
Exemplar user for HackMyResume and FluentCV!
@ -57,7 +57,7 @@ Exemplar user for HackMyResume and FluentCV!
An augmented reality app for Android.
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.
Conceptualization, design, development, and deployment.
@ -90,15 +90,15 @@ A multiline summary of the education.
## 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*, [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.
### *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.
@ -135,13 +135,17 @@ A primer on the programming language of GORFF, whose for loops are coterminous w
## READING
### [*Code Complete*](http://www.cc2e.com/Default.aspx), Steve McConnell
### [*r/programming*](https://www.reddit.com/r/programming/)
Daily reader and longtime lurker.
### [*Hacker News / YCombinator*](https://news.ycombinator.com/)
Daily reader and longtime lurker.
### [*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
@ -163,9 +167,9 @@ Summary of this military stint.
## RECOGNITION
### Honorable Mention, Google
### Honorable Mention, Google (Jan 2012)
### Summa cum laude, Cornell University
### Summa cum laude, Cornell University (Jan 2012)
## SPEAKING

Binary file not shown.

View File

@ -242,7 +242,7 @@ a:hover {
<header>
<span class="fa fa-lg fa-info"></span> <h2>info</h2>
</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>
@ -327,6 +327,8 @@ a:hover {
<div class="space-top labels">
<span class="label label-keyword">Agile</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">MS Project</span>
</div>
@ -352,11 +354,11 @@ a:hover {
<div>
<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>
<span class="tenure">2013-09 — Current</span>
| <span class="keywords">Agile PM Amazon Web Services AWS </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>
<span class="tenure">2013-09 — Present</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"><strong>Quantum Diorama</strong></a>, a distributed molecular modeling and analysis suite for Linux and OS X.</p>
</p>
<ul>
<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>
</h3>
<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>
<ul>
@ -423,7 +425,7 @@ a:hover {
<h3><em>Contributor</em>,
<a href="http://please.hackmyresume.com">HackMyResume</a>
</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>
<p>Exemplar user for HackMyResume and FluentCV!</p>
@ -501,7 +503,7 @@ a:hover {
<h3><em>Academic Contributor</em>,
<a href="https://www.khronos.org">Khronos Group</a>
</h3>
<span class="tenure">2015-01 — Current</span>
<span class="tenure">2015-01 — Present</span>
<ul>
<li>Participated in GORFF standardization process (Draft 2).</li>
@ -565,7 +567,7 @@ a:hover {
<h3><em>Member</em>,
<a href="https://www.ieee.org/index.html">IEEE</a>
</h3>
<span class="tenure">2013-06 — Current</span>
<span class="tenure">2013-06 — Present</span>
<p>Member in good standing since 2013-06.</p>
@ -574,7 +576,7 @@ a:hover {
<h3><em>Member</em>,
<a href="https://developer.apple.com/">Apple Developer Network</a>
</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>
@ -583,7 +585,7 @@ a:hover {
<h3><em>Subscriber</em>,
<a href="https://msdn.microsoft.com">MSDN</a>
</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>
@ -651,24 +653,28 @@ a:hover {
<span class="fa fa-lg fa-book"></span> <h2>reading</h2>
</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>
<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>
<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>
<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>
</section>
<hr>
@ -736,19 +742,19 @@ a:hover {
</header>
<div>
<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>
</div>
<div>
<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>
</div>
<div>
<h3><em>yoga</em></h3>
<span class="tenure">2016</span>
<span class="tenure">Current</span>
</div>
</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>
</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.</section>
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>
<hr>
<section id="skills">
<header>
@ -319,8 +319,11 @@
<span class="label label-keyword">TFS</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>
</li>
@ -334,15 +337,14 @@
</header>
<div>
<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>
<span class="tenure">2013-09 — Current</span>
| <span class="keywords">Agile PM Amazon Web Services AWS </span>
<span class="tenure">2013-09 — Present</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>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>
<ul>
<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>
</h3>
<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
@ -414,7 +416,7 @@
<a href="http://please.hackmyresume.com">HackMyResume</a>
</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>
<p>Exemplar user for HackMyResume and FluentCV!</p>
@ -493,7 +495,7 @@
<a href="https://www.khronos.org">Khronos Group</a>
</h3>
<span class="tenure">2015-01 — Current</span>
<span class="tenure">2015-01 — Present</span>
<ul>
<li>Participated in GORFF standardization process (Draft 2).</li>
@ -547,7 +549,7 @@
<h3><em>Member</em>,
<a href="https://www.ieee.org/index.html">IEEE</a>
</h3>
<span class="tenure">2013-06 — Current</span>
<span class="tenure">2013-06 — Present</span>
<p>Member in good standing since 2013-06.</p>
</div>
@ -555,7 +557,7 @@
<h3><em>Member</em>,
<a href="https://developer.apple.com/">Apple Developer Network</a>
</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>
@ -564,7 +566,7 @@
<h3><em>Subscriber</em>,
<a href="https://msdn.microsoft.com">MSDN</a>
</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>
@ -635,25 +637,29 @@
<h2>reading</h2>
</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>
<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>
<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>
<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>
</section>
<hr>
@ -731,21 +737,21 @@
</header>
<div>
<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>
</div>
<div>
<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>
</div>
<div>
<h3><em>yoga</em></h3>
<span class="tenure">2016</span>
<span class="tenure">Current</span>
</div>
</section>

View File

@ -4,7 +4,7 @@ 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.
**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 -------------------------------------------------------------------------
@ -12,12 +12,12 @@ SKILLS -------------------------------------------------------------------------
- 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
- Project: Agile TFS JIRA GitHub 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.
Head Code Ninja, Area 52 (2013-09 — Present)
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
- Accomplishment 2
- Etc.
@ -43,7 +43,7 @@ Performed IT administration and deployments for Dunder Mifflin.
PROJECTS -----------------------------------------------------------------------
HackMyResume, contributor (2015-09 — Current)
HackMyResume, contributor (2015-09 — Present)
A resume authoring and analysis tool for OS X, Linux, and Windows.
Exemplar user for HackMyResume and FluentCV!
@ -51,7 +51,7 @@ Augmented Android, co-creator (2012-02 — 2014-01)
An augmented reality app for Android.
Performed flagship product conceptualization and development.
Blog, creator (??? — Current)
Blog, creator (??? — Present)
My programming blog. Powered by Jekyll.
Conceptualization, design, development, and deployment.
@ -77,13 +77,13 @@ A multiline summary of the education.
AFFILIATION --------------------------------------------------------------------
Member, IEEE (2013-06 — Current)
Member, IEEE (2013-06 — Present)
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.
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.
Coordinator, Campus Coder's Meetup (2003-02 — 2004-04)
@ -103,27 +103,32 @@ A website to help you remember things.
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.
READING ------------------------------------------------------------------------
"Code Complete", Steve McConnell
http://www.cc2e.com/Default.aspx
"r/programming"
https://www.reddit.com/r/programming/
Daily reader and longtime lurker.
"Hacker News / YCombinator"
https://news.ycombinator.com/
Daily reader and longtime lurker.
"Coding Horror", Jeff Atwood
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 ------------------------------------------------------------------------
@ -143,9 +148,9 @@ Summary of this military stint.
RECOGNITION --------------------------------------------------------------------
Honorable Mention, Google
Honorable Mention, Google (Jan 2012)
Summa cum laude, Cornell University
Summa cum laude, Cornell University (Jan 2012)
REFERENCES ---------------------------------------------------------------------

View File

@ -1,11 +1,11 @@
name: 'Jane Q. Fullstacker'
meta:
format: FRESH@0.4.0
version: 0.3.0
format: FRESH@0.6.0
version: 0.4.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.'
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
quote: 'Be the change you want to see in the world.'
contact:
@ -93,17 +93,22 @@ employment:
summary: '7+ years industry IT and software development experience.'
history:
-
employer: 'One Cool Startup'
url: 'https://onecool.io/does-not-exist'
employer: 'Area 52'
url: 'https://area52.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.'
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
current: true
keywords:
- Agile
- PM
- 'Amazon Web Services'
- AWS
- C
- C++
- R
- OpenGL
- Boost
- MySQL
- PostgreSQL
- JIRA
highlights:
- 'Managed a 5-person development team'
- 'Accomplishment 2'
@ -119,6 +124,8 @@ employment:
- C++
- C
- Linux
- R
- Clojure
highlights:
- 'Managed a 5-person development team'
- 'Accomplishment 2'
@ -172,6 +179,7 @@ education:
- 'Course 2'
-
institution: 'Medfield College'
title: ""
url: 'https://en.wikipedia.org/wiki/Medfield_College'
start: 2003-09
end: 2005-06
@ -281,6 +289,8 @@ skills:
skills:
- Agile
- TFS
- JIRA
- GitHub
- 'Unified Process'
- 'MS Project'
list:
@ -354,24 +364,29 @@ writing:
- '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/'
summary: 'Daily reader and longtime lurker.'
-
title: 'Hacker News / YCombinator'
flavor: website
url: 'https://news.ycombinator.com/'
summary: 'Daily reader and longtime lurker.'
-
title: 'Coding Horror'
flavor: blog
url: 'http://www.codinghorror.com'
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:
-
title: 'Data Warehousing Evolved: DARMA 2.0'