Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make company headings consistent #407

Merged
merged 4 commits into from
Apr 16, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions bin/validate.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,22 @@ const contentPath = (
);


/**
* Define the heading names expected in company profiles.
*/
const headingsRequired = [
'Company blurb',
];
const headingsOptional = [
'Company size',
'Remote status',
'Region',
'Company technologies',
'Office locations',
'How to apply',
];


/**
* Build list of Markdown files containing company profiles.
*/
Expand Down Expand Up @@ -126,6 +142,8 @@ $( 'tr' ).each( ( i, tr ) => {
* Scan the individual Markdown files containing the company profiles.
*/

const allProfileHeadings = {};

profileFilenames.forEach( filename => {
function error( msg, ...params ) {
errorCount++;
Expand Down Expand Up @@ -181,8 +199,52 @@ profileFilenames.forEach( filename => {
) {
error( 'No link to company profile from readme' );
}

// Build and validate list of headings contained in this Markdown profile.

const profileHeadings = [];

$( 'h2' ).each( ( i, el ) => {
const headingName = $( el ).html();
profileHeadings.push( headingName );
if (
headingsRequired.indexOf( headingName ) === -1 &&
headingsOptional.indexOf( headingName ) === -1
) {
error(
'Invalid heading name: "%s". Expected one of: %s',
headingName,
JSON.stringify( headingsRequired.concat( headingsOptional ) )
);
}
// Track headings across all profiles
if ( ! allProfileHeadings[ headingName ] ) {
allProfileHeadings[ headingName ] = [];
}
allProfileHeadings[ headingName ].push( filename );
} );

headingsRequired.forEach( headingName => {
if ( profileHeadings.indexOf( headingName ) === -1 ) {
error(
'Required heading "%s" not found.',
headingName
);
}
} );
} );

if ( process.env.REPORT_PROFILE_HEADINGS ) {
console.log();
console.log(
'Profile headings by count (%d total profiles):',
profileFilenames.length
);
Object.keys( allProfileHeadings ).forEach( heading => {
console.log( '%s: %d', heading, allProfileHeadings[ heading ].length )
} );
}

console.log();
console.log(
'%d problem%s detected',
Expand Down
2 changes: 1 addition & 1 deletion company-profiles/10up.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ We have employees all around the world, from across the US to the UK to South Af
* Nginx
* Memcache

## Office Locations
## Office locations

None; or everywhere!

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/17hats.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Worldwide

iOS, React, Knockout, Rails, Perl, HTML, Sql, Ruby, JQuery

## Office Locations
## Office locations

Not known

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/18f.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ U.S. citizens, non-citizens who are nationals of the U.S., or people who have be

Ruby, Python, HTML, CSS, JavaScript

## Office Locations
## Office locations

Federal buildings in San Francisco, Chicago, New York City, and Washington D.C.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/ably.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The bulk of our engineering team is in Europe so we generally prefer candidates
* We make extensive use of a wide array of AWS services
* We host our code in Git

## Office Locations
## Office locations

London, United Kingdom

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/acquia.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Worldwide - Acquia is an international company with office locations around the
- JavaScript
- Ruby

## Office Locations
## Office locations

- Boston, MA, USA (Headquarters)
- Gent, Belgium
Expand Down
2 changes: 1 addition & 1 deletion company-profiles/ad-hoc.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ USA only for the time being: many of our contracts with the US government requir
- HTML
- CSS

## Office Locations
## Office locations

None! We have a small coworking space for our DC team, but otherwise everyone works remotely.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/agflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Main office is located at Geneva, Switzerland. There is one small office in Wroc
* Redis
* React

## Office Locations
## Office locations
[Geneva, CH](https://www.google.ch/maps/place/Boulevard+de+Saint-Georges+72,+1205+Genève/)

## How to apply
Expand Down
2 changes: 1 addition & 1 deletion company-profiles/agilebits.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Worldwide. Right now we have folks distributed throughout North America and Euro

\<Unknown\>

## Office Locations
## Office locations

Toronto, Ontario

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/aha.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Worldwide

Ruby on Rails, React, jQuery

## Office Locations
## Office locations

Worldwide

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/algorithmia.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Worldwide, but we work primarily on US timezones.
- Kubernetes
- Docker

## Office Locations
## Office locations

- Seattle, WA

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/allydvm.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ USA

Ruby and RoR, Javascript, AngularJS, Coffeescript, iOS, Android, MySQL, HTML/CSS, Java and Spring

## Office Locations
## Office locations

\<Unknown\>

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/alphasights.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Our remote engineers work the same hours as our New York and London offices depe
* PostgreSQL
* Git

## Office Locations
## Office locations

Our engineering offices are located in New York City and London. We have other offices in Dubai, Shanghai, Seoul, and San Francisco.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/and-yet.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ We employ several strategies that ensure inclusive and collaborative environment
* Jade
* Stylus

## Office Locations
## Office locations
[Richland, WA](https://www.google.com/maps/place/110+Gage+Blvd,+Richland,+WA+99352)

## How to apply
Expand Down
2 changes: 1 addition & 1 deletion company-profiles/anexus.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Latin America - Anexus is a regional company with offices in Costa Rica but a te
- ReactJS
- Symfony

## Office Locations
## Office locations

- San Jose, Costa Rica (Headquarters)

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/apartment-therapy.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ US-based employees only.

CTO Scott Trudeau wrote a gist about their [stack, product team, and mentions working remotely](https://gist.github.com/sstrudeau/f563dc72739e9e047de5)

## Office Locations
## Office locations

Company office in [NYC - 270 Lafayette St Fl 12 (Prince St.), New York, NY 10012, United States](https://www.google.com/maps/place/Apartment+Therapy/@40.7240504,-73.9965837,20z/data=!4m7!1m4!3m3!1s0x89c27c75f5d73d85:0x4fd9ab773fad77d1!2sProject+Real+Apartment+Treatment,+55+N+Ocean+Ave+%23+2,+Freeport,+NY+11520!3b1!3m1!1s0x0000000000000000:0x9f96cb380f7dbcf7)

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/appstractor.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Worldwide

LAMP

## Office Locations
## Office locations

US, UK, Israel offices

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/art-and-logic.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ We work with an extensive range of languages and technologies.
* C#
* Git

## Office Locations
## Office locations

Headquarters in Pasadena, CA and offices throughout the US.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/artefactual.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ UTC-8 to UTC+2

PHP, Python, JavaScript, git, MySQL, HTML, CSS, Django, Symfony, Ansible, Docker, Jenkins, Nginx, Azure, AWS, Ubuntu, CentOS, RedHat.

## Office Locations
## Office locations

New Westminster, BC.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/articulate.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Worldwide

.NET, C#

## Office Locations
## Office locations

244 5th Avenue, Suite 2960, New York, NY 10001

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/astronomer.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ A good amount of our code is open source on [GitHub](https://github.com/astronom

We publish a variety of technical posts on [our blog](https://www.astronomer.io/blog) and [Medium publication](https://medium.com/the-astronomer-journey/latest).

## Office Locations
## Office locations

Cincinnati, OH

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/auth0.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Also be familiar with:
* JSON Web Tokens
* OAuth, OpenID Connect

## Office Locations
## Office locations

8 office locations

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/automattic.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Worldwide - our team members hail from all over, every continent except Antarcti

WordPress, [JavaScript (Node/React/Redux)](https://ma.tt/2015/11/dance-to-calypso/), PHP, Spark, Kafka, Elasticsearch, Impala/Hive, MySQL, Java, Python

## Office Locations
## Office locations

We no longer have an official physical office.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/axelerant.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Worldwide - Axelerant team members work from home, cafes, or co-working spaces.
* JavaScript
* Ruby

## Office Locations
## Office locations

* Atlanta, United States
* Gurgaon, India
Expand Down
2 changes: 1 addition & 1 deletion company-profiles/balsamiq.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ We currently have employees in the U.S. and in several European countries.

\<Unknown\>

## Office Locations
## Office locations

We have one office in Bologna, Italy. All other employees work from home.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/bandcamp.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Worldwide

unknown

## Office Locations
## Office locations

There is no Bandcamp office. Our team is sprinkled throughout the world.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/bandzoogle.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Worldwide - Bandzoogle is remote-only.

RoR, Ember.js, APIs

## Office Locations
## Office locations

No physical location.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/baremetrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Worldwide.

PHP, jQuery

## Office Locations
## Office locations

None, 100% remote.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/basecamp.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Worldwide

Ruby, Rails, CoffeeScript, Backbone.js, Memcached, MySQL, S3

## Office Locations
## Office locations

While people who work at Basecamp can live and work anywhere they want, about 14 of us work out of our Chicago headquarters.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/big-cartel.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Currently we are only set up for US-based remote employees.

Rails, Ember, JSON API, MySQL, Elasticsearch, Redis, Riak, Redshift

## Office Locations
## Office locations

Salt Lake City, Utah

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/big-wheel-brigade.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ US, currently.

Rails, primarily, with some Wordpress clients.

## Office Locations
## Office locations

Omaha, Nebraska, yo!

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/bitnami.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ We have employees all around the world, with the bulk of our engineering team in
* We host our code in Git
* We have a heavy bias towards deploying our services on Kubernetes

## Office Locations
## Office locations

San Francisco, USA and Seville, Spain.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/bitovi.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ A team of developers (and designers) located around the US, Canada, and Croatia.

JavaScript, HTML, CSS, etc.

## Office Locations
## Office locations

Headquarters in Chicago, USA.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/black-tangent.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Worldwide

Ruby on Rails, ReactJS, Elixir, Phoenix

## Office Locations
## Office locations

There is no official office. Some of us choose to work in co-working space together when they're in the same city.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/britecore.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Currently our Engineers and Staff work in the US and some are spread across the
- Jenkins
- Vue.js, Knockout

## Office Locations
## Office locations

BriteCore's head office is in Springfield, Missouri.

Expand Down
2 changes: 1 addition & 1 deletion company-profiles/buffer.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Buffer employs people worldwide

Redshift, Hadoop, MongoDB JavaScript, PHP, Underscore, Backbone.

## Office Locations
## Office locations

No physical office, recently sold HQ and all employees work remotely.

Expand Down
Loading