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:
parent
6ac2cd490b
commit
917fd8e3f3
71
dist/helpers/block-helpers.js
vendored
Normal file
71
dist/helpers/block-helpers.js
vendored
Normal 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
|
94
dist/helpers/generic-helpers.js
vendored
94
dist/helpers/generic-helpers.js
vendored
@ -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';
|
||||||
}
|
}
|
||||||
|
if (datetime && moment.isMoment(datetime)) {
|
||||||
|
return datetime.format(dtFormat);
|
||||||
|
}
|
||||||
|
if (String.is(datetime)) {
|
||||||
|
momentDate = moment(datetime, dtFormat);
|
||||||
|
if (momentDate.isValid()) {
|
||||||
|
return momentDate.format(dtFormat);
|
||||||
|
}
|
||||||
momentDate = moment(datetime);
|
momentDate = moment(datetime);
|
||||||
if (momentDate.isValid()) {
|
if (momentDate.isValid()) {
|
||||||
return momentDate.format(dtFormat);
|
return momentDate.format(dtFormat);
|
||||||
}
|
}
|
||||||
return datetime || (typeof fallback === 'string' ? fallback : (fallback === true ? 'Present' : null));
|
}
|
||||||
|
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
|
||||||
|
23
dist/helpers/handlebars-helpers.js
vendored
23
dist/helpers/handlebars-helpers.js
vendored
@ -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);
|
||||||
|
58
src/helpers/block-helpers.coffee
Normal file
58
src/helpers/block-helpers.coffee
Normal 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
|
@ -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'
|
||||||
|
|
||||||
|
# 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
|
momentDate = moment datetime
|
||||||
return momentDate.format(dtFormat) if momentDate.isValid()
|
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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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 'desert-island' 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">
|
||||||
|
@ -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 'desert-island' 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>
|
||||||
|
@ -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"
|
||||||
]
|
]
|
||||||
|
@ -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.
@ -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 'desert-island' 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 |
@ -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 'desert-island' 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>
|
||||||
|
@ -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 ---------------------------------------------------------------------
|
||||||
|
@ -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'
|
||||||
|
Loading…
Reference in New Issue
Block a user