mirror of
https://github.com/remoteintech/remote-jobs
synced 2024-12-24 03:13:16 +00:00
Add automated tests for validation script (#438)
* Update node * Add mocha and chai * Fix npm audit issue https://nodesecurity.io/advisories/577 * Skip some redundant errors * Catch duplicate headings * Update the wording of a few errors * Detect when headings are wrapped inside another element * Build and validate the content of each profile section * Add tests for validation script * Remove empty sections in existing profiles
This commit is contained in:
parent
be43568bbd
commit
8942a91a85
59 changed files with 1962 additions and 51 deletions
2
.nvmrc
2
.nvmrc
|
@ -1 +1 @@
|
|||
v9.3.0
|
||||
v10.5.0
|
||||
|
|
|
@ -2,4 +2,4 @@ language: node_js
|
|||
|
||||
before_script: npm install
|
||||
|
||||
script: node bin/validate.js
|
||||
script: node bin/validate.js && node node_modules/.bin/mocha
|
||||
|
|
|
@ -171,11 +171,20 @@ profileFilenames.forEach( filename => {
|
|||
);
|
||||
const $ = cheerio.load( marked( profileMarkdown ) );
|
||||
|
||||
let hasTitleError = false;
|
||||
|
||||
if ( $( 'h1' ).length !== 1 ) {
|
||||
error(
|
||||
'Expected 1 first-level heading but found %d',
|
||||
$( 'h1' ).length
|
||||
);
|
||||
hasTitleError = true;
|
||||
}
|
||||
|
||||
if ( ! $( 'h1' ).parent().is( 'body' ) ) {
|
||||
error(
|
||||
'The main title is wrapped inside of another element.'
|
||||
);
|
||||
}
|
||||
|
||||
const companyName = $( 'h1' ).text();
|
||||
|
@ -185,11 +194,13 @@ profileFilenames.forEach( filename => {
|
|||
'Company name looks wrong: "%s"',
|
||||
companyName
|
||||
);
|
||||
hasTitleError = true;
|
||||
}
|
||||
|
||||
const filenameBase = filename.replace( /\.md$/, '' );
|
||||
const filenameExpected = companyNameToProfileFilename( companyName );
|
||||
if (
|
||||
! hasTitleError &&
|
||||
filenameBase !== filenameExpected &&
|
||||
// Some profile files just have shorter names than the company name,
|
||||
// which is fine.
|
||||
|
@ -215,17 +226,35 @@ profileFilenames.forEach( filename => {
|
|||
|
||||
$( 'h2' ).each( ( i, el ) => {
|
||||
const headingName = $( el ).html();
|
||||
profileHeadings.push( headingName );
|
||||
|
||||
if ( ! $( el ).parent().is( 'body' ) ) {
|
||||
error(
|
||||
'The section heading for "%s" is wrapped inside of another element.',
|
||||
headingName
|
||||
);
|
||||
}
|
||||
|
||||
if ( profileHeadings.indexOf( headingName ) >= 0 ) {
|
||||
error(
|
||||
'Duplicate section: "%s".',
|
||||
headingName
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
headingsRequired.indexOf( headingName ) === -1 &&
|
||||
headingsOptional.indexOf( headingName ) === -1
|
||||
) {
|
||||
error(
|
||||
'Invalid heading name: "%s". Expected one of: %s',
|
||||
'Invalid section: "%s". Expected one of: %s',
|
||||
headingName,
|
||||
JSON.stringify( headingsRequired.concat( headingsOptional ) )
|
||||
);
|
||||
}
|
||||
|
||||
// Track headings for this profile
|
||||
profileHeadings.push( headingName );
|
||||
|
||||
// Track headings across all profiles
|
||||
if ( ! allProfileHeadings[ headingName ] ) {
|
||||
allProfileHeadings[ headingName ] = [];
|
||||
|
@ -236,11 +265,51 @@ profileFilenames.forEach( filename => {
|
|||
headingsRequired.forEach( headingName => {
|
||||
if ( profileHeadings.indexOf( headingName ) === -1 ) {
|
||||
error(
|
||||
'Required heading "%s" not found.',
|
||||
'Required section "%s" not found.',
|
||||
headingName
|
||||
);
|
||||
}
|
||||
} );
|
||||
|
||||
// Build and validate the content of each section in this profile.
|
||||
|
||||
const profileContent = {};
|
||||
let currentHeading = null;
|
||||
|
||||
$( 'body' ).children().each( ( i, el ) => {
|
||||
const $el = $( el );
|
||||
|
||||
if ( $el.is( 'h1' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $el.is( 'h2' ) ) {
|
||||
currentHeading = $el.html();
|
||||
profileContent[ currentHeading ] = '';
|
||||
} else if ( currentHeading ) {
|
||||
profileContent[ currentHeading ] = (
|
||||
profileContent[ currentHeading ]
|
||||
+ '\n' + $.html( el )
|
||||
).trim();
|
||||
} else {
|
||||
error(
|
||||
'Content is not part of any section: %s',
|
||||
$.html( el ).replace( /\n/g, '' )
|
||||
);
|
||||
}
|
||||
} );
|
||||
|
||||
Object.keys( profileContent ).forEach( heading => {
|
||||
const sectionText = profileContent[ heading ]
|
||||
.replace( /<[^>]+>/g, '' )
|
||||
.trim();
|
||||
if ( ! sectionText ) {
|
||||
error(
|
||||
'Empty section: "%s". Leave it out instead.',
|
||||
heading
|
||||
);
|
||||
}
|
||||
} );
|
||||
} );
|
||||
|
||||
if ( process.env.REPORT_PROFILE_HEADINGS ) {
|
||||
|
|
|
@ -8,8 +8,6 @@ Bitovi simplifies JavaScript development and UX design. We teach people how to c
|
|||
|
||||
30-40 employees
|
||||
|
||||
## Remote status
|
||||
|
||||
## Region
|
||||
|
||||
A team of developers (and designers) located around the US, Canada, and Croatia.
|
||||
|
|
|
@ -20,8 +20,6 @@ Many roles within Envato are able to work from anywhere (usually from home) if y
|
|||
|
||||
Envato is a fast growing company with headquarters in Melbourne.
|
||||
|
||||
## Company technologies
|
||||
|
||||
## Office locations
|
||||
|
||||
Headquarters in Melbourne, Australia. Team located around the world.
|
||||
|
|
|
@ -8,16 +8,10 @@ FreeAgent is one of the UK's largest, and most popular, online accounting servic
|
|||
|
||||
61 listed on Freeagent [About Us](http://www.freeagent.com/company/about-us)
|
||||
|
||||
## Remote status
|
||||
|
||||
|
||||
## Region
|
||||
|
||||
Scotland, UK based company, remote worldwide
|
||||
|
||||
## Company technologies
|
||||
|
||||
|
||||
## Office locations
|
||||
|
||||
FreeAgent
|
||||
|
|
|
@ -4,8 +4,6 @@
|
|||
|
||||
KissMetrics is focused on helping marketers improve their performance.
|
||||
|
||||
## Company size
|
||||
|
||||
## Remote status
|
||||
|
||||
Most of the team works remotely and everyone has the option of working remotely or from the Headquarters in San Francisco (snacks, nap room, video game room, and a puppy included at HQ!).
|
||||
|
|
301
package-lock.json
generated
301
package-lock.json
generated
|
@ -8,26 +8,86 @@
|
|||
"integrity": "sha512-SrmAO+NhnsuG/6TychSl2VdxBZiw/d6V+8j+DFo8O3PwFi+QeYXWHhAw+b170aSc6zYab6/PjEWRZHIDN9mNUw==",
|
||||
"dev": true
|
||||
},
|
||||
"assertion-error": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
|
||||
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
|
||||
"dev": true
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
||||
"dev": true
|
||||
},
|
||||
"boolbase": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
||||
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"browser-stdout": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
|
||||
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
|
||||
"dev": true
|
||||
},
|
||||
"chai": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz",
|
||||
"integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assertion-error": "^1.0.1",
|
||||
"check-error": "^1.0.1",
|
||||
"deep-eql": "^3.0.0",
|
||||
"get-func-name": "^2.0.0",
|
||||
"pathval": "^1.0.0",
|
||||
"type-detect": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"check-error": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
|
||||
"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
|
||||
"dev": true
|
||||
},
|
||||
"cheerio": {
|
||||
"version": "1.0.0-rc.2",
|
||||
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.2.tgz",
|
||||
"integrity": "sha1-S59TqBsn5NXawxwP/Qz6A8xoMNs=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"css-select": "1.2.0",
|
||||
"dom-serializer": "0.1.0",
|
||||
"entities": "1.1.1",
|
||||
"htmlparser2": "3.9.2",
|
||||
"lodash": "4.17.4",
|
||||
"parse5": "3.0.3"
|
||||
"css-select": "~1.2.0",
|
||||
"dom-serializer": "~0.1.0",
|
||||
"entities": "~1.1.1",
|
||||
"htmlparser2": "^3.9.1",
|
||||
"lodash": "^4.15.0",
|
||||
"parse5": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.15.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
|
||||
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
|
@ -40,10 +100,10 @@
|
|||
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"boolbase": "1.0.0",
|
||||
"css-what": "2.1.0",
|
||||
"boolbase": "~1.0.0",
|
||||
"css-what": "2.1",
|
||||
"domutils": "1.5.1",
|
||||
"nth-check": "1.0.1"
|
||||
"nth-check": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"css-what": {
|
||||
|
@ -52,14 +112,38 @@
|
|||
"integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=",
|
||||
"dev": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"deep-eql": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
|
||||
"integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"type-detect": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
|
||||
"dev": true
|
||||
},
|
||||
"dom-serializer": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
|
||||
"integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"domelementtype": "1.1.3",
|
||||
"entities": "1.1.1"
|
||||
"domelementtype": "~1.1.1",
|
||||
"entities": "~1.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"domelementtype": {
|
||||
|
@ -82,7 +166,7 @@
|
|||
"integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"domelementtype": "1.3.0"
|
||||
"domelementtype": "1"
|
||||
}
|
||||
},
|
||||
"domutils": {
|
||||
|
@ -91,8 +175,8 @@
|
|||
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"dom-serializer": "0.1.0",
|
||||
"domelementtype": "1.3.0"
|
||||
"dom-serializer": "0",
|
||||
"domelementtype": "1"
|
||||
}
|
||||
},
|
||||
"entities": {
|
||||
|
@ -101,18 +185,78 @@
|
|||
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
|
||||
"dev": true
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
|
||||
"dev": true
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
},
|
||||
"get-func-name": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
|
||||
"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
|
||||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
||||
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"growl": {
|
||||
"version": "1.10.5",
|
||||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
|
||||
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
|
||||
"dev": true
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
|
||||
"dev": true
|
||||
},
|
||||
"he": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
|
||||
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
|
||||
"dev": true
|
||||
},
|
||||
"htmlparser2": {
|
||||
"version": "3.9.2",
|
||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz",
|
||||
"integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"domelementtype": "1.3.0",
|
||||
"domhandler": "2.4.1",
|
||||
"domutils": "1.5.1",
|
||||
"entities": "1.1.1",
|
||||
"inherits": "2.0.3",
|
||||
"readable-stream": "2.3.3"
|
||||
"domelementtype": "^1.3.0",
|
||||
"domhandler": "^2.3.0",
|
||||
"domutils": "^1.5.1",
|
||||
"entities": "^1.1.1",
|
||||
"inherits": "^2.0.1",
|
||||
"readable-stream": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
|
@ -128,9 +272,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.4",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
||||
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
||||
"version": "4.17.10",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
|
||||
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
|
||||
"dev": true
|
||||
},
|
||||
"marked": {
|
||||
|
@ -139,13 +283,71 @@
|
|||
"integrity": "sha512-k4NaW+vS7ytQn6MgJn3fYpQt20/mOgYM5Ft9BYMfQJDz2QT6yEeS9XJ8k2Nw8JTeWK/znPPW2n3UJGzyYEiMoA==",
|
||||
"dev": true
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
||||
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
||||
"dev": true
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
},
|
||||
"mocha": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
|
||||
"integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"browser-stdout": "1.3.1",
|
||||
"commander": "2.15.1",
|
||||
"debug": "3.1.0",
|
||||
"diff": "3.5.0",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"glob": "7.1.2",
|
||||
"growl": "1.10.5",
|
||||
"he": "1.1.1",
|
||||
"minimatch": "3.0.4",
|
||||
"mkdirp": "0.5.1",
|
||||
"supports-color": "5.4.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
},
|
||||
"nth-check": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
|
||||
"integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"boolbase": "1.0.0"
|
||||
"boolbase": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"parse5": {
|
||||
|
@ -154,9 +356,21 @@
|
|||
"integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "8.5.1"
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true
|
||||
},
|
||||
"pathval": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
|
||||
"integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
|
||||
"dev": true
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
|
||||
|
@ -169,13 +383,13 @@
|
|||
"integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "1.0.2",
|
||||
"inherits": "2.0.3",
|
||||
"isarray": "1.0.0",
|
||||
"process-nextick-args": "1.0.7",
|
||||
"safe-buffer": "5.1.1",
|
||||
"string_decoder": "1.0.3",
|
||||
"util-deprecate": "1.0.2"
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~1.0.6",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.0.3",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
|
@ -190,14 +404,35 @@
|
|||
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.1"
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
|
||||
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"type-detect": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
||||
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
|
||||
"dev": true
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
||||
"dev": true
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
{
|
||||
"devDependencies": {
|
||||
"chai": "^4.1.2",
|
||||
"cheerio": "^1.0.0-rc.2",
|
||||
"marked": "^0.3.12"
|
||||
"marked": "^0.3.12",
|
||||
"mocha": "^5.2.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "bin/build-site.js"
|
||||
|
|
13
test/fixtures/bad-profile-headings/README.md
vendored
Normal file
13
test/fixtures/bad-profile-headings/README.md
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Test data
|
||||
|
||||
This company table links to profiles with invalid section headings.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
[&yet](/company-profiles/and-yet.md) | https://andyet.com | Worldwide
|
||||
[10up](/company-profiles/10up.md) | https://10up.com/ | Worldwide
|
||||
[17hats](/company-profiles/17hats.md) | https://www.17hats.com/ | Worldwide
|
||||
[18F](/company-profiles/18f.md) | https://18f.gsa.gov/ | USA
|
||||
[1Password](/company-profiles/1password.md) | https://www.1password.com | Worldwide
|
31
test/fixtures/bad-profile-headings/company-profiles/10up.md
vendored
Normal file
31
test/fixtures/bad-profile-headings/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
# 10up, A WordPress Development Agency
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## Office locations
|
||||
|
||||
None; or everywhere!
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
15
test/fixtures/bad-profile-headings/company-profiles/17hats.md
vendored
Normal file
15
test/fixtures/bad-profile-headings/company-profiles/17hats.md
vendored
Normal file
|
@ -0,0 +1,15 @@
|
|||
# 17hats
|
||||
|
||||
Some extra content.
|
||||
|
||||
## Company blurb
|
||||
|
||||
Are you ready to stop juggling multiple apps to manage your business? From booking clients, to managing projects, to controlling your finances, with 17hats you have everything you need to manage your business and clients anytime, anywhere. Pretty neat if we say so ourselves! We created 17hats specifically for “businesses of one” with a focus on simplicity and ease of use.
|
||||
|
||||
## A thing I made up
|
||||
|
||||
Some text.
|
||||
|
||||
## Company size
|
||||
|
||||
11-50
|
31
test/fixtures/bad-profile-headings/company-profiles/18f.md
vendored
Normal file
31
test/fixtures/bad-profile-headings/company-profiles/18f.md
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
# 18F
|
||||
|
||||
## Company blurb
|
||||
|
||||
18F is a civic consultancy for the government, inside the government, working with agencies to rapidly deploy tools and services that are easy to use, cost efficient, and reusable. Our goal is to change how the government buys and develops digital services by helping agencies adopt modern techniques that deliver superior products.
|
||||
|
||||
We are transforming government from the inside out, creating cultural change by working with teams inside agencies who want to create great services for the public.
|
||||
|
||||
We are a trusted partner for agencies working to transform how they build and buy tools and services in a user-centered way.
|
||||
|
||||
We will accomplish our mission by:
|
||||
|
||||
putting the needs of the public first
|
||||
being design-centric, agile, open, and data-driven
|
||||
deploying tools and services early and often
|
||||
|
||||
## Region
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Remote status
|
31
test/fixtures/bad-profile-headings/company-profiles/1password.md
vendored
Normal file
31
test/fixtures/bad-profile-headings/company-profiles/1password.md
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
> # 1Password
|
||||
|
||||
## Company blurb
|
||||
|
||||
We make a password manager for Mac, Windows, Android, and iOS called 1Password. It also has a web service and a standalone browser extension, both built in Golang.
|
||||
|
||||
> ## Company size
|
||||
|
||||
Just over 100 (May 2018).
|
||||
|
||||
## Remote status
|
||||
|
||||
Almost all of us are remote. We do have an office in downtown Toronto that we are all welcome to use when we are in the city, but even the Toronto locals spend two days in the office on average.
|
||||
|
||||
## Region
|
||||
|
||||
Worldwide. Right now we have folks distributed throughout North America and Europe. We have one brave soul from Australia, and another from New Zealand. More are welcome.
|
||||
|
||||
## Company technologies
|
||||
|
||||
Go, React, TypeScript, Swift, and of course Slack.
|
||||
|
||||
## Office locations
|
||||
|
||||
Toronto, Ontario
|
||||
|
||||
## How to apply
|
||||
|
||||
Check our jobs page: https://blog.agilebits.com/jobs
|
||||
|
||||
If your position isn't listed, create it by emailing jobs@agilebits.com and starting a conversation.
|
4
test/fixtures/bad-profile-headings/company-profiles/and-yet.md
vendored
Normal file
4
test/fixtures/bad-profile-headings/company-profiles/and-yet.md
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
# &yet (And Yet)
|
||||
|
||||
## Company size
|
||||
20+
|
13
test/fixtures/bad-profile-links/README.md
vendored
Normal file
13
test/fixtures/bad-profile-links/README.md
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Test data
|
||||
|
||||
This company table contains invalid links to company profiles.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
[&yet](company-profiles/and-yet.md) | https://andyet.com | Worldwide
|
||||
[10up](/company-profiles/10up.md) | https://10up.com/ | Worldwide
|
||||
[17hats](/company-profiles/17hats-nonexistent.md) | https://www.17hats.com/ | Worldwide
|
||||
[18F](/company-profiles/18f.js) | https://18f.gsa.gov/ | USA
|
||||
My awesome company | https://xkcd.com/ | USA
|
39
test/fixtures/bad-profile-links/company-profiles/10up.md
vendored
Normal file
39
test/fixtures/bad-profile-links/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
# 10up
|
||||
|
||||
## Company blurb
|
||||
|
||||
We make websites and content management simple and fun with premiere web design & development consulting services, by contributing to open platforms like WordPress, and by providing tools and products (like [PushUp](https://pushupnotifications.com/)) that make web publishing a cinch.
|
||||
|
||||
At 10up, we don’t just “make” things – we engineer them. We’re a group of people built to solve problems; made to create; wired to delight. From beautiful pixels to beautiful code, we constantly improve the things around us, applying our passions to our clients’ projects and goals.
|
||||
|
||||
We’ve had the privilege of working on big web projects for clients as diverse as TechCrunch, ESPN’s FiveThirtyEight and Grantland, SurveyMonkey, Junior Diabetes Research Foundation (JDRF), and Google.
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## Office locations
|
||||
|
||||
None; or everywhere!
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
12
test/fixtures/bad-profile-titles/README.md
vendored
Normal file
12
test/fixtures/bad-profile-titles/README.md
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Test data
|
||||
|
||||
This company table links to profiles with invalid titles.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
[&yet](/company-profiles/and-yet.md) | https://andyet.com | Worldwide
|
||||
[10up](/company-profiles/10up.md) | https://10up.com/ | Worldwide
|
||||
[17hats](/company-profiles/17hats.md) | https://www.17hats.com/ | Worldwide
|
||||
[18F](/company-profiles/18f.md) | https://18f.gsa.gov/ | USA
|
37
test/fixtures/bad-profile-titles/company-profiles/10up.md
vendored
Normal file
37
test/fixtures/bad-profile-titles/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
## Company blurb
|
||||
|
||||
We make websites and content management simple and fun with premiere web design & development consulting services, by contributing to open platforms like WordPress, and by providing tools and products (like [PushUp](https://pushupnotifications.com/)) that make web publishing a cinch.
|
||||
|
||||
At 10up, we don’t just “make” things – we engineer them. We’re a group of people built to solve problems; made to create; wired to delight. From beautiful pixels to beautiful code, we constantly improve the things around us, applying our passions to our clients’ projects and goals.
|
||||
|
||||
We’ve had the privilege of working on big web projects for clients as diverse as TechCrunch, ESPN’s FiveThirtyEight and Grantland, SurveyMonkey, Junior Diabetes Research Foundation (JDRF), and Google.
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## Office locations
|
||||
|
||||
None; or everywhere!
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
25
test/fixtures/bad-profile-titles/company-profiles/17hats.md
vendored
Normal file
25
test/fixtures/bad-profile-titles/company-profiles/17hats.md
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# A company called 17hats
|
||||
|
||||
## Company blurb
|
||||
|
||||
Are you ready to stop juggling multiple apps to manage your business? From booking clients, to managing projects, to controlling your finances, with 17hats you have everything you need to manage your business and clients anytime, anywhere. Pretty neat if we say so ourselves! We created 17hats specifically for “businesses of one” with a focus on simplicity and ease of use.
|
||||
|
||||
## Company size
|
||||
|
||||
11-50
|
||||
|
||||
## Remote status
|
||||
|
||||
Every engineer on our team works remotely. That being said, we do need someone who can work California business hours (9am-6pm PST) and who is available for emergencies at night. If you live in the LA area, you are welcome to be in our cool office in Pasadena. Bonus points if you can curse in Dutch.
|
||||
|
||||
## Region
|
||||
|
||||
Worldwide
|
||||
|
||||
## Company technologies
|
||||
|
||||
iOS, React, Knockout, Rails, Perl, HTML, Sql, Ruby, JQuery
|
||||
|
||||
## How to apply
|
||||
|
||||
Email buford@17hats.com with github and/or CV
|
55
test/fixtures/bad-profile-titles/company-profiles/18f.md
vendored
Normal file
55
test/fixtures/bad-profile-titles/company-profiles/18f.md
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
# $%$#%$#
|
||||
|
||||
## Company blurb
|
||||
|
||||
18F is a civic consultancy for the government, inside the government, working with agencies to rapidly deploy tools and services that are easy to use, cost efficient, and reusable. Our goal is to change how the government buys and develops digital services by helping agencies adopt modern techniques that deliver superior products.
|
||||
|
||||
We are transforming government from the inside out, creating cultural change by working with teams inside agencies who want to create great services for the public.
|
||||
|
||||
We are a trusted partner for agencies working to transform how they build and buy tools and services in a user-centered way.
|
||||
|
||||
We will accomplish our mission by:
|
||||
|
||||
putting the needs of the public first
|
||||
being design-centric, agile, open, and data-driven
|
||||
deploying tools and services early and often
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Remote status
|
||||
|
||||
18F employees live all over the country. We work out of homes in Dayton and Tucson, St. Louis and Chapel Hill — and in federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
That means many of our project teams are also made up of distributed employees working all over the country. For example, you may have a developer in Austin, a designer in Washington D.C., and a content strategist in Portland — but they’re all working on the same team and with the same partners.
|
||||
|
||||
Because we work on distributed teams so frequently, we've developed certain strategies for working well as a collaborative operation.
|
||||
|
||||
[We have a “remote first” mindset.](https://18f.gsa.gov/2015/10/15/best-practices-for-distributed-teams/)
|
||||
|
||||
## Region
|
||||
|
||||
U.S. citizens, non-citizens who are nationals of the U.S., or people who have been admitted to the U.S. for permanent residence and hold a valid green card.
|
||||
|
||||
## Company technologies
|
||||
|
||||
Ruby, Python, HTML, CSS, JavaScript
|
||||
|
||||
## Office locations
|
||||
|
||||
Federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
## How to apply
|
||||
|
||||
[Open positions](https://pages.18f.gov/joining-18f/open-positions/)
|
||||
|
||||
If you want to apply directly to 18F please email join18f@gsa.gov. We don’t require a formal cover letter, but let us know more about you:
|
||||
|
||||
Send your current resume, preferably as a PDF.
|
||||
Link to your GitHub profile, design portfolio, or attach a writing sample.
|
||||
Specify what role you’d like to be considered for. Check out our openings here.
|
||||
If you're a Veteran of the U.S. Armed Forces or if you are eligible for "derived" preference, please mention that in your email so we can give you priority consideration.
|
||||
Don't see an opening that suits you? Tell us what you want to do!
|
||||
|
||||
[How to apply](https://pages.18f.gov/joining-18f/how-to-apply/)
|
46
test/fixtures/bad-profile-titles/company-profiles/and-yet.md
vendored
Normal file
46
test/fixtures/bad-profile-titles/company-profiles/and-yet.md
vendored
Normal file
|
@ -0,0 +1,46 @@
|
|||
# &yet
|
||||
|
||||
# Another h1
|
||||
|
||||
## Company blurb
|
||||
[&yet](https://andyet.com) is about people. We’re known as a design and development consultancy (specializing in Node, React, and realtime), but we don’t fit neatly in a box.
|
||||
|
||||
We design and [develop custom software](https://andyet.com/software) for web, mobile, desktop, chat, and voice.
|
||||
|
||||
We enable millions of people to make super simple video calls with [Talky](https://talky.io).
|
||||
|
||||
We pioneer software and standards for [realtime communications](https://andyet.com/realtime).
|
||||
|
||||
We [wrote the book](https://gatherthepeople.com) on taking a human approach to marketing for people who would rather make what they love than persuade people to buy it.
|
||||
|
||||
We create high-impact conference experiences such as [RealtimeConf](http://experience.realtimeconf.com) and more recently–[&yetConf](http://andyetconf.com).
|
||||
|
||||
[Learn more about our team](https://andyet.com/about).
|
||||
|
||||
## Company size
|
||||
20+
|
||||
|
||||
## Remote status
|
||||
We employ several strategies to ensure an inclusive and collaborative environment for all our employees.
|
||||
|
||||
To communicate we use [Slack](https://slack.com) (text-chat), our own product [Talky](https://talky.io) (video chat and meetings), [Twist](https://twistapp.com) (daily check-ins) and [GitHub](https://github.com) (organization wide discussions).
|
||||
|
||||
One-on-ones and bi-weekly company-wide updates are a crucial part of staying connected and understanding our team as things change. We encourage employees to use these meetings to bring up frustrations, ideas, or whatever they need in order to be their best selves and to do their best work.
|
||||
|
||||
At least once a year we organize an in-person all-hands team week. It’s the best.
|
||||
|
||||
## Region
|
||||
&yet has one office located in Richland, WA. Currently ten people are working remotely out of Seattle, Portland, Folsom, Phoenix, Denver, Kansas City, Frankfurt, Oslo, and Melbourne. The most significant timezone difference is 17 hours.
|
||||
|
||||
## Company technologies
|
||||
* Node.js
|
||||
* React
|
||||
* WebRTC
|
||||
* Pug
|
||||
* Stylus
|
||||
|
||||
## Office locations
|
||||
[Fuse Coworking in Richland, WA](https://goo.gl/maps/oJaAQFf12tv)
|
||||
|
||||
## How to apply
|
||||
No current openings.
|
12
test/fixtures/bad-table-rows/README.md
vendored
Normal file
12
test/fixtures/bad-table-rows/README.md
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Test data
|
||||
|
||||
This company table contains rows with an invalid number of table cells.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
[&yet](/company-profiles/and-yet.md) | https://andyet.com | Worldwide
|
||||
[10up](/company-profiles/10up.md) | https://10up.com/
|
||||
[17hats](/company-profiles/17hats.md) | https://www.17hats.com/ | Worldwide
|
||||
[18F](/company-profiles/18f.md) | https://18f.gsa.gov/ | USA | something else
|
39
test/fixtures/bad-table-rows/company-profiles/10up.md
vendored
Normal file
39
test/fixtures/bad-table-rows/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
# 10up
|
||||
|
||||
## Company blurb
|
||||
|
||||
We make websites and content management simple and fun with premiere web design & development consulting services, by contributing to open platforms like WordPress, and by providing tools and products (like [PushUp](https://pushupnotifications.com/)) that make web publishing a cinch.
|
||||
|
||||
At 10up, we don’t just “make” things – we engineer them. We’re a group of people built to solve problems; made to create; wired to delight. From beautiful pixels to beautiful code, we constantly improve the things around us, applying our passions to our clients’ projects and goals.
|
||||
|
||||
We’ve had the privilege of working on big web projects for clients as diverse as TechCrunch, ESPN’s FiveThirtyEight and Grantland, SurveyMonkey, Junior Diabetes Research Foundation (JDRF), and Google.
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## Office locations
|
||||
|
||||
None; or everywhere!
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
25
test/fixtures/bad-table-rows/company-profiles/17hats.md
vendored
Normal file
25
test/fixtures/bad-table-rows/company-profiles/17hats.md
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# 17hats
|
||||
|
||||
## Company blurb
|
||||
|
||||
Are you ready to stop juggling multiple apps to manage your business? From booking clients, to managing projects, to controlling your finances, with 17hats you have everything you need to manage your business and clients anytime, anywhere. Pretty neat if we say so ourselves! We created 17hats specifically for “businesses of one” with a focus on simplicity and ease of use.
|
||||
|
||||
## Company size
|
||||
|
||||
11-50
|
||||
|
||||
## Remote status
|
||||
|
||||
Every engineer on our team works remotely. That being said, we do need someone who can work California business hours (9am-6pm PST) and who is available for emergencies at night. If you live in the LA area, you are welcome to be in our cool office in Pasadena. Bonus points if you can curse in Dutch.
|
||||
|
||||
## Region
|
||||
|
||||
Worldwide
|
||||
|
||||
## Company technologies
|
||||
|
||||
iOS, React, Knockout, Rails, Perl, HTML, Sql, Ruby, JQuery
|
||||
|
||||
## How to apply
|
||||
|
||||
Email buford@17hats.com with github and/or CV
|
55
test/fixtures/bad-table-rows/company-profiles/18f.md
vendored
Normal file
55
test/fixtures/bad-table-rows/company-profiles/18f.md
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
# 18F
|
||||
|
||||
## Company blurb
|
||||
|
||||
18F is a civic consultancy for the government, inside the government, working with agencies to rapidly deploy tools and services that are easy to use, cost efficient, and reusable. Our goal is to change how the government buys and develops digital services by helping agencies adopt modern techniques that deliver superior products.
|
||||
|
||||
We are transforming government from the inside out, creating cultural change by working with teams inside agencies who want to create great services for the public.
|
||||
|
||||
We are a trusted partner for agencies working to transform how they build and buy tools and services in a user-centered way.
|
||||
|
||||
We will accomplish our mission by:
|
||||
|
||||
putting the needs of the public first
|
||||
being design-centric, agile, open, and data-driven
|
||||
deploying tools and services early and often
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Remote status
|
||||
|
||||
18F employees live all over the country. We work out of homes in Dayton and Tucson, St. Louis and Chapel Hill — and in federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
That means many of our project teams are also made up of distributed employees working all over the country. For example, you may have a developer in Austin, a designer in Washington D.C., and a content strategist in Portland — but they’re all working on the same team and with the same partners.
|
||||
|
||||
Because we work on distributed teams so frequently, we've developed certain strategies for working well as a collaborative operation.
|
||||
|
||||
[We have a “remote first” mindset.](https://18f.gsa.gov/2015/10/15/best-practices-for-distributed-teams/)
|
||||
|
||||
## Region
|
||||
|
||||
U.S. citizens, non-citizens who are nationals of the U.S., or people who have been admitted to the U.S. for permanent residence and hold a valid green card.
|
||||
|
||||
## Company technologies
|
||||
|
||||
Ruby, Python, HTML, CSS, JavaScript
|
||||
|
||||
## Office locations
|
||||
|
||||
Federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
## How to apply
|
||||
|
||||
[Open positions](https://pages.18f.gov/joining-18f/open-positions/)
|
||||
|
||||
If you want to apply directly to 18F please email join18f@gsa.gov. We don’t require a formal cover letter, but let us know more about you:
|
||||
|
||||
Send your current resume, preferably as a PDF.
|
||||
Link to your GitHub profile, design portfolio, or attach a writing sample.
|
||||
Specify what role you’d like to be considered for. Check out our openings here.
|
||||
If you're a Veteran of the U.S. Armed Forces or if you are eligible for "derived" preference, please mention that in your email so we can give you priority consideration.
|
||||
Don't see an opening that suits you? Tell us what you want to do!
|
||||
|
||||
[How to apply](https://pages.18f.gov/joining-18f/how-to-apply/)
|
44
test/fixtures/bad-table-rows/company-profiles/and-yet.md
vendored
Normal file
44
test/fixtures/bad-table-rows/company-profiles/and-yet.md
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# &yet
|
||||
|
||||
## Company blurb
|
||||
[&yet](https://andyet.com) is about people. We’re known as a design and development consultancy (specializing in Node, React, and realtime), but we don’t fit neatly in a box.
|
||||
|
||||
We design and [develop custom software](https://andyet.com/software) for web, mobile, desktop, chat, and voice.
|
||||
|
||||
We enable millions of people to make super simple video calls with [Talky](https://talky.io).
|
||||
|
||||
We pioneer software and standards for [realtime communications](https://andyet.com/realtime).
|
||||
|
||||
We [wrote the book](https://gatherthepeople.com) on taking a human approach to marketing for people who would rather make what they love than persuade people to buy it.
|
||||
|
||||
We create high-impact conference experiences such as [RealtimeConf](http://experience.realtimeconf.com) and more recently–[&yetConf](http://andyetconf.com).
|
||||
|
||||
[Learn more about our team](https://andyet.com/about).
|
||||
|
||||
## Company size
|
||||
20+
|
||||
|
||||
## Remote status
|
||||
We employ several strategies to ensure an inclusive and collaborative environment for all our employees.
|
||||
|
||||
To communicate we use [Slack](https://slack.com) (text-chat), our own product [Talky](https://talky.io) (video chat and meetings), [Twist](https://twistapp.com) (daily check-ins) and [GitHub](https://github.com) (organization wide discussions).
|
||||
|
||||
One-on-ones and bi-weekly company-wide updates are a crucial part of staying connected and understanding our team as things change. We encourage employees to use these meetings to bring up frustrations, ideas, or whatever they need in order to be their best selves and to do their best work.
|
||||
|
||||
At least once a year we organize an in-person all-hands team week. It’s the best.
|
||||
|
||||
## Region
|
||||
&yet has one office located in Richland, WA. Currently ten people are working remotely out of Seattle, Portland, Folsom, Phoenix, Denver, Kansas City, Frankfurt, Oslo, and Melbourne. The most significant timezone difference is 17 hours.
|
||||
|
||||
## Company technologies
|
||||
* Node.js
|
||||
* React
|
||||
* WebRTC
|
||||
* Pug
|
||||
* Stylus
|
||||
|
||||
## Office locations
|
||||
[Fuse Coworking in Richland, WA](https://goo.gl/maps/oJaAQFf12tv)
|
||||
|
||||
## How to apply
|
||||
No current openings.
|
13
test/fixtures/missing-company-names/README.md
vendored
Normal file
13
test/fixtures/missing-company-names/README.md
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Test data
|
||||
|
||||
This company table contains entries with missing company names.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
⚠⚠⚠⚠ | https://andyet.com | Worldwide
|
||||
| https://andyet.com | Worldwide
|
||||
[](/company-profiles/10up.md) ⚠ | https://10up.com/ | Worldwide
|
||||
[](/company-profiles/17hats.md) | https://www.17hats.com/ | Worldwide
|
||||
| https://18f.gsa.gov/ | USA
|
39
test/fixtures/missing-company-names/company-profiles/10up.md
vendored
Normal file
39
test/fixtures/missing-company-names/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
# 10up
|
||||
|
||||
## Company blurb
|
||||
|
||||
We make websites and content management simple and fun with premiere web design & development consulting services, by contributing to open platforms like WordPress, and by providing tools and products (like [PushUp](https://pushupnotifications.com/)) that make web publishing a cinch.
|
||||
|
||||
At 10up, we don’t just “make” things – we engineer them. We’re a group of people built to solve problems; made to create; wired to delight. From beautiful pixels to beautiful code, we constantly improve the things around us, applying our passions to our clients’ projects and goals.
|
||||
|
||||
We’ve had the privilege of working on big web projects for clients as diverse as TechCrunch, ESPN’s FiveThirtyEight and Grantland, SurveyMonkey, Junior Diabetes Research Foundation (JDRF), and Google.
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## Office locations
|
||||
|
||||
None; or everywhere!
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
25
test/fixtures/missing-company-names/company-profiles/17hats.md
vendored
Normal file
25
test/fixtures/missing-company-names/company-profiles/17hats.md
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# 17hats
|
||||
|
||||
## Company blurb
|
||||
|
||||
Are you ready to stop juggling multiple apps to manage your business? From booking clients, to managing projects, to controlling your finances, with 17hats you have everything you need to manage your business and clients anytime, anywhere. Pretty neat if we say so ourselves! We created 17hats specifically for “businesses of one” with a focus on simplicity and ease of use.
|
||||
|
||||
## Company size
|
||||
|
||||
11-50
|
||||
|
||||
## Remote status
|
||||
|
||||
Every engineer on our team works remotely. That being said, we do need someone who can work California business hours (9am-6pm PST) and who is available for emergencies at night. If you live in the LA area, you are welcome to be in our cool office in Pasadena. Bonus points if you can curse in Dutch.
|
||||
|
||||
## Region
|
||||
|
||||
Worldwide
|
||||
|
||||
## Company technologies
|
||||
|
||||
iOS, React, Knockout, Rails, Perl, HTML, Sql, Ruby, JQuery
|
||||
|
||||
## How to apply
|
||||
|
||||
Email buford@17hats.com with github and/or CV
|
55
test/fixtures/missing-company-names/company-profiles/18f.md
vendored
Normal file
55
test/fixtures/missing-company-names/company-profiles/18f.md
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
# 18F
|
||||
|
||||
## Company blurb
|
||||
|
||||
18F is a civic consultancy for the government, inside the government, working with agencies to rapidly deploy tools and services that are easy to use, cost efficient, and reusable. Our goal is to change how the government buys and develops digital services by helping agencies adopt modern techniques that deliver superior products.
|
||||
|
||||
We are transforming government from the inside out, creating cultural change by working with teams inside agencies who want to create great services for the public.
|
||||
|
||||
We are a trusted partner for agencies working to transform how they build and buy tools and services in a user-centered way.
|
||||
|
||||
We will accomplish our mission by:
|
||||
|
||||
putting the needs of the public first
|
||||
being design-centric, agile, open, and data-driven
|
||||
deploying tools and services early and often
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Remote status
|
||||
|
||||
18F employees live all over the country. We work out of homes in Dayton and Tucson, St. Louis and Chapel Hill — and in federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
That means many of our project teams are also made up of distributed employees working all over the country. For example, you may have a developer in Austin, a designer in Washington D.C., and a content strategist in Portland — but they’re all working on the same team and with the same partners.
|
||||
|
||||
Because we work on distributed teams so frequently, we've developed certain strategies for working well as a collaborative operation.
|
||||
|
||||
[We have a “remote first” mindset.](https://18f.gsa.gov/2015/10/15/best-practices-for-distributed-teams/)
|
||||
|
||||
## Region
|
||||
|
||||
U.S. citizens, non-citizens who are nationals of the U.S., or people who have been admitted to the U.S. for permanent residence and hold a valid green card.
|
||||
|
||||
## Company technologies
|
||||
|
||||
Ruby, Python, HTML, CSS, JavaScript
|
||||
|
||||
## Office locations
|
||||
|
||||
Federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
## How to apply
|
||||
|
||||
[Open positions](https://pages.18f.gov/joining-18f/open-positions/)
|
||||
|
||||
If you want to apply directly to 18F please email join18f@gsa.gov. We don’t require a formal cover letter, but let us know more about you:
|
||||
|
||||
Send your current resume, preferably as a PDF.
|
||||
Link to your GitHub profile, design portfolio, or attach a writing sample.
|
||||
Specify what role you’d like to be considered for. Check out our openings here.
|
||||
If you're a Veteran of the U.S. Armed Forces or if you are eligible for "derived" preference, please mention that in your email so we can give you priority consideration.
|
||||
Don't see an opening that suits you? Tell us what you want to do!
|
||||
|
||||
[How to apply](https://pages.18f.gov/joining-18f/how-to-apply/)
|
44
test/fixtures/missing-company-names/company-profiles/and-yet.md
vendored
Normal file
44
test/fixtures/missing-company-names/company-profiles/and-yet.md
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# &yet
|
||||
|
||||
## Company blurb
|
||||
[&yet](https://andyet.com) is about people. We’re known as a design and development consultancy (specializing in Node, React, and realtime), but we don’t fit neatly in a box.
|
||||
|
||||
We design and [develop custom software](https://andyet.com/software) for web, mobile, desktop, chat, and voice.
|
||||
|
||||
We enable millions of people to make super simple video calls with [Talky](https://talky.io).
|
||||
|
||||
We pioneer software and standards for [realtime communications](https://andyet.com/realtime).
|
||||
|
||||
We [wrote the book](https://gatherthepeople.com) on taking a human approach to marketing for people who would rather make what they love than persuade people to buy it.
|
||||
|
||||
We create high-impact conference experiences such as [RealtimeConf](http://experience.realtimeconf.com) and more recently–[&yetConf](http://andyetconf.com).
|
||||
|
||||
[Learn more about our team](https://andyet.com/about).
|
||||
|
||||
## Company size
|
||||
20+
|
||||
|
||||
## Remote status
|
||||
We employ several strategies to ensure an inclusive and collaborative environment for all our employees.
|
||||
|
||||
To communicate we use [Slack](https://slack.com) (text-chat), our own product [Talky](https://talky.io) (video chat and meetings), [Twist](https://twistapp.com) (daily check-ins) and [GitHub](https://github.com) (organization wide discussions).
|
||||
|
||||
One-on-ones and bi-weekly company-wide updates are a crucial part of staying connected and understanding our team as things change. We encourage employees to use these meetings to bring up frustrations, ideas, or whatever they need in order to be their best selves and to do their best work.
|
||||
|
||||
At least once a year we organize an in-person all-hands team week. It’s the best.
|
||||
|
||||
## Region
|
||||
&yet has one office located in Richland, WA. Currently ten people are working remotely out of Seattle, Portland, Folsom, Phoenix, Denver, Kansas City, Frankfurt, Oslo, and Melbourne. The most significant timezone difference is 17 hours.
|
||||
|
||||
## Company technologies
|
||||
* Node.js
|
||||
* React
|
||||
* WebRTC
|
||||
* Pug
|
||||
* Stylus
|
||||
|
||||
## Office locations
|
||||
[Fuse Coworking in Richland, WA](https://goo.gl/maps/oJaAQFf12tv)
|
||||
|
||||
## How to apply
|
||||
No current openings.
|
11
test/fixtures/orphaned-profiles/README.md
vendored
Normal file
11
test/fixtures/orphaned-profiles/README.md
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Test data
|
||||
|
||||
This folder contains a company profile (`18f.md`) with no link in the readme.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
[&yet](/company-profiles/and-yet.md) | https://andyet.com | Worldwide
|
||||
[10up](/company-profiles/10up.md) | https://10up.com/ | Worldwide
|
||||
[17hats](/company-profiles/17hats.md) | https://www.17hats.com/ | Worldwide
|
39
test/fixtures/orphaned-profiles/company-profiles/10up.md
vendored
Normal file
39
test/fixtures/orphaned-profiles/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
# 10up, A WordPress Development Agency
|
||||
|
||||
## Company blurb
|
||||
|
||||
We make websites and content management simple and fun with premiere web design & development consulting services, by contributing to open platforms like WordPress, and by providing tools and products (like [PushUp](https://pushupnotifications.com/)) that make web publishing a cinch.
|
||||
|
||||
At 10up, we don’t just “make” things – we engineer them. We’re a group of people built to solve problems; made to create; wired to delight. From beautiful pixels to beautiful code, we constantly improve the things around us, applying our passions to our clients’ projects and goals.
|
||||
|
||||
We’ve had the privilege of working on big web projects for clients as diverse as TechCrunch, ESPN’s FiveThirtyEight and Grantland, SurveyMonkey, Junior Diabetes Research Foundation (JDRF), and Google.
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## Office locations
|
||||
|
||||
None; or everywhere!
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
25
test/fixtures/orphaned-profiles/company-profiles/17hats.md
vendored
Normal file
25
test/fixtures/orphaned-profiles/company-profiles/17hats.md
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# 17hats
|
||||
|
||||
## Company blurb
|
||||
|
||||
Are you ready to stop juggling multiple apps to manage your business? From booking clients, to managing projects, to controlling your finances, with 17hats you have everything you need to manage your business and clients anytime, anywhere. Pretty neat if we say so ourselves! We created 17hats specifically for “businesses of one” with a focus on simplicity and ease of use.
|
||||
|
||||
## Company size
|
||||
|
||||
11-50
|
||||
|
||||
## Remote status
|
||||
|
||||
Every engineer on our team works remotely. That being said, we do need someone who can work California business hours (9am-6pm PST) and who is available for emergencies at night. If you live in the LA area, you are welcome to be in our cool office in Pasadena. Bonus points if you can curse in Dutch.
|
||||
|
||||
## Region
|
||||
|
||||
Worldwide
|
||||
|
||||
## Company technologies
|
||||
|
||||
iOS, React, Knockout, Rails, Perl, HTML, Sql, Ruby, JQuery
|
||||
|
||||
## How to apply
|
||||
|
||||
Email buford@17hats.com with github and/or CV
|
55
test/fixtures/orphaned-profiles/company-profiles/18f.md
vendored
Normal file
55
test/fixtures/orphaned-profiles/company-profiles/18f.md
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
# 18F
|
||||
|
||||
## Company blurb
|
||||
|
||||
18F is a civic consultancy for the government, inside the government, working with agencies to rapidly deploy tools and services that are easy to use, cost efficient, and reusable. Our goal is to change how the government buys and develops digital services by helping agencies adopt modern techniques that deliver superior products.
|
||||
|
||||
We are transforming government from the inside out, creating cultural change by working with teams inside agencies who want to create great services for the public.
|
||||
|
||||
We are a trusted partner for agencies working to transform how they build and buy tools and services in a user-centered way.
|
||||
|
||||
We will accomplish our mission by:
|
||||
|
||||
putting the needs of the public first
|
||||
being design-centric, agile, open, and data-driven
|
||||
deploying tools and services early and often
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Remote status
|
||||
|
||||
18F employees live all over the country. We work out of homes in Dayton and Tucson, St. Louis and Chapel Hill — and in federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
That means many of our project teams are also made up of distributed employees working all over the country. For example, you may have a developer in Austin, a designer in Washington D.C., and a content strategist in Portland — but they’re all working on the same team and with the same partners.
|
||||
|
||||
Because we work on distributed teams so frequently, we've developed certain strategies for working well as a collaborative operation.
|
||||
|
||||
[We have a “remote first” mindset.](https://18f.gsa.gov/2015/10/15/best-practices-for-distributed-teams/)
|
||||
|
||||
## Region
|
||||
|
||||
U.S. citizens, non-citizens who are nationals of the U.S., or people who have been admitted to the U.S. for permanent residence and hold a valid green card.
|
||||
|
||||
## Company technologies
|
||||
|
||||
Ruby, Python, HTML, CSS, JavaScript
|
||||
|
||||
## Office locations
|
||||
|
||||
Federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
## How to apply
|
||||
|
||||
[Open positions](https://pages.18f.gov/joining-18f/open-positions/)
|
||||
|
||||
If you want to apply directly to 18F please email join18f@gsa.gov. We don’t require a formal cover letter, but let us know more about you:
|
||||
|
||||
Send your current resume, preferably as a PDF.
|
||||
Link to your GitHub profile, design portfolio, or attach a writing sample.
|
||||
Specify what role you’d like to be considered for. Check out our openings here.
|
||||
If you're a Veteran of the U.S. Armed Forces or if you are eligible for "derived" preference, please mention that in your email so we can give you priority consideration.
|
||||
Don't see an opening that suits you? Tell us what you want to do!
|
||||
|
||||
[How to apply](https://pages.18f.gov/joining-18f/how-to-apply/)
|
44
test/fixtures/orphaned-profiles/company-profiles/and-yet.md
vendored
Normal file
44
test/fixtures/orphaned-profiles/company-profiles/and-yet.md
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# &yet (And Yet)
|
||||
|
||||
## Company blurb
|
||||
[&yet](https://andyet.com) is about people. We’re known as a design and development consultancy (specializing in Node, React, and realtime), but we don’t fit neatly in a box.
|
||||
|
||||
We design and [develop custom software](https://andyet.com/software) for web, mobile, desktop, chat, and voice.
|
||||
|
||||
We enable millions of people to make super simple video calls with [Talky](https://talky.io).
|
||||
|
||||
We pioneer software and standards for [realtime communications](https://andyet.com/realtime).
|
||||
|
||||
We [wrote the book](https://gatherthepeople.com) on taking a human approach to marketing for people who would rather make what they love than persuade people to buy it.
|
||||
|
||||
We create high-impact conference experiences such as [RealtimeConf](http://experience.realtimeconf.com) and more recently–[&yetConf](http://andyetconf.com).
|
||||
|
||||
[Learn more about our team](https://andyet.com/about).
|
||||
|
||||
## Company size
|
||||
20+
|
||||
|
||||
## Remote status
|
||||
We employ several strategies to ensure an inclusive and collaborative environment for all our employees.
|
||||
|
||||
To communicate we use [Slack](https://slack.com) (text-chat), our own product [Talky](https://talky.io) (video chat and meetings), [Twist](https://twistapp.com) (daily check-ins) and [GitHub](https://github.com) (organization wide discussions).
|
||||
|
||||
One-on-ones and bi-weekly company-wide updates are a crucial part of staying connected and understanding our team as things change. We encourage employees to use these meetings to bring up frustrations, ideas, or whatever they need in order to be their best selves and to do their best work.
|
||||
|
||||
At least once a year we organize an in-person all-hands team week. It’s the best.
|
||||
|
||||
## Region
|
||||
&yet has one office located in Richland, WA. Currently ten people are working remotely out of Seattle, Portland, Folsom, Phoenix, Denver, Kansas City, Frankfurt, Oslo, and Melbourne. The most significant timezone difference is 17 hours.
|
||||
|
||||
## Company technologies
|
||||
* Node.js
|
||||
* React
|
||||
* WebRTC
|
||||
* Pug
|
||||
* Stylus
|
||||
|
||||
## Office locations
|
||||
[Fuse Coworking in Richland, WA](https://goo.gl/maps/oJaAQFf12tv)
|
||||
|
||||
## How to apply
|
||||
No current openings.
|
29
test/fixtures/orphaned-profiles/example.md
vendored
Normal file
29
test/fixtures/orphaned-profiles/example.md
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Example Company
|
||||
|
||||
## Company blurb
|
||||
|
||||
Insert a little bit about your company here.
|
||||
|
||||
## Company size
|
||||
|
||||
An approximate size of your company. 0-20, 20-50, 50-100, 100-200, etc.
|
||||
|
||||
## Remote status
|
||||
|
||||
Explain a bit about your remote culture here.
|
||||
|
||||
## Region
|
||||
|
||||
Is your company open to US-based remote employees only? Other countries? Worldwide? Explain here.
|
||||
|
||||
## Company technologies
|
||||
|
||||
Insert some of the technologies used in your company here.
|
||||
|
||||
## Office locations
|
||||
|
||||
Insert your physical office locations here.
|
||||
|
||||
## How to apply
|
||||
|
||||
Insert a specific webpage, email, or instructions to apply.
|
12
test/fixtures/unsorted/README.md
vendored
Normal file
12
test/fixtures/unsorted/README.md
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Test data
|
||||
|
||||
This company table contains incorrectly sorted entries.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
[10up](/company-profiles/10up.md) | https://10up.com/ | Worldwide
|
||||
[18F](/company-profiles/18f.md) | https://18f.gsa.gov/ | USA
|
||||
[17hats](/company-profiles/17hats.md) | https://www.17hats.com/ | Worldwide
|
||||
[&yet](/company-profiles/and-yet.md) | https://andyet.com | Worldwide
|
39
test/fixtures/unsorted/company-profiles/10up.md
vendored
Normal file
39
test/fixtures/unsorted/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
# 10up
|
||||
|
||||
## Company blurb
|
||||
|
||||
We make websites and content management simple and fun with premiere web design & development consulting services, by contributing to open platforms like WordPress, and by providing tools and products (like [PushUp](https://pushupnotifications.com/)) that make web publishing a cinch.
|
||||
|
||||
At 10up, we don’t just “make” things – we engineer them. We’re a group of people built to solve problems; made to create; wired to delight. From beautiful pixels to beautiful code, we constantly improve the things around us, applying our passions to our clients’ projects and goals.
|
||||
|
||||
We’ve had the privilege of working on big web projects for clients as diverse as TechCrunch, ESPN’s FiveThirtyEight and Grantland, SurveyMonkey, Junior Diabetes Research Foundation (JDRF), and Google.
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## Office locations
|
||||
|
||||
None; or everywhere!
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
25
test/fixtures/unsorted/company-profiles/17hats.md
vendored
Normal file
25
test/fixtures/unsorted/company-profiles/17hats.md
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# 17hats
|
||||
|
||||
## Company blurb
|
||||
|
||||
Are you ready to stop juggling multiple apps to manage your business? From booking clients, to managing projects, to controlling your finances, with 17hats you have everything you need to manage your business and clients anytime, anywhere. Pretty neat if we say so ourselves! We created 17hats specifically for “businesses of one” with a focus on simplicity and ease of use.
|
||||
|
||||
## Company size
|
||||
|
||||
11-50
|
||||
|
||||
## Remote status
|
||||
|
||||
Every engineer on our team works remotely. That being said, we do need someone who can work California business hours (9am-6pm PST) and who is available for emergencies at night. If you live in the LA area, you are welcome to be in our cool office in Pasadena. Bonus points if you can curse in Dutch.
|
||||
|
||||
## Region
|
||||
|
||||
Worldwide
|
||||
|
||||
## Company technologies
|
||||
|
||||
iOS, React, Knockout, Rails, Perl, HTML, Sql, Ruby, JQuery
|
||||
|
||||
## How to apply
|
||||
|
||||
Email buford@17hats.com with github and/or CV
|
55
test/fixtures/unsorted/company-profiles/18f.md
vendored
Normal file
55
test/fixtures/unsorted/company-profiles/18f.md
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
# 18F
|
||||
|
||||
## Company blurb
|
||||
|
||||
18F is a civic consultancy for the government, inside the government, working with agencies to rapidly deploy tools and services that are easy to use, cost efficient, and reusable. Our goal is to change how the government buys and develops digital services by helping agencies adopt modern techniques that deliver superior products.
|
||||
|
||||
We are transforming government from the inside out, creating cultural change by working with teams inside agencies who want to create great services for the public.
|
||||
|
||||
We are a trusted partner for agencies working to transform how they build and buy tools and services in a user-centered way.
|
||||
|
||||
We will accomplish our mission by:
|
||||
|
||||
putting the needs of the public first
|
||||
being design-centric, agile, open, and data-driven
|
||||
deploying tools and services early and often
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Remote status
|
||||
|
||||
18F employees live all over the country. We work out of homes in Dayton and Tucson, St. Louis and Chapel Hill — and in federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
That means many of our project teams are also made up of distributed employees working all over the country. For example, you may have a developer in Austin, a designer in Washington D.C., and a content strategist in Portland — but they’re all working on the same team and with the same partners.
|
||||
|
||||
Because we work on distributed teams so frequently, we've developed certain strategies for working well as a collaborative operation.
|
||||
|
||||
[We have a “remote first” mindset.](https://18f.gsa.gov/2015/10/15/best-practices-for-distributed-teams/)
|
||||
|
||||
## Region
|
||||
|
||||
U.S. citizens, non-citizens who are nationals of the U.S., or people who have been admitted to the U.S. for permanent residence and hold a valid green card.
|
||||
|
||||
## Company technologies
|
||||
|
||||
Ruby, Python, HTML, CSS, JavaScript
|
||||
|
||||
## Office locations
|
||||
|
||||
Federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
## How to apply
|
||||
|
||||
[Open positions](https://pages.18f.gov/joining-18f/open-positions/)
|
||||
|
||||
If you want to apply directly to 18F please email join18f@gsa.gov. We don’t require a formal cover letter, but let us know more about you:
|
||||
|
||||
Send your current resume, preferably as a PDF.
|
||||
Link to your GitHub profile, design portfolio, or attach a writing sample.
|
||||
Specify what role you’d like to be considered for. Check out our openings here.
|
||||
If you're a Veteran of the U.S. Armed Forces or if you are eligible for "derived" preference, please mention that in your email so we can give you priority consideration.
|
||||
Don't see an opening that suits you? Tell us what you want to do!
|
||||
|
||||
[How to apply](https://pages.18f.gov/joining-18f/how-to-apply/)
|
44
test/fixtures/unsorted/company-profiles/and-yet.md
vendored
Normal file
44
test/fixtures/unsorted/company-profiles/and-yet.md
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# &yet
|
||||
|
||||
## Company blurb
|
||||
[&yet](https://andyet.com) is about people. We’re known as a design and development consultancy (specializing in Node, React, and realtime), but we don’t fit neatly in a box.
|
||||
|
||||
We design and [develop custom software](https://andyet.com/software) for web, mobile, desktop, chat, and voice.
|
||||
|
||||
We enable millions of people to make super simple video calls with [Talky](https://talky.io).
|
||||
|
||||
We pioneer software and standards for [realtime communications](https://andyet.com/realtime).
|
||||
|
||||
We [wrote the book](https://gatherthepeople.com) on taking a human approach to marketing for people who would rather make what they love than persuade people to buy it.
|
||||
|
||||
We create high-impact conference experiences such as [RealtimeConf](http://experience.realtimeconf.com) and more recently–[&yetConf](http://andyetconf.com).
|
||||
|
||||
[Learn more about our team](https://andyet.com/about).
|
||||
|
||||
## Company size
|
||||
20+
|
||||
|
||||
## Remote status
|
||||
We employ several strategies to ensure an inclusive and collaborative environment for all our employees.
|
||||
|
||||
To communicate we use [Slack](https://slack.com) (text-chat), our own product [Talky](https://talky.io) (video chat and meetings), [Twist](https://twistapp.com) (daily check-ins) and [GitHub](https://github.com) (organization wide discussions).
|
||||
|
||||
One-on-ones and bi-weekly company-wide updates are a crucial part of staying connected and understanding our team as things change. We encourage employees to use these meetings to bring up frustrations, ideas, or whatever they need in order to be their best selves and to do their best work.
|
||||
|
||||
At least once a year we organize an in-person all-hands team week. It’s the best.
|
||||
|
||||
## Region
|
||||
&yet has one office located in Richland, WA. Currently ten people are working remotely out of Seattle, Portland, Folsom, Phoenix, Denver, Kansas City, Frankfurt, Oslo, and Melbourne. The most significant timezone difference is 17 hours.
|
||||
|
||||
## Company technologies
|
||||
* Node.js
|
||||
* React
|
||||
* WebRTC
|
||||
* Pug
|
||||
* Stylus
|
||||
|
||||
## Office locations
|
||||
[Fuse Coworking in Richland, WA](https://goo.gl/maps/oJaAQFf12tv)
|
||||
|
||||
## How to apply
|
||||
No current openings.
|
16
test/fixtures/valid-incomplete/README.md
vendored
Normal file
16
test/fixtures/valid-incomplete/README.md
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Test data
|
||||
|
||||
This company table and its linked company profiles contain some companies that
|
||||
have very little information, marked with a ⚠ symbol.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
[&yet](/company-profiles/and-yet.md) | https://andyet.com | Worldwide
|
||||
[10up](/company-profiles/10up.md) | https://10up.com/ | Worldwide
|
||||
[17hats](/company-profiles/17hats.md) | https://www.17hats.com/ | Worldwide
|
||||
[18F](/company-profiles/18f.md) | https://18f.gsa.gov/ | USA
|
||||
[45royale](/company-profiles/45royale.md) ⚠ | http://45royale.com/ |
|
||||
[Aerolab](/company-profiles/aerolab.md) ⚠ | https://aerolab.co/ |
|
||||
[AngularClass](/company-profiles/angularclass.md) ⚠ | https://angularclass.com | PST Timezone
|
35
test/fixtures/valid-incomplete/company-profiles/10up.md
vendored
Normal file
35
test/fixtures/valid-incomplete/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
# 10up, A WordPress Development Agency
|
||||
|
||||
## Company blurb
|
||||
|
||||
We make websites and content management simple and fun with premiere web design & development consulting services, by contributing to open platforms like WordPress, and by providing tools and products (like [PushUp](https://pushupnotifications.com/)) that make web publishing a cinch.
|
||||
|
||||
At 10up, we don’t just “make” things – we engineer them. We’re a group of people built to solve problems; made to create; wired to delight. From beautiful pixels to beautiful code, we constantly improve the things around us, applying our passions to our clients’ projects and goals.
|
||||
|
||||
We’ve had the privilege of working on big web projects for clients as diverse as TechCrunch, ESPN’s FiveThirtyEight and Grantland, SurveyMonkey, Junior Diabetes Research Foundation (JDRF), and Google.
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
21
test/fixtures/valid-incomplete/company-profiles/17hats.md
vendored
Normal file
21
test/fixtures/valid-incomplete/company-profiles/17hats.md
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
# 17hats
|
||||
|
||||
## Company blurb
|
||||
|
||||
Are you ready to stop juggling multiple apps to manage your business? From booking clients, to managing projects, to controlling your finances, with 17hats you have everything you need to manage your business and clients anytime, anywhere. Pretty neat if we say so ourselves! We created 17hats specifically for “businesses of one” with a focus on simplicity and ease of use.
|
||||
|
||||
## Company size
|
||||
|
||||
11-50
|
||||
|
||||
## Remote status
|
||||
|
||||
Every engineer on our team works remotely. That being said, we do need someone who can work California business hours (9am-6pm PST) and who is available for emergencies at night. If you live in the LA area, you are welcome to be in our cool office in Pasadena. Bonus points if you can curse in Dutch.
|
||||
|
||||
## Region
|
||||
|
||||
Worldwide
|
||||
|
||||
## Company technologies
|
||||
|
||||
iOS, React, Knockout, Rails, Perl, HTML, Sql, Ruby, JQuery
|
47
test/fixtures/valid-incomplete/company-profiles/18f.md
vendored
Normal file
47
test/fixtures/valid-incomplete/company-profiles/18f.md
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
# 18F
|
||||
|
||||
## Company blurb
|
||||
|
||||
18F is a civic consultancy for the government, inside the government, working with agencies to rapidly deploy tools and services that are easy to use, cost efficient, and reusable. Our goal is to change how the government buys and develops digital services by helping agencies adopt modern techniques that deliver superior products.
|
||||
|
||||
We are transforming government from the inside out, creating cultural change by working with teams inside agencies who want to create great services for the public.
|
||||
|
||||
We are a trusted partner for agencies working to transform how they build and buy tools and services in a user-centered way.
|
||||
|
||||
We will accomplish our mission by:
|
||||
|
||||
putting the needs of the public first
|
||||
being design-centric, agile, open, and data-driven
|
||||
deploying tools and services early and often
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Remote status
|
||||
|
||||
18F employees live all over the country. We work out of homes in Dayton and Tucson, St. Louis and Chapel Hill — and in federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
That means many of our project teams are also made up of distributed employees working all over the country. For example, you may have a developer in Austin, a designer in Washington D.C., and a content strategist in Portland — but they’re all working on the same team and with the same partners.
|
||||
|
||||
Because we work on distributed teams so frequently, we've developed certain strategies for working well as a collaborative operation.
|
||||
|
||||
[We have a “remote first” mindset.](https://18f.gsa.gov/2015/10/15/best-practices-for-distributed-teams/)
|
||||
|
||||
## Region
|
||||
|
||||
U.S. citizens, non-citizens who are nationals of the U.S., or people who have been admitted to the U.S. for permanent residence and hold a valid green card.
|
||||
|
||||
## How to apply
|
||||
|
||||
[Open positions](https://pages.18f.gov/joining-18f/open-positions/)
|
||||
|
||||
If you want to apply directly to 18F please email join18f@gsa.gov. We don’t require a formal cover letter, but let us know more about you:
|
||||
|
||||
Send your current resume, preferably as a PDF.
|
||||
Link to your GitHub profile, design portfolio, or attach a writing sample.
|
||||
Specify what role you’d like to be considered for. Check out our openings here.
|
||||
If you're a Veteran of the U.S. Armed Forces or if you are eligible for "derived" preference, please mention that in your email so we can give you priority consideration.
|
||||
Don't see an opening that suits you? Tell us what you want to do!
|
||||
|
||||
[How to apply](https://pages.18f.gov/joining-18f/how-to-apply/)
|
11
test/fixtures/valid-incomplete/company-profiles/45royale.md
vendored
Normal file
11
test/fixtures/valid-incomplete/company-profiles/45royale.md
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
# 45royale
|
||||
|
||||
## Company blurb
|
||||
|
||||
⚠ We don't have much information about this company yet!
|
||||
|
||||
If you know something we don't, help us fill it in! Here's how:
|
||||
|
||||
- Read our [Contributing Guidelines](https://github.com/remoteintech/remote-jobs/blob/master/CONTRIBUTING.md)
|
||||
- Have a look at our [example company profile](https://github.com/remoteintech/remote-jobs/blob/master/company-profiles/example.md)
|
||||
- Follow the structure of the example profile and [send us a pull request with your changes to this file!](https://github.com/remoteintech/remote-jobs/edit/master/company-profiles/45royale.md)
|
11
test/fixtures/valid-incomplete/company-profiles/aerolab.md
vendored
Normal file
11
test/fixtures/valid-incomplete/company-profiles/aerolab.md
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
# Aerolab
|
||||
|
||||
## Company blurb
|
||||
|
||||
⚠ We don't have much information about this company yet!
|
||||
|
||||
If you know something we don't, help us fill it in! Here's how:
|
||||
|
||||
- Read our [Contributing Guidelines](https://github.com/remoteintech/remote-jobs/blob/master/CONTRIBUTING.md)
|
||||
- Have a look at our [example company profile](https://github.com/remoteintech/remote-jobs/blob/master/company-profiles/example.md)
|
||||
- Follow the structure of the example profile and [send us a pull request with your changes to this file!](https://github.com/remoteintech/remote-jobs/edit/master/company-profiles/aerolab.md)
|
44
test/fixtures/valid-incomplete/company-profiles/and-yet.md
vendored
Normal file
44
test/fixtures/valid-incomplete/company-profiles/and-yet.md
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# &yet (And Yet)
|
||||
|
||||
## Company blurb
|
||||
[&yet](https://andyet.com) is about people. We’re known as a design and development consultancy (specializing in Node, React, and realtime), but we don’t fit neatly in a box.
|
||||
|
||||
We design and [develop custom software](https://andyet.com/software) for web, mobile, desktop, chat, and voice.
|
||||
|
||||
We enable millions of people to make super simple video calls with [Talky](https://talky.io).
|
||||
|
||||
We pioneer software and standards for [realtime communications](https://andyet.com/realtime).
|
||||
|
||||
We [wrote the book](https://gatherthepeople.com) on taking a human approach to marketing for people who would rather make what they love than persuade people to buy it.
|
||||
|
||||
We create high-impact conference experiences such as [RealtimeConf](http://experience.realtimeconf.com) and more recently–[&yetConf](http://andyetconf.com).
|
||||
|
||||
[Learn more about our team](https://andyet.com/about).
|
||||
|
||||
## Company size
|
||||
20+
|
||||
|
||||
## Remote status
|
||||
We employ several strategies to ensure an inclusive and collaborative environment for all our employees.
|
||||
|
||||
To communicate we use [Slack](https://slack.com) (text-chat), our own product [Talky](https://talky.io) (video chat and meetings), [Twist](https://twistapp.com) (daily check-ins) and [GitHub](https://github.com) (organization wide discussions).
|
||||
|
||||
One-on-ones and bi-weekly company-wide updates are a crucial part of staying connected and understanding our team as things change. We encourage employees to use these meetings to bring up frustrations, ideas, or whatever they need in order to be their best selves and to do their best work.
|
||||
|
||||
At least once a year we organize an in-person all-hands team week. It’s the best.
|
||||
|
||||
## Region
|
||||
&yet has one office located in Richland, WA. Currently ten people are working remotely out of Seattle, Portland, Folsom, Phoenix, Denver, Kansas City, Frankfurt, Oslo, and Melbourne. The most significant timezone difference is 17 hours.
|
||||
|
||||
## Company technologies
|
||||
* Node.js
|
||||
* React
|
||||
* WebRTC
|
||||
* Pug
|
||||
* Stylus
|
||||
|
||||
## Office locations
|
||||
[Fuse Coworking in Richland, WA](https://goo.gl/maps/oJaAQFf12tv)
|
||||
|
||||
## How to apply
|
||||
No current openings.
|
11
test/fixtures/valid-incomplete/company-profiles/angularclass.md
vendored
Normal file
11
test/fixtures/valid-incomplete/company-profiles/angularclass.md
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
# AngularClass
|
||||
|
||||
## Company blurb
|
||||
|
||||
⚠ We don't have much information about this company yet!
|
||||
|
||||
If you know something we don't, help us fill it in! Here's how:
|
||||
|
||||
- Read our [Contributing Guidelines](https://github.com/remoteintech/remote-jobs/blob/master/CONTRIBUTING.md)
|
||||
- Have a look at our [example company profile](https://github.com/remoteintech/remote-jobs/blob/master/company-profiles/example.md)
|
||||
- Follow the structure of the example profile and [send us a pull request with your changes to this file!](https://github.com/remoteintech/remote-jobs/edit/master/company-profiles/angularclass.md)
|
12
test/fixtures/valid/README.md
vendored
Normal file
12
test/fixtures/valid/README.md
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Test data
|
||||
|
||||
This company table and its linked company profiles contain fully valid data.
|
||||
|
||||
## Companies
|
||||
|
||||
Name | Website | Region
|
||||
------------ | ------- | -------
|
||||
[&yet](/company-profiles/and-yet.md) | https://andyet.com | Worldwide
|
||||
[10up](/company-profiles/10up.md) | https://10up.com/ | Worldwide
|
||||
[17hats](/company-profiles/17hats.md) | https://www.17hats.com/ | Worldwide
|
||||
[18F](/company-profiles/18f.md) | https://18f.gsa.gov/ | USA
|
39
test/fixtures/valid/company-profiles/10up.md
vendored
Normal file
39
test/fixtures/valid/company-profiles/10up.md
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
# 10up, A WordPress Development Agency
|
||||
|
||||
## Company blurb
|
||||
|
||||
We make websites and content management simple and fun with premiere web design & development consulting services, by contributing to open platforms like WordPress, and by providing tools and products (like [PushUp](https://pushupnotifications.com/)) that make web publishing a cinch.
|
||||
|
||||
At 10up, we don’t just “make” things – we engineer them. We’re a group of people built to solve problems; made to create; wired to delight. From beautiful pixels to beautiful code, we constantly improve the things around us, applying our passions to our clients’ projects and goals.
|
||||
|
||||
We’ve had the privilege of working on big web projects for clients as diverse as TechCrunch, ESPN’s FiveThirtyEight and Grantland, SurveyMonkey, Junior Diabetes Research Foundation (JDRF), and Google.
|
||||
|
||||
## Company size
|
||||
|
||||
125 and growing, spread across web engineering, systems, design, project management, strategy/accounts, and operations.
|
||||
|
||||
## Remote status
|
||||
|
||||
10up didn’t integrate remote work – we intended to be remote from the start! Being remote allows us to find talent no matter where they're located, scale up to meet needs with relative fluidity, and have been bootstrapped from the start. We also recognize the challenges of working remotely, and put a lot of effort into in-person meetups, communication tools, and ensuring that employees have the benefits and support they need no matter where they are.
|
||||
|
||||
## Region
|
||||
|
||||
We have employees all around the world, from across the US to the UK to South Africa to the Philippines. Most are currently located in North America, a number travel frequently, and some even work nomadically.
|
||||
|
||||
## Company technologies
|
||||
|
||||
* WordPress
|
||||
* PHP
|
||||
* Sass
|
||||
* Git
|
||||
* Vagrant
|
||||
* Nginx
|
||||
* Memcache
|
||||
|
||||
## Office locations
|
||||
|
||||
None; or everywhere!
|
||||
|
||||
## How to apply
|
||||
|
||||
Check out our [careers page](https://10up.com/careers/) and send an email to jobs@10up.com. Our amazing Recruitment Manager Christine Garrison will be on the other end.
|
25
test/fixtures/valid/company-profiles/17hats.md
vendored
Normal file
25
test/fixtures/valid/company-profiles/17hats.md
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
# 17hats
|
||||
|
||||
## Company blurb
|
||||
|
||||
Are you ready to stop juggling multiple apps to manage your business? From booking clients, to managing projects, to controlling your finances, with 17hats you have everything you need to manage your business and clients anytime, anywhere. Pretty neat if we say so ourselves! We created 17hats specifically for “businesses of one” with a focus on simplicity and ease of use.
|
||||
|
||||
## Company size
|
||||
|
||||
11-50
|
||||
|
||||
## Remote status
|
||||
|
||||
Every engineer on our team works remotely. That being said, we do need someone who can work California business hours (9am-6pm PST) and who is available for emergencies at night. If you live in the LA area, you are welcome to be in our cool office in Pasadena. Bonus points if you can curse in Dutch.
|
||||
|
||||
## Region
|
||||
|
||||
Worldwide
|
||||
|
||||
## Company technologies
|
||||
|
||||
iOS, React, Knockout, Rails, Perl, HTML, Sql, Ruby, JQuery
|
||||
|
||||
## How to apply
|
||||
|
||||
Email buford@17hats.com with github and/or CV
|
55
test/fixtures/valid/company-profiles/18f.md
vendored
Normal file
55
test/fixtures/valid/company-profiles/18f.md
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
# 18F
|
||||
|
||||
## Company blurb
|
||||
|
||||
18F is a civic consultancy for the government, inside the government, working with agencies to rapidly deploy tools and services that are easy to use, cost efficient, and reusable. Our goal is to change how the government buys and develops digital services by helping agencies adopt modern techniques that deliver superior products.
|
||||
|
||||
We are transforming government from the inside out, creating cultural change by working with teams inside agencies who want to create great services for the public.
|
||||
|
||||
We are a trusted partner for agencies working to transform how they build and buy tools and services in a user-centered way.
|
||||
|
||||
We will accomplish our mission by:
|
||||
|
||||
putting the needs of the public first
|
||||
being design-centric, agile, open, and data-driven
|
||||
deploying tools and services early and often
|
||||
|
||||
## Company size
|
||||
|
||||
100+
|
||||
|
||||
## Remote status
|
||||
|
||||
18F employees live all over the country. We work out of homes in Dayton and Tucson, St. Louis and Chapel Hill — and in federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
That means many of our project teams are also made up of distributed employees working all over the country. For example, you may have a developer in Austin, a designer in Washington D.C., and a content strategist in Portland — but they’re all working on the same team and with the same partners.
|
||||
|
||||
Because we work on distributed teams so frequently, we've developed certain strategies for working well as a collaborative operation.
|
||||
|
||||
[We have a “remote first” mindset.](https://18f.gsa.gov/2015/10/15/best-practices-for-distributed-teams/)
|
||||
|
||||
## Region
|
||||
|
||||
U.S. citizens, non-citizens who are nationals of the U.S., or people who have been admitted to the U.S. for permanent residence and hold a valid green card.
|
||||
|
||||
## Company technologies
|
||||
|
||||
Ruby, Python, HTML, CSS, JavaScript
|
||||
|
||||
## Office locations
|
||||
|
||||
Federal buildings in San Francisco, Chicago, New York City, and Washington D.C.
|
||||
|
||||
## How to apply
|
||||
|
||||
[Open positions](https://pages.18f.gov/joining-18f/open-positions/)
|
||||
|
||||
If you want to apply directly to 18F please email join18f@gsa.gov. We don’t require a formal cover letter, but let us know more about you:
|
||||
|
||||
Send your current resume, preferably as a PDF.
|
||||
Link to your GitHub profile, design portfolio, or attach a writing sample.
|
||||
Specify what role you’d like to be considered for. Check out our openings here.
|
||||
If you're a Veteran of the U.S. Armed Forces or if you are eligible for "derived" preference, please mention that in your email so we can give you priority consideration.
|
||||
Don't see an opening that suits you? Tell us what you want to do!
|
||||
|
||||
[How to apply](https://pages.18f.gov/joining-18f/how-to-apply/)
|
44
test/fixtures/valid/company-profiles/and-yet.md
vendored
Normal file
44
test/fixtures/valid/company-profiles/and-yet.md
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
# &yet (And Yet)
|
||||
|
||||
## Company blurb
|
||||
[&yet](https://andyet.com) is about people. We’re known as a design and development consultancy (specializing in Node, React, and realtime), but we don’t fit neatly in a box.
|
||||
|
||||
We design and [develop custom software](https://andyet.com/software) for web, mobile, desktop, chat, and voice.
|
||||
|
||||
We enable millions of people to make super simple video calls with [Talky](https://talky.io).
|
||||
|
||||
We pioneer software and standards for [realtime communications](https://andyet.com/realtime).
|
||||
|
||||
We [wrote the book](https://gatherthepeople.com) on taking a human approach to marketing for people who would rather make what they love than persuade people to buy it.
|
||||
|
||||
We create high-impact conference experiences such as [RealtimeConf](http://experience.realtimeconf.com) and more recently–[&yetConf](http://andyetconf.com).
|
||||
|
||||
[Learn more about our team](https://andyet.com/about).
|
||||
|
||||
## Company size
|
||||
20+
|
||||
|
||||
## Remote status
|
||||
We employ several strategies to ensure an inclusive and collaborative environment for all our employees.
|
||||
|
||||
To communicate we use [Slack](https://slack.com) (text-chat), our own product [Talky](https://talky.io) (video chat and meetings), [Twist](https://twistapp.com) (daily check-ins) and [GitHub](https://github.com) (organization wide discussions).
|
||||
|
||||
One-on-ones and bi-weekly company-wide updates are a crucial part of staying connected and understanding our team as things change. We encourage employees to use these meetings to bring up frustrations, ideas, or whatever they need in order to be their best selves and to do their best work.
|
||||
|
||||
At least once a year we organize an in-person all-hands team week. It’s the best.
|
||||
|
||||
## Region
|
||||
&yet has one office located in Richland, WA. Currently ten people are working remotely out of Seattle, Portland, Folsom, Phoenix, Denver, Kansas City, Frankfurt, Oslo, and Melbourne. The most significant timezone difference is 17 hours.
|
||||
|
||||
## Company technologies
|
||||
* Node.js
|
||||
* React
|
||||
* WebRTC
|
||||
* Pug
|
||||
* Stylus
|
||||
|
||||
## Office locations
|
||||
[Fuse Coworking in Richland, WA](https://goo.gl/maps/oJaAQFf12tv)
|
||||
|
||||
## How to apply
|
||||
No current openings.
|
40
test/lib/index.js
Normal file
40
test/lib/index.js
Normal file
|
@ -0,0 +1,40 @@
|
|||
const path = require( 'path' );
|
||||
const fs = require( 'fs' );
|
||||
const { spawnSync } = require( 'child_process' );
|
||||
|
||||
const { expect } = require( 'chai' );
|
||||
|
||||
const fixturesPath = path.join( __dirname, '..', 'fixtures' );
|
||||
const validatePath = path.join( __dirname, '..', '..', 'bin', 'validate.js' );
|
||||
|
||||
exports.runValidationWithFixtures = ( dirName, env = {} ) => {
|
||||
const result = spawnSync( process.execPath, [
|
||||
validatePath,
|
||||
path.join( fixturesPath, dirName ),
|
||||
], { env } );
|
||||
|
||||
if ( result.error ) {
|
||||
throw result.error;
|
||||
}
|
||||
|
||||
expect( result.stderr.toString() ).to.equal( '' );
|
||||
|
||||
const output = result.stdout.toString().trim().split( '\n' );
|
||||
const exitCode = result.status;
|
||||
|
||||
expect( output[ output.length - 1 ] ).to.equal(
|
||||
exitCode + ' problem' + ( exitCode === 1 ? '' : 's' ) + ' detected'
|
||||
);
|
||||
if ( output.length >= 2 ) {
|
||||
expect( output[ output.length - 2 ] ).to.equal( '' );
|
||||
output.splice( -2 );
|
||||
} else {
|
||||
output.splice( -1 );
|
||||
}
|
||||
|
||||
if ( process.env.DUMP_OUTPUT ) {
|
||||
output.forEach( s => console.log( "'%s',", s.replace( /'/g, "\\'" ) ) );
|
||||
}
|
||||
|
||||
return { output, exitCode };
|
||||
};
|
96
test/validation-errors.js
Normal file
96
test/validation-errors.js
Normal file
|
@ -0,0 +1,96 @@
|
|||
const { expect } = require( 'chai' );
|
||||
|
||||
const { runValidationWithFixtures } = require( './lib' );
|
||||
|
||||
describe( 'validation script errors', () => {
|
||||
it( 'should catch invalid table rows', () => {
|
||||
expect( runValidationWithFixtures( 'bad-table-rows' ) ).to.eql( {
|
||||
exitCode: 2,
|
||||
output: [
|
||||
'README.md: Expected 3 table cells but found 2: <td><a href="/company-profiles/10up.md">10up</a></td><td><a href="https://10up.com/">https://10up.com/</a></td>',
|
||||
'README.md: Expected 3 table cells but found 4: <td><a href="/company-profiles/18f.md">18F</a></td><td><a href="https://18f.gsa.gov/">https://18f.gsa.gov/</a></td><td>USA</td><td>something else</td>',
|
||||
],
|
||||
} );
|
||||
} );
|
||||
|
||||
it( 'should catch missing company names', () => {
|
||||
expect( runValidationWithFixtures( 'missing-company-names' ) ).to.eql( {
|
||||
exitCode: 10,
|
||||
output: [
|
||||
'README.md: Company "⚠⚠⚠" has no linked Markdown profile (".md")',
|
||||
'README.md: Missing company name: <td></td><td><a href="https://andyet.com">https://andyet.com</a></td><td>Worldwide</td>',
|
||||
'README.md: Company is listed out of order: "" (should be before "⚠⚠⚠")',
|
||||
'README.md: Company "" has no linked Markdown profile (".md")',
|
||||
'README.md: Missing company name: <td><a href="/company-profiles/10up.md"></a> ⚠</td><td><a href="https://10up.com/">https://10up.com/</a></td><td>Worldwide</td>',
|
||||
'README.md: Missing company name: <td><a href="/company-profiles/17hats.md"></a></td><td><a href="https://www.17hats.com/">https://www.17hats.com/</a></td><td>Worldwide</td>',
|
||||
'README.md: Missing company name: <td></td><td><a href="https://18f.gsa.gov/">https://18f.gsa.gov/</a></td><td>USA</td>',
|
||||
'README.md: Company "" has no linked Markdown profile (".md")',
|
||||
'18f.md: No link to company profile from readme',
|
||||
'and-yet.md: No link to company profile from readme',
|
||||
],
|
||||
} );
|
||||
} );
|
||||
|
||||
it( 'should catch unsorted company names', () => {
|
||||
expect( runValidationWithFixtures( 'unsorted' ) ).to.eql( {
|
||||
exitCode: 2,
|
||||
output: [
|
||||
'README.md: Company is listed out of order: "17hats" (should be before "18F")',
|
||||
'README.md: Company is listed out of order: "&yet" (should be before "17hats")',
|
||||
],
|
||||
} );
|
||||
} );
|
||||
|
||||
it( 'should catch invalid profile links and missing profiles', () => {
|
||||
expect( runValidationWithFixtures( 'bad-profile-links' ) ).to.eql( {
|
||||
exitCode: 4,
|
||||
output: [
|
||||
'README.md: Invalid link to company "&yet": "company-profiles/and-yet.md"',
|
||||
'README.md: Broken link to company "17hats": "/company-profiles/17hats-nonexistent.md"',
|
||||
'README.md: Invalid link to company "18F": "/company-profiles/18f.js"',
|
||||
'README.md: Company "My awesome company" has no linked Markdown profile ("my-awesome-company.md")',
|
||||
],
|
||||
} );
|
||||
} );
|
||||
|
||||
it( 'should catch invalid titles in company profiles', () => {
|
||||
expect( runValidationWithFixtures( 'bad-profile-titles' ) ).to.eql( {
|
||||
exitCode: 6,
|
||||
output: [
|
||||
'10up.md: Expected 1 first-level heading but found 0',
|
||||
'10up.md: The main title is wrapped inside of another element.',
|
||||
'10up.md: Company name looks wrong: ""',
|
||||
'17hats.md: Expected filename "a-company-called-17hats.md" for company "A company called 17hats"',
|
||||
'18f.md: Company name looks wrong: "$%$#%$"',
|
||||
'and-yet.md: Expected 1 first-level heading but found 2',
|
||||
],
|
||||
} );
|
||||
} );
|
||||
|
||||
it( 'should catch orphaned company profiles', () => {
|
||||
expect( runValidationWithFixtures( 'orphaned-profiles' ) ).to.eql( {
|
||||
exitCode: 1,
|
||||
output: [
|
||||
'18f.md: No link to company profile from readme',
|
||||
],
|
||||
} );
|
||||
} );
|
||||
|
||||
it( 'should catch invalid section headings', () => {
|
||||
expect( runValidationWithFixtures( 'bad-profile-headings' ) ).to.eql( {
|
||||
exitCode: 10,
|
||||
output: [
|
||||
'10up.md: Required section "Company blurb" not found.',
|
||||
'17hats.md: Invalid section: "A thing I made up". Expected one of: ["Company blurb","Company size","Remote status","Region","Company technologies","Office locations","How to apply"]',
|
||||
'17hats.md: Content is not part of any section: <p>Some extra content.</p>',
|
||||
'18f.md: Duplicate section: "Company size".',
|
||||
'18f.md: Empty section: "Region". Leave it out instead.',
|
||||
'18f.md: Empty section: "Remote status". Leave it out instead.',
|
||||
'1password.md: The main title is wrapped inside of another element.',
|
||||
'1password.md: The section heading for "Company size" is wrapped inside of another element.',
|
||||
'1password.md: Content is not part of any section: <blockquote><h1 id="1password">1Password</h1></blockquote>',
|
||||
'and-yet.md: Required section "Company blurb" not found.',
|
||||
],
|
||||
} );
|
||||
} );
|
||||
} );
|
29
test/validation-ok.js
Normal file
29
test/validation-ok.js
Normal file
|
@ -0,0 +1,29 @@
|
|||
const { expect } = require( 'chai' );
|
||||
|
||||
const { runValidationWithFixtures } = require( './lib' );
|
||||
|
||||
describe( 'validation script', () => {
|
||||
it( 'should pass with valid data', () => {
|
||||
expect( runValidationWithFixtures( 'valid' ) ).to.eql( {
|
||||
exitCode: 0,
|
||||
output: [],
|
||||
} );
|
||||
} );
|
||||
|
||||
it( 'should pass with valid data and incomplete profiles, and count headings', () => {
|
||||
const env = { REPORT_PROFILE_HEADINGS: 'y' };
|
||||
expect( runValidationWithFixtures( 'valid-incomplete', env ) ).to.eql( {
|
||||
exitCode: 0,
|
||||
output: [
|
||||
'Profile headings by count (7 total profiles):',
|
||||
'Company blurb: 7',
|
||||
'Company size: 4',
|
||||
'Remote status: 4',
|
||||
'Region: 4',
|
||||
'Company technologies: 3',
|
||||
'How to apply: 3',
|
||||
'Office locations: 1',
|
||||
],
|
||||
} );
|
||||
} );
|
||||
} );
|
Loading…
Reference in a new issue