├── .eslintrc.js ├── .gitignore ├── .npmignore ├── HN-who-is-hiring-monthly.md ├── LICENSE ├── README.md ├── assets └── api │ ├── processed │ ├── .gitkeep │ ├── 2011-01-combined.json │ ├── 2011-02-combined.json │ ├── 2011-03-combined.json │ ├── 2011-04-combined.json │ ├── 2011-05-combined.json │ ├── 2011-06-combined.json │ ├── 2011-07-combined.json │ ├── 2011-08-combined.json │ ├── 2011-09-combined.json │ ├── 2011-10-combined.json │ ├── 2011-11-combined.json │ ├── 2011-12-combined.json │ ├── 2012-01-combined.json │ ├── 2012-02-combined.json │ ├── 2012-03-combined.json │ ├── 2012-04-combined.json │ ├── 2012-05-combined.json │ ├── 2012-06-combined.json │ ├── 2012-07-combined.json │ ├── 2012-08-combined.json │ ├── 2012-09-combined.json │ ├── 2012-10-combined.json │ ├── 2012-11-combined.json │ ├── 2012-12-combined.json │ ├── 2013-01-combined.json │ ├── 2013-02-combined.json │ ├── 2013-03-combined.json │ ├── 2013-04-combined.json │ ├── 2013-05-combined.json │ ├── 2013-06-combined.json │ ├── 2013-07-combined.json │ ├── 2013-08-combined.json │ ├── 2013-09-combined.json │ ├── 2013-10-combined.json │ ├── 2013-11-combined.json │ ├── 2013-12-combined.json │ ├── 2014-01-combined.json │ ├── 2014-02-combined.json │ ├── 2014-03-combined.json │ ├── 2014-04-combined.json │ ├── 2014-05-combined.json │ ├── 2014-06-combined.json │ ├── 2014-07-combined.json │ ├── 2014-08-combined.json │ ├── 2014-09-combined.json │ ├── 2014-10-combined.json │ ├── 2014-11-combined.json │ ├── 2014-12-combined.json │ ├── 2015-01-combined.json │ ├── 2015-02-combined.json │ ├── 2015-03-combined.json │ ├── 2015-04-combined.json │ ├── 2015-05-combined.json │ ├── 2015-06-combined.json │ ├── 2015-07-combined.json │ ├── 2015-08-combined.json │ ├── 2015-09-combined.json │ ├── 2015-10-combined.json │ ├── 2015-11-combined.json │ ├── 2015-12-combined.json │ ├── 2016-01-combined.json │ ├── 2016-02-combined.json │ ├── 2016-03-combined.json │ ├── 2016-04-combined.json │ ├── 2016-05-combined.json │ ├── 2016-06-combined.json │ ├── 2016-07-combined.json │ ├── 2016-08-combined.json │ ├── 2016-09-combined.json │ ├── 2016-10-combined.json │ ├── 2016-11-combined.json │ ├── 2016-12-combined.json │ ├── 2017-01-combined.json │ ├── 2017-02-combined.json │ ├── 2017-03-combined.json │ ├── 2017-04-combined.json │ ├── 2017-05-combined.json │ ├── 2017-06-combined.json │ ├── 2017-07-combined.json │ ├── 2017-08-combined.json │ ├── 2017-09-combined.json │ ├── 2017-10-combined.json │ ├── 2017-11-combined.json │ ├── 2017-12-combined.json │ ├── 2018-01-combined.json │ ├── 2018-02-combined.json │ ├── 2018-03-combined.json │ ├── 2018-04-combined.json │ ├── 2018-05-combined.json │ ├── 2018-06-combined.json │ ├── 2018-07-combined.json │ ├── 2018-08-combined.json │ ├── 2018-09-combined.json │ ├── 2018-10-combined.json │ ├── 2018-11-combined.json │ ├── 2018-12-combined.json │ ├── 2019-01-combined.json │ ├── 2019-02-combined.json │ ├── 2019-03-combined.json │ ├── 2019-04-combined.json │ ├── 2019-05-combined.json │ ├── 2019-06-combined.json │ ├── 2019-07-combined.json │ ├── 2019-08-combined.json │ └── 2019-09-combined.json │ └── raw │ └── .gitkeep ├── docs └── index.html ├── package-lock.json ├── package.json └── src ├── api ├── create-ascii-chart.js ├── fetchNewlyAddedHTMLs.js ├── index.js └── prepare-data.js ├── create-charts-for-readme.js ├── create-charts.js ├── queries.js └── templates ├── index.ejs ├── line.ejs ├── readme-charts.ejs └── row.ejs /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'env': { 3 | 'browser': true, 4 | 'commonjs': true, 5 | 'es6': true 6 | }, 7 | 'extends': 'standard', 8 | 'globals': { 9 | 'Atomics': 'readonly', 10 | 'SharedArrayBuffer': 'readonly' 11 | }, 12 | 'parserOptions': { 13 | 'ecmaVersion': 2018 14 | }, 15 | 'rules': { 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (https://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # TypeScript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | # next.js build output 61 | .next 62 | 63 | # ignore raw data from api to reduce number of files in git repo 64 | assets/api/raw/**/* 65 | 66 | # ignore system specific files 67 | .DS_Store 68 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | htmls -------------------------------------------------------------------------------- /HN-who-is-hiring-monthly.md: -------------------------------------------------------------------------------- 1 | - 2011-01: https://news.ycombinator.com/item?id=2057704 2 | - 2011-02: https://news.ycombinator.com/item?id=2161360 3 | - 2011-03: https://news.ycombinator.com/item?id=2270790 4 | - 2011-04: https://news.ycombinator.com/item?id=2396027 5 | - 2011-05: https://news.ycombinator.com/item?id=2503204 6 | - 2011-06: https://news.ycombinator.com/item?id=2607052 7 | - 2011-07: https://news.ycombinator.com/item?id=2719028 8 | - 2011-08: https://news.ycombinator.com/item?id=2831646 9 | - 2011-09: https://news.ycombinator.com/item?id=2949787 10 | - 2011-10: https://news.ycombinator.com/item?id=3060221 11 | - 2011-11: https://news.ycombinator.com/item?id=3181796 12 | - 2011-12: https://news.ycombinator.com/item?id=3300290 13 | - 2012-01: https://news.ycombinator.com/item?id=3412900 14 | - 2012-02: https://news.ycombinator.com/item?id=3537881 15 | - 2012-03: https://news.ycombinator.com/item?id=3652041 16 | - 2012-04: https://news.ycombinator.com/item?id=3783657 17 | - 2012-05: https://news.ycombinator.com/item?id=3913997 18 | - 2012-06: https://news.ycombinator.com/item?id=4053076 19 | - 2012-07: https://news.ycombinator.com/item?id=4184755 20 | - 2012-08: https://news.ycombinator.com/item?id=4323597 21 | - 2012-09: https://news.ycombinator.com/item?id=4463689 22 | - 2012-10: https://news.ycombinator.com/item?id=4596375 23 | - 2012-11: https://news.ycombinator.com/item?id=4727241 24 | - 2012-12: https://news.ycombinator.com/item?id=4857714 25 | - 2013-01: https://news.ycombinator.com/item?id=4992617 26 | - 2013-02: https://news.ycombinator.com/item?id=5150834 27 | - 2013-03: https://news.ycombinator.com/item?id=5304169 28 | - 2013-04: https://news.ycombinator.com/item?id=5472746 29 | - 2013-05: https://news.ycombinator.com/item?id=5637663 30 | - 2013-06: https://news.ycombinator.com/item?id=5803764 31 | - 2013-07: https://news.ycombinator.com/item?id=5970187 32 | - 2013-08: https://news.ycombinator.com/item?id=6139927 33 | - 2013-09: https://news.ycombinator.com/item?id=6310234 34 | - 2013-10: https://news.ycombinator.com/item?id=6475879 35 | - 2013-11: https://news.ycombinator.com/item?id=6653437 36 | - 2013-12: https://news.ycombinator.com/item?id=6827554 37 | - 2014-01: https://news.ycombinator.com/item?id=6995020 38 | - 2014-02: https://news.ycombinator.com/item?id=7162197 39 | - 2014-03: https://news.ycombinator.com/item?id=7324236 40 | - 2014-04: https://news.ycombinator.com/item?id=7507765 41 | - 2014-05: https://news.ycombinator.com/item?id=7679431 42 | - 2014-06: https://news.ycombinator.com/item?id=7829042 43 | - 2014-07: https://news.ycombinator.com/item?id=7970366 44 | - 2014-08: https://news.ycombinator.com/item?id=8120070 45 | - 2014-09: https://news.ycombinator.com/item?id=8252715 46 | - 2014-10: https://news.ycombinator.com/item?id=8394339 47 | - 2014-11: https://news.ycombinator.com/item?id=8542892 48 | - 2014-12: https://news.ycombinator.com/item?id=8681040 49 | - 2015-01: https://news.ycombinator.com/item?id=8822808 50 | - 2015-02: https://news.ycombinator.com/item?id=8980047 51 | - 2015-03: https://news.ycombinator.com/item?id=9127232 52 | - 2015-04: https://news.ycombinator.com/item?id=9303396 53 | - 2015-05: https://news.ycombinator.com/item?id=9471287 54 | - 2015-06: https://news.ycombinator.com/item?id=9639001 55 | - 2015-07: https://news.ycombinator.com/item?id=9812245 56 | - 2015-08: https://news.ycombinator.com/item?id=9996333 57 | - 2015-09: https://news.ycombinator.com/item?id=10152809 58 | - 2015-10: https://news.ycombinator.com/item?id=10311580 59 | - 2015-11: https://news.ycombinator.com/item?id=10492086 60 | - 2015-12: https://news.ycombinator.com/item?id=10655740 61 | - 2016-01: https://news.ycombinator.com/item?id=10822019 62 | - 2016-02: https://news.ycombinator.com/item?id=11012044 63 | - 2016-03: https://news.ycombinator.com/item?id=11202954 64 | - 2016-04: https://news.ycombinator.com/item?id=11405239 65 | - 2016-05: https://news.ycombinator.com/item?id=11611867 66 | - 2016-06: https://news.ycombinator.com/item?id=11814828 67 | - 2016-07: https://news.ycombinator.com/item?id=12016568 68 | - 2016-08: https://news.ycombinator.com/item?id=12202865 69 | - 2016-09: https://news.ycombinator.com/item?id=12405698 70 | - 2016-10: https://news.ycombinator.com/item?id=12627852 71 | - 2016-11: https://news.ycombinator.com/item?id=12846216 72 | - 2016-12: https://news.ycombinator.com/item?id=13080280 73 | - 2017-01: https://news.ycombinator.com/item?id=13301832 74 | - 2017-02: https://news.ycombinator.com/item?id=13541679 75 | - 2017-03: https://news.ycombinator.com/item?id=13764728 76 | - 2017-04: https://news.ycombinator.com/item?id=14023198 77 | - 2017-05: https://news.ycombinator.com/item?id=14238005 78 | - 2017-06: https://news.ycombinator.com/item?id=14460777 79 | - 2017-07: https://news.ycombinator.com/item?id=14688684 80 | - 2017-08: https://news.ycombinator.com/item?id=14901313 81 | - 2017-09: https://news.ycombinator.com/item?id=15148885 82 | - 2017-10: https://news.ycombinator.com/item?id=15384262 83 | - 2017-11: https://news.ycombinator.com/item?id=15601729 84 | - 2017-12: https://news.ycombinator.com/item?id=15824597 85 | - 2018-01: https://news.ycombinator.com/item?id=16052538 86 | - 2018-02: https://news.ycombinator.com/item?id=16282819 87 | - 2018-03: https://news.ycombinator.com/item?id=16492994 88 | - 2018-04: https://news.ycombinator.com/item?id=16735011 89 | - 2018-05: https://news.ycombinator.com/item?id=16967543 90 | - 2018-06: https://news.ycombinator.com/item?id=17205865 91 | - 2018-07: https://news.ycombinator.com/item?id=17442187 92 | - 2018-08: https://news.ycombinator.com/item?id=17663077 93 | - 2018-09: https://news.ycombinator.com/item?id=17902901 94 | - 2018-10: https://news.ycombinator.com/item?id=18113144 95 | - 2018-11: https://news.ycombinator.com/item?id=18354503 96 | - 2018-12: https://news.ycombinator.com/item?id=18589702 97 | - 2019-01: https://news.ycombinator.com/item?id=18807017 98 | - 2019-02: https://news.ycombinator.com/item?id=19055166 99 | - 2019-03: https://news.ycombinator.com/item?id=19281834 100 | - 2019-04: https://news.ycombinator.com/item?id=19543940 101 | - 2019-05: https://news.ycombinator.com/item?id=19797594 102 | - 2019-06: https://news.ycombinator.com/item?id=20083795 103 | - 2019-07: https://news.ycombinator.com/item?id=20325925 104 | - 2019-08: https://news.ycombinator.com/item?id=20584311 105 | - 2019-09: https://news.ycombinator.com/item?id=20867123 106 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Tim Qian 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > npm install -g hacker-job-trends 2 | 3 | ## hacker-job-trends 4 | 5 | As we know, an "Ask HN: Who is Hiring?"([example](https://news.ycombinator.com/item?id=17442187)) post will occur at hackernews every month. It is interesting to scan the post because it helps you to get a feeling about what is happening in tec related business. This repo aims to help you keep up with how the tec job requirements/used tools/kind/... evolve. 6 | 7 | ## How 8 | 9 | 1. Get historical "Who is hiring" posts on HackerNews 10 | 2. Analyse the keyword count history 11 | 12 | ## Examples 13 | 14 | 15 | #### vue trends: 16 | ```bash 17 | $ hjt vue + vuejs 18 | 19 | 6.55 ┼ ╭╮ 20 | 6.11 ┤ ╭╮ ╭╮ │╰╮ 21 | 5.68 ┤ ││ ╭╮││ │ │ 22 | 5.24 ┤ ││ ╭╯│││╭╯ ╰╮ ╭╮ 23 | 4.80 ┤ ╭╯│╭╯ ││││ ╰──╯╰╮ 24 | 4.37 ┤ │ ││ ││││ ╰ 25 | 3.93 ┤ ╭╮ ╭─╯ ╰╯ ╰╯││ 26 | 3.49 ┤ ││ ╭╯ ╰╯ 27 | 3.06 ┤ ││ │ 28 | 2.62 ┤ ││ ╭─╮│ 29 | 2.18 ┤ ╭╮ ╭╮ ││╭╯ ╰╯ 30 | 1.75 ┤ ╭╮ │╰╮│╰─╯╰╯ 31 | 1.31 ┤ ╭╮ ││ │ ││ 32 | 0.87 ┼╮ ││ ╭╮ ╭╮ ││ ╭╮ ╭╮ ╭╯ ││ 33 | 0.44 ┤│ │╰╮ │╰╮ ╭╮ ││ ╭╮ ╭─╮ ╭╮ ╭──╮││ ╭╮ ││ ╭─╮│╰─╮╭────╯ ╰╯ 34 | 0.00 ┤╰───╯ ╰──╯ ╰──────╯╰──╯╰────╯╰────╯ ╰─╯╰─╯ ╰╯╰───╯╰──╯╰─╯ ╰╯ ╰╯ 35 | : 36 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 37 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 38 | 39 | ``` 40 | 41 | #### react trends: 42 | ```bash 43 | $ hjt react 44 | 45 | 54.71 ┼ ╭ 46 | 51.07 ┤ │ 47 | 47.42 ┤ ╭─╮ ╭╯ 48 | 43.77 ┤ ╭╮╭─╮ │ ╰╮ ╭╯ 49 | 40.12 ┤ ╭╮ ╭╮│╰╯ │╭╮╭╯ ╰─╯ 50 | 36.48 ┤ ╭╮│╰────╯╰╯ ╰╯╰╯ 51 | 32.83 ┤ ╭╮╭╮│╰╯ 52 | 29.18 ┤ ╭╮ ╭─╯╰╯╰╯ 53 | 25.53 ┤ ╭╮╭───╯╰─╯ 54 | 21.89 ┤ ╭─╯╰╯ 55 | 18.24 ┤ ╭╮╭──╯ 56 | 14.59 ┤ ╭╮ ╭╯╰╯ 57 | 10.94 ┤ ╭─╯╰─╯ 58 | 7.30 ┤ ╭╮╭─╯ 59 | 3.65 ┤ ╭─╮╭────╯╰╯ 60 | 0.00 ┼──────────────────────────────────────╯ ╰╯ 61 | : 62 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 63 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 64 | 65 | ``` 66 | 67 | #### angular trends: 68 | ```bash 69 | $ hjt angular + angularjs 70 | 71 | 69.86 ┼ ╭╮ 72 | 65.20 ┤ ││ 73 | 60.54 ┤ ││ 74 | 55.89 ┤ ││ 75 | 51.23 ┤ ││ ╭╮ 76 | 46.57 ┤ ││ ││ 77 | 41.91 ┤ ││ │╰╮ 78 | 37.26 ┤ │╰╮ │ │ ╭╮ 79 | 32.60 ┤ │ ╰╮ │ │ ╭╯│ 80 | 27.94 ┤ ╭╯ ╰──╮│ ╰──╯ ╰╮ 81 | 23.29 ┤ │ ╰╯ │ ╭─╮ 82 | 18.63 ┤ ╭─╯ ╰──╯ │ ╭╮╭─╮ ╭╮ ╭──╮ 83 | 13.97 ┤ ╭╯ ╰─╯╰╯ ╰──╯╰─╯ ╰─╮╭╮ ╭╮ ╭─╮ ╭╮╭╮ 84 | 9.31 ┤ ╭─╯ ╰╯╰─╯╰──╯ ╰─╯╰╯╰───────╮╭──╮╭──── 85 | 4.66 ┤ ╭─╯ ╰╯ ╰╯ 86 | 0.00 ┼──────────────────────────╯ 87 | : 88 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 89 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 90 | 91 | ``` 92 | 93 | #### javascript trends: 94 | ```bash 95 | $ hjt javascript + js 96 | 97 | 61.17 ┤ ╭╮ 98 | 57.92 ┤ ││ 99 | 54.68 ┤ ││ 100 | 51.43 ┤ ││ 101 | 48.19 ┤ ╭╮ ╭╮ ││ ╭╮ 102 | 44.95 ┤ ││╭─╮ ││ ╭╮│╰╮││ 103 | 41.70 ┤ │││ │ │╰╮ │╰╯ │││ 104 | 38.46 ┤ ╭╮ │╰╯ │ ╭╮│ ╰──╮│ ╰╯╰╮ 105 | 35.21 ┤ ╭╮ ╭╯│ ╭╮╭╮ │ │╭╯││ ╰╯ ╰╮ 106 | 31.97 ┤ ╭╮ ││ │ │╭╯╰╯╰──╯ ╰╯ ╰╯ │ ╭╮╭╮ ╭──╮ 107 | 28.72 ┤ ╭╮││ ╭─╯│╭╯ ╰╯ │╭╯╰╯╰╮╭────╯ │ ╭╮╭╮ 108 | 25.48 ┤ │╰╯│ ╭╯ ╰╯ ╰╯ ╰╯ ╰──╯╰╯│╭────╮ ╭──────╮╭╮╭╮ 109 | 22.23 ┤ ╭──╯ ╰──╯ ╰╯ ╰─╯ ╰╯╰╯│ ╭╮ ╭╮╭╮ ╭╮ 110 | 18.99 ┤╭╮│ ╰──╯╰─╯╰╯╰───╯╰ 111 | 15.74 ┤│╰╯ 112 | 12.50 ┼╯ 113 | : 114 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 115 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 116 | 117 | ``` 118 | 119 | #### nodejs trends: 120 | ```bash 121 | $ hjt nodejs + node.js 122 | 123 | 18.02 ┼ ╭╮ 124 | 16.82 ┤ ││ 125 | 15.62 ┤ ││ 126 | 14.42 ┤ ││ ╭╮ 127 | 13.22 ┤ ╭╮ ││╭╮ ╭╯│ ╭╮ ╭╮ 128 | 12.01 ┤ ││ ╭╮ │╰╯╰╮│ ╰╮ ││ ╭╮ ╭╮╭╮ │╰╮ 129 | 10.81 ┤ ││ │╰╮│ ││ │ │╰╮╭╯│ ╭╮ ╭╮ ╭╮ ╭╯│││ │ │ ╭╮ ╭ 130 | 9.61 ┤ ╭╮ ││ ╭─╯ ││ ╰╯ ╰─╮│ ╰╯ │╭╮ ╭╮╭╯│╭─╯╰╮╭╯│╭╮│ ││╰─╯ ╰╮││ ╭─╮ ╭─╮ ╭╯ 131 | 8.41 ┤ ╭╮ ╭──╮ ╭╮ ╭╮││ ╭─╯│ ╭╮ │ ╰╯ ╰╯ ╰╯│╭─╯╰╯ ╰╯ ╰╯ ╰╯╰╯ ╰╯ ╰╯╰──╯ ╰─╯ ╰╮ │ 132 | 7.21 ┤ ││ ╭─╯ ╰─╮ ││ ╭╯│││╭─╯ ╰─╯│ │ ││ ╰───╯ 133 | 6.01 ┤ │╰─╯ ╰─╯╰─╯ ╰╯╰╯ ╰╮│ ╰╯ 134 | 4.81 ┤ ╭─╯ ││ 135 | 3.60 ┤ ╭──╯ ╰╯ 136 | 2.40 ┤╭╯ 137 | 1.20 ┤│ 138 | 0.00 ┼╯ 139 | : 140 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 141 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 142 | 143 | ``` 144 | 145 | #### remote trends: 146 | ```bash 147 | $ hjt remote - not remote - no remote 148 | 149 | 58.01 ┤ ╭─ 150 | 54.83 ┤ ╭╯ 151 | 51.64 ┤ ╭╮ ╭╯ 152 | 48.45 ┤ ╭╮ │╰╮│ 153 | 45.26 ┤ ╭╯│ ╭╯ ╰╯ 154 | 42.07 ┤ ╭╮│ │ ╭─╮╭╯ 155 | 38.89 ┤ ╭╮ ╭╮╭╯││ ╰─╯ ╰╯ 156 | 35.70 ┤ ╭╮ ╭╮ ╭╮ ╭╮ ╭─╯╰──╯╰╯ ╰╯ 157 | 32.51 ┤ ╭╮ ╭╮╭╮ ││╭╮││ ╭╮╭╯│ ││ │ 158 | 29.32 ┤ ││ ╭╮ ╭─╮│╰╯│ │╰╯││╰╮╭─╯││ │╭╯│╭╯ 159 | 26.13 ┤╭╯│ ╭╮ │╰╮│ ││ │ ╭─╮╭╮ ╭╮╭────╯ ╰╯ ╰╯ ╰╯ ╰╯ ╰╯ 160 | 22.95 ┤│ │╭╮ ╭─╮ ╭╮││ ╭─╮╭╮│ ╰╯ ╰╯ ╰─╯ ╰╯╰╮│╰╯ 161 | 19.76 ┤│ │││ ╭╮ ╭╯ ╰╮ ╭╮╭─╯││╰─╮ ╭╯ ││╰╯ ╰╯ 162 | 16.57 ┼╯ │││ │╰╮ │ ╰─╮│╰╯ ╰╯ ╰─╯ ╰╯ 163 | 13.38 ┤ ││╰──╯ │╭╯ ││ 164 | 10.19 ┤ ╰╯ ╰╯ ╰╯ 165 | : 166 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 167 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 168 | 169 | ``` 170 | 171 | #### aws trends: 172 | ```bash 173 | $ hjt aws 174 | 175 | 30.09 ┼ ╭╮ 176 | 28.08 ┤ ╭╯│ ╭╮ 177 | 26.08 ┤ │ │ ││╭ 178 | 24.07 ┤ ╭╮ ╭─╯ ╰─╯╰╯ 179 | 22.06 ┤ ╭╮ ╭──╮╭╯╰─╮ ╭╯ 180 | 20.06 ┤ ╭╮ ╭─╮╭╮ ╭─╯╰╮╭╯ ╰╯ ╰─╯ 181 | 18.05 ┤ ╭╮ ╭╮││ │ ││╰─╮ │ ╰╯ 182 | 16.05 ┤ ╭╮ ││ ╭╮ ╭╮ ╭╮ ╭╮│╰╯╰─╯ ╰╯ ╰─╯ 183 | 14.04 ┤ ││ ╭╮╭──╯╰─╮╭─╯╰──╯╰╮╭╯╰─╯╰╯ 184 | 12.04 ┼╮ ╭╮ ╭╮ ││ ╭╮ │╰╯ ╰╯ ╰╯ 185 | 10.03 ┤│ ╭╮ ││ ││ ╭╮ ╭╯│╭╮ │╰─╯ 186 | 8.02 ┤│ │╰╮ ││ ││ ││ ╭╮ ╭╮ ╭╮ ╭╯ ╰╯╰─╮╭──╮│ 187 | 6.02 ┤│ ╭╯ │ │╰╮│╰─╯╰╮│╰╮│╰─╯╰─╯ ╰╯ ╰╯ 188 | 4.01 ┤│ │ ╰─╯ ╰╯ ╰╯ ╰╯ 189 | 2.01 ┤╰╮╭╯ 190 | 0.00 ┤ ╰╯ 191 | : 192 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 193 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 194 | 195 | ``` 196 | 197 | #### blockchain trends: 198 | ```bash 199 | $ hjt ethereum + blockchain + bitcoin + solidity + smart contract 200 | 201 | 15.33 ┼ ╭╮ 202 | 14.30 ┤ ││ 203 | 13.28 ┤ ╭─╮ ╭╯╰╮ 204 | 12.26 ┤ │ │ │ │ 205 | 11.24 ┤ ╭╮│ ╰╮╭╮│ │ ╭╮ 206 | 10.22 ┤ │││ ╰╯╰╯ ╰─╯│ 207 | 9.20 ┤ │╰╯ ╰╮ ╭╮ ╭ 208 | 8.17 ┤ │ │ ││ ╭─╮│ 209 | 7.15 ┤ │ │╭─╯╰╮│ ╰╯ 210 | 6.13 ┤ │ ││ ╰╯ 211 | 5.11 ┤ ╭╮ │ ╰╯ 212 | 4.09 ┤ ╭╮ ╭─╮ ╭╯│ ╭─╮│ 213 | 3.07 ┤ ╭╮ │╰─╮ │ │╭╯ ╰─╯ ││ 214 | 2.04 ┤ ╭╮ │╰╮╭╯ │ ╭─╮╭╮ ╭╮ ╭╮ │ ╰╯ ││ 215 | 1.02 ┤ ╭╮ ╭─╯╰╮ ╭─╯ ╰╯ ╰──╮╭╯ ╰╯╰───╯╰╮╭╮╭─╯╰─╯ ╰╯ 216 | 0.00 ┼───────────────────╯╰────────╯ ╰──╯ ╰╯ ╰╯╰╯ 217 | : 218 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 219 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 220 | 221 | ``` 222 | 223 | #### java trends: 224 | ```bash 225 | $ hjt java - javascript 226 | 227 | 33.33 ┤ ╭╮ 228 | 31.79 ┤ ││ 229 | 30.24 ┤ ││ ╭╮ 230 | 28.69 ┤ ││ ││ 231 | 27.14 ┤ ││ ││ 232 | 25.60 ┤ ││ ││ 233 | 24.05 ┤ ││ ││ ╭╮ 234 | 22.50 ┤ ││ ││ ││ ╭╮ ╭╮ ╭╮ ╭╮ ╭╮ 235 | 20.96 ┤ ││ ││╭╮ ││ ││╭╮╭╮││ ││ ││ ││ 236 | 19.41 ┤ ││ ╭╮││││ ││ ││││││││ ││ ││ ╭──╯│ 237 | 17.86 ┤ ││ ╭╮ ││││││ ╭╮ ││ ╭╯││╰╯│││ ││ ╭╮││ │ │╭╮╭╮ ╭╮ ╭╮ 238 | 16.32 ┤ ││╭╮ ││╭╯│││││ ││ ││╭╯ ╰╯ ││╰╮│╰╮││││╭╯ ││││╰╮ ││ ╭╮ ││ ╭╮ ╭─╮ 239 | 14.77 ┤ ││││ │││ ╰╯││╰╮│╰─╯││ ││ ││ ││││╰╯ ╰╯╰╯ │╭╯│╭╮ ││ ╭╮╭╮ ╭╮ ╭─╯│╭╮╭╯╰─╯ │╭─────╮ ╭───╮ ╭╮ 240 | 13.22 ┼╮│╰╯│╭─╯╰╯ ╰╯ ││ ╰╯ ╰╯ ╰╯ ││╰╯ ╰╯ ││╰─╯╰╮ │╰╯╰╮│╰──╯ ╰╯╰╯ ╰╯ ╰╮╭──╯ ╰╮╭╯│╭ 241 | 11.67 ┤╰╯ ││ ╰╯ ││ ╰╯ │╭╯ ╰╯ ╰╯ ╰╯ ╰╯ 242 | 10.13 ┤ ╰╯ ╰╯ ╰╯ 243 | : 244 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 245 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 246 | 247 | ``` 248 | 249 | #### python trends: 250 | ```bash 251 | $ hjt python 252 | 253 | 46.39 ┤ ╭╮ 254 | 43.74 ┤ ││ 255 | 41.10 ┤ ╭╮││ ╭╮ 256 | 38.45 ┤ ││││ ││ 257 | 35.80 ┤ ╭╮ ╭╮ │╰╯╰─╯╰─╮ ╭╮ 258 | 33.15 ┤ ╭╮ ╭╮╭╮ ││ │╰╮ │ │ ╭──╮ ╭╮╭───╮ ╭╯│ 259 | 30.50 ┤ ╭╮ ╭╮││╭╯╰╯│ ╭╮││╭──╮│ ╰─╮│ │ ╭╮ ╭╮ ╭─╮│ ╰────╯││ ╰╮╭─╯ ╰───── 260 | 27.85 ┤ ││ ╭╮╭╯││││ ╰╮╭╮│╰╯││ ╰╯ ╰╯ ╰╮╭─╮╭╯╰╮ ╭╮ ╭──╮╭╯╰───╯ ││ ╰╯ ╰╯ 261 | 25.21 ┤ ││ ╭╮╭╯││ ╰╯╰╯ ││╰╯ ││ ╰╯ ╰╯ │╭╯╰╮╭──╯ ╰╯ ╰╯ 262 | 22.56 ┼╮ ╭╮ ││ │││ ││ ││ ╰╯ ╰╯ ╰╯ 263 | 19.91 ┤│ │╰╮╭╮││ │││ ╰╯ ╰╯ 264 | 17.26 ┤│ │ ││││╰╮│││ 265 | 14.61 ┤╰╮│ ╰╯╰╯ ╰╯╰╯ 266 | 11.96 ┤ ││ 267 | 9.32 ┤ ││ 268 | 6.67 ┤ ╰╯ 269 | : 270 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 271 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 272 | 273 | ``` 274 | 275 | #### golang trends: 276 | ```bash 277 | $ hjt golang 278 | 279 | 6.10 ┼ ╭╮ 280 | 5.69 ┤ ╭╮ ╭╮ ╭╮│╰╮ ╭╮ 281 | 5.28 ┤ ││╭╮ ││ │││ ╰╮╭╯╰ 282 | 4.88 ┤ ╭╮ ││││ │╰──╯││ ╰╯ 283 | 4.47 ┤ ││ ╭╮ ╭╮ ╭╯│││╭╯ ╰╯ 284 | 4.07 ┤ ╭╮ ││╭╯│╭─╮ ╭╮ ╭╮││ │ ││││ 285 | 3.66 ┤ ││ ╭╯││ ╰╯ │ ╭╮ │╰╮ ││││ │ ╰╯╰╯ 286 | 3.25 ┤ ││ │ ╰╯ │ ││╭╯ ╰╮│││╰╮│ 287 | 2.85 ┤ ╭╮│╰╮ ╭╯ ╰─╯╰╯ ││╰╯ ╰╯ 288 | 2.44 ┤ ╭─╮ │╰╯ │╭╯ ╰╯ 289 | 2.03 ┤ │ │ │ ││ 290 | 1.63 ┤ │ ╰╮╭╮ ╭╮ ╭╮ ╭╮╭╯ ╰╯ 291 | 1.22 ┤ ╭╮ │ ╰╯│╭╮╭╮││ │╰─╯││ 292 | 0.81 ┤ │╰╮ │ ╰╯╰╯╰╯│╭╯ ╰╯ 293 | 0.41 ┤ ╭╮ ╭╮│ │ ╭╯ ╰╯ 294 | 0.00 ┼───────────────╯╰─────────────╯╰╯ ╰─╯ 295 | : 296 | ┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼──────────┼┼── 297 | 2011-01 2012-01 2013-01 2014-01 2015-01 2016-01 2017-01 2018-01 2019-01 2020-01 298 | 299 | ``` 300 | 301 | ## npm package 302 | 303 | ```bash 304 | # install package (node version > 10.0.0) 305 | npm install -g hacker-job-trends 306 | 307 | # see match count history on hackernews who is hiring post 308 | hjt 'python' 309 | 310 | # match multiple keyword and a count them together 311 | hjt ' js ' + 'javascript' 312 | 313 | # match multiple keywords but you want to do a subtraction operation 314 | hjt 'remote' - 'no remote' - 'not remote' 315 | 316 | # If you want the trends with count of keywords related to number of posts, add the option `--relative` 317 | hjt react --relative 318 | ``` 319 | 320 | ## Contributing 321 | 322 | ### 1. Add new useful trend graph 323 | 324 | By installing the npm module and generating new interesting chart and open a PR for the `README.md` 325 | 326 | ### 2. Add new who is hiring link 327 | 328 | 1. Fork the repo and `npm install` 329 | 2. Add new "who is hiring" post url on [HN-who-is-hiring-monthly.md](./HN-who-is-hiring-monthly.md) 330 | 3. `npm run updateContents` and make a PR 331 | 332 | ## Best search pattern for searching monthly "who is hiring" on hackernews 333 | 334 | ```bash 335 | # Google: 336 | Ask HN: Who is Hiring? "November 2011" site:https://news.ycombinator.com/ 337 | ``` 338 | 339 | > [Donate with bitcoin](https://getcryptoo.github.io/) 340 | -------------------------------------------------------------------------------- /assets/api/processed/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timqian/hacker-job-trends/d14b18cc7fd5c867d84552652f754a32d5ea7f5a/assets/api/processed/.gitkeep -------------------------------------------------------------------------------- /assets/api/processed/2011-01-combined.json: -------------------------------------------------------------------------------- 1 | {"comments":[{"by":"lkrubner","id":2057833,"kids":[2057848,2058208,2057915,2057838],"parent":2057704,"text":"In New York City there are a lot of jobs. I went to 3 job interviews and got offers from 2. All 3 had tests of my programming skill, though the 3rd was ruthless about minor syntax errors. For instance, the guy talking to me asked me how to find all of the Apache servers running on a server. He just wanted the number. I typed:

ps aux | grep apache | wc -l

but this wrongly included the command I was typing. We were working on their dev server and I was typing the commands into the terminal. I got back 12 when the real answer was 11. He eventually showed me what I should have typed:

ps aux | grep apache | grep -v grep | wc -l

The grep -v screens out the line I had just typed which had \"grep apache\" in it. Of course, there are other ways to do this, but this was the first thing I thought of. Of my error, I thought that was somewhat minor, but this guy had recently been hired to clean up a sloppy programming department, so he was looking for programmers who were flawless.

The other 2 tests at the other 2 jobs covered the usual questions (write a JOIN statement, write a sub-query, what is the difference between GET and POST?). On one of the interviews, 2 programmers came in to talk to me and they gave me a short PHP script which was working but which was badly written. They asked me how I would re-write it. Easy enough.

My sense is there is a lot of hiring going on in New York City. Possibly not enough local talent to fill all the jobs, but the businesses are here for other reasons (other than programming talent) so I think eventually programming talent from elsewhere will get drawn to New York City. There are some cities in the USA that are in deep economic decline, and will probably remain so for the next 5 years, so perhaps some of the programmers from those cities will migrate to New York City.","time":1293901121,"type":"comment"},{"by":"tptacek","id":2058365,"kids":[2058559,2058866,2060163,2058989,2058471],"parent":2057704,"text":"Chicago (or remote)

Matasano Security

LEAD SOFTWARE DEVELOPER

YOU BRING: experience in a key role shipping a web-based product, systems programming chops, comfort with performant network code. Interest, but not not necessarily expertise, in web security.

WE BRING: deep and commanding mastery of software security, a fun product†, a customer list, a small team with a minimal viable working offering, a profitable and growing company with a 5 year track record and nice offices†† in NYC, Chicago, and SFBA.

web scale, big(ish) data, search, security; we're a Rails/Ruby/EventMachine shop. We don't care if you already know Ruby.

Full-time in-house non-consulting dev. Health, dental, 401k, commute, &c.

HN is one of our best hiring vectors (ask 'yan, 'wglb, and 'daeken). We hire two roles: vulnerability researchers and software developers. HN has killed for security researchers. Not so much for developers. Ironic!

Just mail me: tqbf at matasano dot com.

††here's Chicago, on top of one of the coolest buildings in the city, with Intelligentsia Coffee and a serviceable bar on the first floor: http://img228.imageshack.us/g/img0226yl.jpg/ ","time":1293914430,"type":"comment"},{"by":"jasonfried","id":2057885,"parent":2057704,"text":"37signals is hiring two Rails programmers:\nhttp://jobs.37signals.com/jobs/7905

Chicago preferred, but we hire the best we can find no matter where you live.","time":1293902741,"type":"comment"},{"by":"jeffbarr","id":2057871,"kids":[2058066,2059999,2058071,2058993],"parent":2057704,"text":"The Amazon Web Services team is hiring for on-site positions in Seattle (WA), Luxembourg, Tokyo, Herndon (VA), and Cape Town (South Africa), Dublin (Ireland), and Slough (UK). We don't offer remote work, but some of the positions do include relocation assistance.

I've scraped our official job site and used the data to create a tag cloud of the jobs at http://awsmedia.s3.amazonaws.com/jobs/all_aws_jobs.html . I'm still working on the styling.

The official AWS job site is at Our official job site is http://aws.amazon.com/jobs .

There are too many types of jobs to list here. We need developers, business developers, managers, solutions architects, trainers, and technical support.","time":1293902255,"type":"comment"},{"by":"akalsey","id":2057952,"parent":2057704,"text":"We're hiring Java wizards to work on the core of Tropo. http://tropo.com/

Bay Area preferred, but we'd also love to talk to you if you're located near any other large US city or technology hub (Seattle, Boulder, Austin, Chicago, Boston, NYC, Philly, etc). We're already a distributed team (China, London, Orlando, Philly, Phoenix, and Bay Area) so we're adept at working remotely.

Job description at http://www.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?...

We're also looking for a NOC engineer in Las Vegas. http://www.careerbuilder.com/JobSeeker/Jobs/JobDetails.aspx?...","time":1293904506,"type":"comment"},{"by":"xlpz","id":2057846,"kids":[2057853],"parent":2057704,"text":"We are looking for good hackers with experience in free software. We work on WebKit (maintainers of the GTK+ port), networking, multimedia, javascript, etc. Working remotely is perfectly possible.

The company is Igalia (http://www.igalia.com), and we have a sort of cooperative structure (no bosses, all major decisions taken democratically).

If it sounds like your kind of thing, the email is in my profile.","time":1293901511,"type":"comment"},{"by":"ccheever","id":2059557,"parent":2057704,"text":"Quora is hiring in Palo Alto, CA.

Quora is a question and answer site focused on really high quality, authoritative content. The service has a lot of traction and is growing very quickly, especially recently.\nWe are hiring software engineers and product designers.

http://www.quora.com/about/jobs

For software engineers, we are mostly looking for generalists--who will work on scaling the service as we grow, including work on our real time web framework LiveNode, building and improving rich web application itself, and building new tools and features.

Product designers design and implement the interactions and visuals for the site.

We are also planning on building out our mobile experience more, so anyone interested in iOS or Android should apply.

The company is well funded by Benchmark.

E-mail jobs@quora.com or if you want to get in touch with me directly ccheever@quora.com","time":1293949394,"type":"comment"},{"by":"ahuibers","id":2058801,"kids":[2062492],"parent":2057704,"text":"Bump is hiring in Mountain View, CA (soon maybe SF/SOMA as well), mostly local.

Our immediate needs are: Operations, HTML5 development, Android development, Design, R&D including someone who knows both CS and prob/stats.

WHY SHOULD YOU WORK AT BUMP?\nWe have enormous traction (25M), a breathtaking pipeline, and a clean codebase. We may already have and are definitely building one of the best mobile shops in the bay area. Our senior founder (me) has 10 years of startup experience and is an engineer obsessed with making Bump the best place for engineers and designers to produce great things: this includes compelling work in a professional yet very informal environment, above-market pay/equity/benefits, minimizing meetings, high quality food and special events, company-wide carte blanche Amazon prime account, surf team. We are 15 people growing to 30 and now is a great time to join us.

http://bu.mp/jobs, mail hackernews@ourdomain to get special treatment. Tech is iOS/ObjC, Android, Python, Scala, C, Haskell, Redis, MongoDB. Funding is YC, Sequoia. We are near Caltrain (Castro).","time":1293924427,"type":"comment"},{"by":"bretpiatt","id":2057954,"kids":[2058236],"parent":2057704,"text":"San Francisco Bay Area, CA / Austin, TX / San Antonio, TX

I'm hiring devops integration consultants that want to work on OpenStack helping enterprises and service providers deploy solutions based on it (it is posted as only San Antonio on the job listing but all 3 locations are great, Bay Area would actually be ideal).

http://jobs.rackspace.com/job/San-Antonio-Linux-Cloud-Integr...

Rackspace is also hiring for many positions: http://jobs.rackspace.com/content/map/","time":1293904552,"type":"comment"},{"by":"x5315","id":2059011,"parent":2057704,"text":"I'm surprised nobody's mentioned this.

Twitter is hiring in San Francisco. I just started there.

Here's a list of the positions available: http://twitter.com/positions.html.

I wasn't originally going to post this, but i saw this http://mashable.com/2011/01/01/twitter-jobs-2/ and thought it might be worth adding.","time":1293929939,"type":"comment"},{"by":"stanleydrew","id":2057887,"kids":[2088299,2059029],"parent":2057704,"text":"Twilio is hiring. We've got a lot of interesting problems to solve and are looking for senior/junior/intern software engineers. We use php, python, java, nginx, twisted, mysql, redis, appengine, and a bunch of other stuff I'm forgetting. Check out http://www.twilio.com/jobs or email me at andrew@twilio.com.","time":1293902788,"type":"comment"},{"by":"lethain","id":2058461,"parent":2057704,"text":"Digg is hiring on-site in San Francisco (Potrero hill) for frontend and backend developers, with a preference for people who work all the way up and down the stack. We're willing to take chances on newer developers who seem like a good fit, and also want veteran engineers who will to come in and challenge our assumptions and shake things up.

We're working at a scale where performance and data storage decisions start to matter. We're working with a modern stack (Redis, Python, PHP, RabbitMQ, gevent, Hive, etc), and the team we've put together is truly fantastic. 2010 was a topsy turvy year for us, but setbacks build character, and there are many reasons to be excited about where we are going. :)

Job specs are at jobs.digg.com , and feel free to send questions/resumes my way at wlarson@digg.com . If you're interested but concerned about the press or trajectory of Digg, definitely send an email my way, and I will send some of my optimism your way!","time":1293916383,"type":"comment"},{"by":"pchristensen","id":2058512,"parent":2057704,"text":"Groupon (Chicago or Palo Alto) wants to hire 25 devs in January 2011.

Great developers. We develop in Rails but we'd rather hire a smart, motivated, skilled developer and teach them Rails than hire any Rails dev and hope they turn out to be awesome. Lots of problems to solve in data mining, personalization, scaling, business support tools, etc. My first month here I released code supported millions of dollars of deals.

Good coding practices, weekly releases, code reviews, pair programming as needed, MacBook Pros + Cinema monitor for all devs, etc. Full benefits, real (not startup-sized) salaries.

Contact peterc@groupon.com with any questions and I can connect you to the right people.","time":1293917504,"type":"comment"},{"by":"jobsatraptr","id":2057989,"parent":2057704,"text":"Location: Mountain View, CA (a couple blocks from 101)

Remote: Sorry, no remote work

Raptr is hiring for frontend web, backend web, and desktop client application software engineer positions.

http://raptr.com/

We help people get more out of their (video) games. (Finding games, tracking playtime & achievements across multiple platforms, etc.)

We're looking for folks with a solid CS background, and a good top to bottom understanding of large scale web applications.

Backend web positions work on scaling, data, and providing apis to the frontend team (80% PHP, some Python, a tiny bit of legacy Perl).\nFrontend web team writes html, javascript, and view layer php code using backend apis.\nClient Application team writes a python + QT application for chat + friends + gameplay tracking.

Take a look at the job descriptions at http://raptr.com/info/jobs, and email me (chris-jobs@raptr.com) with resume for quick consideration if you're interested.","time":1293905855,"type":"comment"},{"by":"kristoffer","id":2059844,"kids":[2098785,2089257,2089255],"parent":2057704,"text":"Gothenburg, Sweden (I wonder what hitrate that will get on HN?)

At Aeroflex Gaisler we are looking for a talented embedded hacker that will create software for our system-on-chips based on our own LEON (SPARC32) processor. Previous experience with real time operating systems (e.g. VxWorks, RTEMS), device drivers, and other low level hacking is necessary.

We are also looking for someone interested in developing simulators for our systems. Computer architecture and C/C++ skills needed. Qt a plus.

Toolchain wizardry (GCC, Clang/LLVM) is always a bonus!

Drop me a line at $HNusername@gaisler.com if above sounds interesting.","time":1293964866,"type":"comment"},{"by":"tocomment","id":2057709,"parent":2057704,"text":"Gaithersburg, MD - A payment processing software company I used to work for is hiring an internal applications developer. You'd be working with Python, SQL Server, IIS and other technologies to automate internal processes.

They'd prefer someone local but working remotely might be ok.

Email me (in profile)","time":1293895010,"type":"comment"},{"by":"dlo","id":2058699,"parent":2057704,"text":"Do you hack on a programming language after work? Do you read Lambda the Ultimate religiously? This job opening will appeal to the many programming languages enthusiasts here on Hacker News, particularly to the subset that has an accompanying interest in secure code.

Fortify Sofware has an opening on its static analysis team. Our products help companies write secure code. Please email me at dlo@fortify.com to make inquiries.

We are based in San Mateo. But we will consider outstanding remote workers.","time":1293922215,"type":"comment"},{"by":"coffeemug","id":2058386,"parent":2057704,"text":"Mountain View, CA. RethinkDB (http://www.rethinkdb.com/jobs).

Hard systems problems. Fun people. Good pay. A chance to build something meaningful and own a significant chunk of the company. Tired of rails-based clones? Join us, together we will rule the [database] universe.

This is everything we stand for: http://news.ycombinator.com/item?id=1747713","time":1293914974,"type":"comment"},{"by":"troels","id":2057923,"kids":[2057948],"parent":2057704,"text":"Copenhagen, Denmark. Remote not possible and we can't help with relocation.

I've just been hired as CTO for a well-funded startup, Greenwire. We recycle used consumer electronics (Primarily mobile phones) and send them for refurbishment and resale.

I'm looking for a developer to help me build the IT infrastructure. We'll be working on LAMP technology, probably PHP.

Have a read at http://greenwiregroup.com/","time":1293903903,"type":"comment"},{"by":"nigelk","id":2058389,"parent":2057704,"text":"Puppet Labs is trying to rock the DevOps/Sysadmin world with our model-driven approach to config management.

We're based in Portland, OR, and aren't looking for remote workers as yet.

We're looking for both Core Developers and Pro Services Engineers, and no matter what, you'll be working with open source software and a highly engaged user community, as well as on a project that is included in most of the major *nix distributions in one way or another.

Puppet itself is written entirely in Ruby, so strong experience in Ruby is great, but experience in an equivalently flexible language is fine too.

We've recently moved into our new offices:\nhttp://twitpic.com/3ckay1\nhttp://twitpic.com/3cksg3\n(things are more organized than that now :)

Portland is freaking awesome.

I moved up here recently after working for Google in the Bay Area, and I couldn't be happier. Cheap rent, amazing food and beer, huge bike culture and a city full of incredibly friendly and nice people.

http://www.puppetlabs.com/company/jobs/","time":1293915009,"type":"comment"},{"by":"bkrausz","id":2058604,"parent":2057704,"text":"Mountain View, CA

GazeHawk (YC S10)

Web Engineer, second hire

Full description at http://gazehawk.com/jobs/

Long story short: we do cool things with Javascript!","time":1293920077,"type":"comment"},{"by":"donohoe","id":2058100,"parent":2057704,"text":"The New York Times is looking for a Snr Software Engineer and sys admin in NYC

Follow this link and choose 'Production' for Major Department:\nhttp://nyti.ms/webjobs

Email me if you apply and I can help ensure your resume gets seen directly or answer questions you might have.

Not advertised there are Web Developer roles (CSS/HTML/JS/PHP/etc) - email me (my HN username @ nytimes.com)","time":1293908650,"type":"comment"},{"by":"shaver","id":2058685,"kids":[2058862,2073491,2058746,2059740],"parent":2057704,"text":"tl;dr: Mozilla is hiring, and we have many different kinds of positions open. Main offices are in Mountain View, Toronto, Auckland, Paris; remote work very much a possibility, esp for people with experience doing it. I know most about engineering, but the fullish list is off http://www.mozilla.com/en-US/careers

Platform engineers: the native-code guts of Firefox, you could work on things ranging from network protocols to scripting performance, 3D graphics to parallelism, performance tuning to debugging and instrumentation. And you get to deliver new web capabilities to about half a billion people. Want to make contentEditable not suck? Want to fix the CSS layout model so people don't miss tables? Want to make Flash and Silverlight sweat more bullets? Us too.

Firefox engineers: 2011 is going to be a very exciting year for Firefox, and we have lots of ambitious work planned. There is lots systems work as we move to a multi-process model, as well as lots of \"app logic\" and more traditional front-end stuff. Client-side web skills map well, and we want to make them map even better; you can help with that too.

Web developer tools: we're going to be significantly increasing our investment in developer tools, to improve the web development experience dramatically. Package up the complexities of the web platform and make it grokkable to everyone from a grade-schooler to jeresig.

Engineering management: we need more people who know how to make developers successful and satisfied, and get joy out of doing it. Our engineering organization spans the globe, has a scope as broad as the web itself, and competes against the biggest software companies in the world.

Developer infrastructure: we run a large software operation on open source tools, and want to make everything from crash reporting to bugzilla to mercurial to the build system work better. Take the hard information problems of software development, make web apps and other tools to help understand and solve them. If you have partially automated your breakfast routine, and want to play with some pretty large-scale data, this could be a lot of fun.

Security: program management and penetration testing both. Your purview is security at the full breadth of the web.

Web development, apps big and small: top-25 web properties (without ads), software update systems for 420M+ users, demos for new web technologies, crash analytics systems backed by dozens of Hadoop nodes.

Mozilla is a non-profit organization chartered to improve the web. We pay competitive salaries, have great benefits, and work in the open. Wake up every morning glad you get to do the right thing!","time":1293921898,"type":"comment"},{"by":"lovitt","id":2058354,"parent":2057704,"text":"SB Nation is a media/technology startup in Washington, DC. We're hiring Ruby developers and visual designers (local preferred, remote considered):

http://www.sbnation.com/jobs/developer

http://www.sbnation.com/jobs/designer

We're a network of 290+ sports news sites & communities. As newspapers are shutting down their sports sections, we're quietly reinventing the media model with profitable, high-quality, innovative coverage by and for fans. Our investors include Accel Partners, Allen & Company, Comcast Interactive Capital, and Khosla Ventures. We get around 16 million unique visitors every month.

Our small product team develops the custom publishing and community platform (built on Rails) that powers the sites. The interesting problems we face range from editorial analytics, to social distribution, to scaling the system to handle our rapid growth.

Here are some of the humans you'd be working with: http://www.flickr.com/photos/mlovitt/4507489423/in/set-72157...

And some recent press:

* Why sports is driving innovation in journalism: http://markcoddington.com/2010/10/08/why-sports-has-taken-th...

* NY Times profile: http://www.nytimes.com/2010/06/07/business/media/07fans.html

* Harvard's Nieman Journalism Lab: http://www.niemanlab.org/2010/06/sb-nation-ceo-on-how-were-f...","time":1293914165,"type":"comment"},{"by":"tkiley","id":2058026,"kids":[2061859],"parent":2057704,"text":"InQuickER (YC W08 reject ;-]) is hiring on Vancouver Island, British Columbia (Parksville/Nanaimo area, onsite preferred but not required).

We are bootstrapped, profitable, and proud by 37signals' definition. Today we are an 8-person team, and we're looking to add another senior ruby/rails developer and a user acquisition engineer.

Contact tyler@inquicker.com.","time":1293906809,"type":"comment"},{"by":"doorty","id":2057764,"kids":[2057914,2057814],"parent":2057704,"text":"I would be interested to hear from YC companies (or companies at SF incubators) that are looking for tech co-founders.","time":1293897744,"type":"comment"},{"by":"amduser29","id":2058462,"parent":2057704,"text":"San Francisco

You: First and foremost, a talented hacker. Secondly, PHP/MySQL experience or mobile experience.

Us: Life360. We are turning mobile phones into the ultimate family safety devices.

Contact: alex@life360.com

Cheers.","time":1293916396,"type":"comment"},{"by":"c4urself","id":2057967,"parent":2057704,"text":"Changer is small and growing company and is hiring in Leidschendam, Netherlands. Contact us at http://www.changer.nl. We're looking for someone who loves building web applications. We use Python/Django and .NET/MVC.","time":1293905078,"type":"comment"},{"by":"timr","id":2058705,"parent":2057704,"text":"Yelp is hiring software engineers, product managers and designers right now, along with lots of other kinds of jobs:

http://www.yelp.com/careers

Or email me (my HN login at yelp.com), particularly if you're interested in search and data mining.","time":1293922310,"type":"comment"},{"by":"aaronkaplan","id":2062971,"parent":2057704,"text":"The work week is just starting on the east coast of the US and this has already dropped to 123rd place. Maybe it wasn't such a good idea to post it over the weekend, particularly a holiday weekend.

On the other hand, it got more posts than last month's, so maybe I'm wrong.","time":1294059194,"type":"comment"},{"by":"hshah","id":2058027,"kids":[2058334],"parent":2057704,"text":"We're always looking for people to join our team at KISSmetrics...

http://www.kissmetrics.com/jobs","time":1293906839,"type":"comment"},{"by":"dogas","id":2057999,"parent":2057704,"text":"PipelineDeals (http://www.pipelinedeals.com) is looking for a full-time senior sysadmin to maintain our production stack, hosted on amazon ec2.

If load balancing, Mysql clustering, maintaining dozens of servers, working with a great group of smart guys, and having an endless supply of fun and interesting projects to work on sounds like your cup of tea, drop me a line.

grant@pipelinedealsco.com

PipelineDeals is 5 years old, bootstrapped, quite profitable, and steadily growing. We are based in Seattle and Philadelphia. Remote applicants no problem!","time":1293906090,"type":"comment"},{"by":"NateLawson","id":2059158,"parent":2057704,"text":"Root Labs

SF Bay Area

Software developer

We're building a system software product with a web frontend. Security experience not necessary, but deep understanding of scalability, compilers, algorithms, databases, etc. is. Built from components including Python/C/Ruby/Redis.

Instead of a job posting, we've got a description of the types of projects we do in addition to developing this product to give you a flavor for our office. (It also has a link to the job description at the end).

http://rdist.root.org/2009/10/23/just-another-day-at-the-off...

Email me: nate / rootlabs.com

Thanks.","time":1293934070,"type":"comment"},{"by":"intridea","id":2064457,"parent":2057704,"text":"Intridea is looking for someone to run one of our flagship products. More details here http://news.ycombinator.com/item?id=2064402","time":1294084855,"type":"comment"},{"by":"DanBlake","id":2058472,"parent":2057704,"text":"NYC - Tinychat is looking for a hardcore server admin. We use nginx, apache, php, mysql and other linux junk. \nThis would be a senior position, so expertise is required.

jobs@tinychat.com - pay/equity based on experience.","time":1293916590,"type":"comment"},{"by":"sx","id":2057835,"parent":2057704,"text":"Pattern Insight is hiring in Mountain View CA. We are looking for software engineers, QA engineers and tech sales:

http://patterninsight.com/about/careers.php

We are building search products for semi-structured data.

We are cash flow positive and growing fast. Our customers are some of the biggest tech companies in the world. That said, we are still early and looking for people that want to be part of the core team and shape our future.

Contact us at: jobs@patterninsight.com","time":1293901304,"type":"comment"},{"by":"mikeytown2","id":2058104,"parent":2057704,"text":"Datasphere is hiring php, java, .net, and front end hackers. We are an ignition backed company.

https://datasphere-openhire.silkroad.com/epostings/index.cfm...

We are headquartered in Bellevue, Washington and led by a team of Internet veterans with backgrounds from Amazon.com, IMDb, Microsoft, RealNetworks, AltaVista, Trendwest and other leading companies.","time":1293908794,"type":"comment"},{"by":"js2","id":2058010,"parent":2057704,"text":"RockMelt is hiring a variety of positions - http://www.rockmelt.com/jobs.html

Mountain View, CA preferred. jay@rockmelt.com","time":1293906415,"type":"comment"},{"by":"daveambrose","id":2057919,"parent":2057704,"text":"Scoop St. in New York City is hiring sales and social media savvy folks who are passionate about discovering their city. We believe in the power of group buying online today and our team has been working in the space over the last two years, as things were really getting started.

NYC metro preferred but remote positions for social media is possible. See http://www.scoopst.com/jobs or email dave@scoopst.com","time":1293903816,"type":"comment"},{"by":"jehirsch","id":2063968,"parent":2057704,"text":"Syapse is looking to add some key people to our team (Syapse.com/jobs).

Syapse is Salesforce.com for product development, focused on the biomedical space.

We were started at Stanford, and are based in Palo Alto. Our goal is to accelerate biomedical product development by organizing biological results, and enabling scientific project management and collaboration. We utilize semantic technologies and biomedical ontologies to deliver scientifically intelligent web applications to biomedical companies of all sizes.

Our customers include a number of prominent biotech, pharma, and diagnostics companies in the fields of biologics, biomarkers, and molecular diagnostics. Our team is a multidisciplinary group of successful entrepreneurs, developers, and scientists. We have started twelve companies worth $15 billion, and created foundational web technologies such as the first e-commerce, webmail, and document management applications, and the Netscape Enterprise Server platform.

Syapse is looking to hire biology-savvy Web Application Developers, Web Interface Designers, and Python Server Developers. Our main technology stack is HTML, JS, Apache, Python / Django, and MySQL.

For more information about the positions, and information about how to apply, here: Syapse.com/jobs.","time":1294077337,"type":"comment"},{"by":"natrius","id":2058510,"parent":2057704,"text":"Austin, TX; on-site.

We're looking for experienced developers to join our team at The Texas Tribune. We're a non-profit, online news organization that covers state politics and policy in Texas. State and local governments spend more money than the federal government in America, yet far less attention is paid to what's going on outside of D.C. We aim to fix that.

We're currently working on improving and open-sourcing our CMS to allow other similar organizations to get off the ground much more quickly. We also build data apps that help our readers visualize, browse, and search through various data that the government puts out[1]. It's fun, fulfilling, and well-compensated work.

If you're interested, email me at nbabalola@texastribune.org. Include GitHub and HN usernames if you have them.

[1] Some examples:

Government Employee Salaries: http://www.texastribune.org/library/data/government-employee...

Prison Inmates: http://www.texastribune.org/library/data/government-employee...

Elected Officials: http://www.texastribune.org/directory/","time":1293917484,"type":"comment"},{"by":"supernayan","id":2058172,"parent":2057704,"text":"AudaxHealth is hiring Software Engineers: http://audaxhealth.com/?page_id=16

Washington, D.C.

Corporate is boring. Startups = fun!

jobs@audaxhealth.com","time":1293910194,"type":"comment"},{"by":"arupchak","id":2058833,"parent":2057704,"text":"Amazon.com Seller Services - Seattle WA - No remote, but willing to relocate based on experience.

I am looking for a strong Systems Support Engineer for our growing team. We like to describe our organization as a Startup within Amazon, as our part of the business is still growing rapidly and our engineers can have a lot of influence on where the product goes.

Job description below. Contact me at ${hn_username}@gmail.com if you have any questions.

The Amazon Services team is looking for a great Systems Support Engineer to keep our systems running. You should be comfortable in a Linux environment, be able to automate everything you did yesterday, and willing to troubleshoot and solve new problems on a daily basis. Come join one of the fastest growing teams within Amazon.

Responsibilities:

-Maintain stability and performance of our systems via tickets during oncall shifts

-Diagnose and troubleshoot new production issues that affect our customers

-Create and maintain standard operating procedure documents for new issues identified

-Automate operational tasks to assist with our scaling needs

Requirements:

-Proficiency in a scripting language (Ruby, Perl, Python, Shell)

-Familiar with SQL databases

-Comfortable navigating a Linux environment

-Basic understanding of web application architectures

Bonus points:

-Written a Rails application

-Deep knowledge of Oracle databases

-Troubleshooting experience

-Ticketing experience","time":1293925365,"type":"comment"},{"by":"randfish","id":2058490,"kids":[2068301],"parent":2057704,"text":"Seattle, WA - SEOmoz is hiring a product manager with mad wireframing/product design skills - http://seattle.craigslist.org/see/sof/2120238146.html

We're also hiring engineers - http://seattle.craigslist.org/see/sof/2091255814.html","time":1293916993,"type":"comment"},{"by":"ccoop","id":2057786,"parent":2057704,"text":"I'm looking for a tech co-founder for an education software start-up. Location will be either Boulder or SF.

Interested in learning more?

Contact me: letsdobigthings [at] gmail","time":1293898934,"type":"comment"},{"by":"Andaith","id":2057796,"parent":2057704,"text":"Between Bath and Bristol, possibly relocating to Bath, England.

Looking for a PHP developer to join a small web design agency.

Email: andrew [AT] moresoda [DOT] co [DOT] uk","time":1293899406,"type":"comment"},{"by":"buro9","id":2058004,"kids":[2058757],"parent":2057704,"text":"Yell Labs in London, UK is still hiring (slowly but surely).

We're currently looking for great developers with Java and/or Python skills.

We mostly make web apps and mobile apps and the backend services for these.

It's all full time, London based, salaried... a regular job but in a buzzing product development environment. We're all very understanding of side-projects and actually encourage it.

Contact david.kitchen@yellgroup.com","time":1293906215,"type":"comment"},{"by":"cheriot","id":2058135,"kids":[2059000],"parent":2057704,"text":"OPOWER is hiring in DC and SF: opowerjobs.com/engineering

(we're a Java shop)

Feel free to send me questions.","time":1293909432,"type":"comment"},{"by":"phillytom","id":2058428,"parent":2057704,"text":"Monetate - Conshohocken, PA (Philly suburb)

Local only. Will relocate for the right person but no remote. We've hired 2 great people from HN.

We're a SAAS provider of testing, targeting and personalization tools (i.e. segmentation, A/B testing, MVT) to internet retailers. We've got existing high-volume customers. We're small, profitable, and we're growing fast. We're funded by First Round Capital. http://jobs.monetate.com/

* We're looking for backend engineers who want to work on data and web problems at scale in Python.

* We're also hiring front-end developers who want to help build and test experiments and own our client facing UI. You should be experienced in working with production-quality cross-browser HTML/CSS and Javascript with and without frameworks.

We have fun problems at scale, great people to work with, and we get instant feedback from our clients on everything we put out! We're having a blast.

Feel free to email me any questions - tjanofsky monetate com.","time":1293915774,"type":"comment"},{"by":"locandy","id":2058137,"parent":2057704,"text":"SF Bay Area

Location Labs is a fast growing start-up that's doing lots of interesting things around location-based services. The whole gamut of work: Ruby, Python, Obj-C, Java; both server-side and mobile (iPhone, Android)

http://location-labs.com/jobs.php

QA, UX design, and product management roles as well","time":1293909463,"type":"comment"},{"by":"marcinw","id":2058076,"parent":2057704,"text":"We have several positions available in New York City AND London. If you have an interest in breaking stuff, can code in C, Java, C#, Python, or whatever, come talk to us! Send me an email at <my yc username> @ gdssecurity.com

http://www.gdssecurity.com/g/ca.php","time":1293908158,"type":"comment"},{"by":"tudorg","id":2057925,"kids":[2058877],"parent":2057704,"text":"Berlin, Germany. No telecommuting but we can help with relocation. At IPTEGO we're a bunch of HNers that would like to meet you.

We're a well funded company doing an analytics and troubleshooting product for next generation networks (NGNs). We use C/C++, python and javascript. Please email jobs@iptego.com and mention HN somewhere.","time":1293903933,"type":"comment"},{"by":"tednaleid","id":2058503,"parent":2057704,"text":"We've got a development opening for a full time position at my startup, Bloom Health.

http://gobloomhealth.com/jobs/software-engineer

Bloom Health is a VC funded startup with about 20 employees (including 5 developers currently).

Our offices are in downtown Minneapolis and are connected to the skyway. 100% remote working isn't an option currently, but we're flexible enough that working from home a day or two a week isn't a problem.

We develop on macbook pros with external monitors, and deploy our solution on Amazon's EC2 platform. Smart and fun people drinking free soda and working with groovy and grails, continuous integration, test coverage metrics, user stories, distributed version control, etc. All the things you'd want and expect in a startup, plus a business model that actually has a shot at paying off as an added perk.","time":1293917259,"type":"comment"},{"by":"buymorechuck","id":2058011,"parent":2057704,"text":"Palo Alto, CA - Flipboard: Web Developer

We are looking for developers with interest and experience working on web tech and know how browsers tick.

Flipboard Pages is one example of our HTML5 auto-pagination, auto-layout framework for making the web beautiful.

http://flipboard.com/jobs or drop me a line.","time":1293906423,"type":"comment"},{"by":"apgwoz","id":2058300,"parent":2057704,"text":"Meetup.com, New York, NY--no remote. We're hiring developers, QA folks and also someone to manage our data repositories (MySQL, MogileFS, HBase). http://www.meetup.com/jobs if you're interested.","time":1293913174,"type":"comment"},{"by":"petewailes","id":2057895,"parent":2057704,"text":"A client of mine is looking to hire a lead developer (LAMP) to start an internal dev team. The site is http://www.oakfurnituresolutions.co.uk/

Message me for details. Bristol (UK) location preferred.","time":1293903039,"type":"comment"},{"by":"drewvolpe","id":2059411,"parent":2057704,"text":"Boston, no remote work

Locately (early-stage startup, funded by Hacker Angels)

http://www.locately.com/

Our software analyzes location data from mobile phones to understand where people go. We then sell this research to large retailers (Target, Costco, ...), \"out of home\" advertisers (ie, billboards), and city planners and developers.

We're looking to add two engineers. We use some Java and lot of Python (with Scipy), though if you don't know these that's fine, we just care about hiring good hackers.

You get to work here:\n http://plixi.com/p/60698580

Email me directly: drew+hn@locately.com","time":1293943094,"type":"comment"},{"by":"jaaron","id":2058080,"parent":2057704,"text":"Los Angeles funded startup: web developer and visual designers.

Still in stealth, but launching within next 6 months. We have 15 people worldwide and are well funded. Actual LA office is in Santa Monica and we need people on site there. Looking for a lead web developer, ideally with exceptional JavaScript skills (not just playing around with JQuery), and we're looking for another senior visual designer.

It's a great team and if you're in the area or willing to relocate to LA, it's a fantasic opportunity to have the startup experience while not sacrificing competitive pay. Email & twitter in my profile.","time":1293908283,"type":"comment"},{"by":"mcfunley","id":2059037,"kids":[2103157,2059887,2063695],"parent":2057704,"text":"Etsy.com is hiring in Brooklyn, Berlin, San Francisco, and Hudson, NY. This should explain everything:

http://vimeo.com/13214706

Feel free to email me directly with questions, resumes, etc.","time":1293930712,"type":"comment"},{"by":"mustafakidd","id":2058075,"parent":2057704,"text":"We Are Mammoth is hiring a .NET developer: http://blog.wearemammoth.com/2010/12/were-hiring-net-develop...

We're in Chicago.","time":1293908070,"type":"comment"},{"by":"gommm","id":2057928,"kids":[2058188],"parent":2057704,"text":"I'm hiring Rails programmers in Shanghai.. Also looking for interns.

Email is in my profile","time":1293904029,"type":"comment"},{"by":"thinkcomp","id":2057884,"parent":2057704,"text":"Think Computer Corporation, Palo Alto, CA

http://www.facecash.com

We're looking for iPhone, Android and BlackBerry developers to continue developing our mobile payment system.","time":1293902582,"type":"comment"},{"by":"brentoids","id":2075637,"parent":2057704,"text":"Localot Research. We are 6 PhDs and 4 engineers, working on some very cool machine learning / natural language processing / data analytics problems that need a lot of scaling. Our strongest need is for experienced developers, but we are growing and will need more statistician/ML/NLP/math people and sys-admins. We have an espresso maker (and coffee machine).

We have multiple positions available. We want great people who think big, http://www.localot.com/jobs.html.","time":1294328156,"type":"comment"},{"by":"eof","id":2058339,"parent":2057704,"text":"Burlington, VT

Eatingwell.com

We are looking for a smart, entry to mid level programmer. Geeks are treated well in this media company, this is the last position in a department that will have grown by 300% in the last 9 months by the time you get there.

Php for our existing site and apps, everything new is python. If you can think well, I don't care what your resume looks like. Lots of room for growth in this very profitable company, you report to a programmer, great benefits, food, dog friendly office, rural office setting.","time":1293914007,"type":"comment"},{"by":"chipmunkninja","id":2060066,"parent":2057704,"text":"Adylitica is hiring software development interns for iOS, web apps, WP7, or Android development. We do contract and boutique mobile app development.

We're based in Beijing, and will help you take care of everything you need to come out and work with us. It's a super fun city with tonnes to do and great food to boot.

Our website's pretty bland, but feel free to get in touch with us:

http://adylitica.com/work_with_us.html","time":1293978942,"type":"comment"},{"by":"icco","id":2059524,"parent":2057704,"text":"San Luis Obispo, CA

iFixit.com is hiring Software Developers, Designers and a Marketing Director.

http://www.ifixit.com/info/jobs

I'm a software developer there and love it. Mainly a LAMP shop, but really awesome people and incredibly flexible. Kyle (our CEO) is very approachable, and we are a bootstrapped 30 person startup. If you're interested in having a huge impact on the world of repair and gadgets, come check us out.","time":1293947519,"type":"comment"},{"by":"dshah","id":2059561,"parent":2057704,"text":"HubSpot is hiring in Cambridge, MA

We're a software company that delivers marketing software for small businesses. We reach millions of users every month.

We were voted one the best company to work for in the Boston area this year (Google was #2).

We use a combination of Java, Python and PHP. We're one of the top 1,000 most trafficed websites in the U.S. -- so we've got some interesting software challenges.

I'm the founder/CTO. You can email me directly at dshah {at} hubspot {dot} com.","time":1293949519,"type":"comment"},{"by":"kiscica","id":2059209,"kids":[2059444],"parent":2057704,"text":"1010data is hiring in NYC. Standard black-and-white descriptions of the current job openings are at http://www.1010data.com/company/careers/current-job-openings (warning: links on that page are to PDFs) and you can find out what we do at http://www.1010data.com/company, but here's a little extra color especially for HN:

(1) We are looking for someone (v. 'Infrastructure Engineer') who'd be excited to take on the challenge of helping to run, and ultimately running, a rapidly expanding cluster of hundreds of high-performance servers at several datacenters. The environment is pretty unconventional (99.4% proprietary software, for example, and we prefer to use an \"exotic\" language - K - even for infrastructure purposes); I'd say it's much more comparable to academic/scientific clusters than to your typical web application company. So that kind of background wouldn't hurt! At the same time, though, you need to know Windows, 'cause we don't use Linux yet, and you need to know Linux, 'cause we will sooner or later, and you need to be really au courant on the standard datacenter stuff (networking, firewalls, security, backup and replication, racking hardware, receiving -- and making -- urgent phonecalls at inconvenient times, etc.). As you can imagine, this is a bit of a hard job to fill... you need to be highly experienced (because we need your experience to support the serious growth we're in the middle of) and yet have an extremely flexible mindset (since we do things in such an atypical way). But if you're the right person to fill it, the rewards will be substantial. Be the guy in charge of hundreds of some of the hardest-working servers out there: 1010data is the fastest analytical database on the planet, and our customers are pounding the cluster 24/7...

(2) We are also looking for a 'Web Application Developer'. But again, the dry job posting belies the fact we need something a bit unconventional. What we really mean by this is a hacker who just happens to really love hacking in JavaScript. This is, I sense, a rare combination. But it does exist (we have verified examples at 1010data). We are developing cutting-edge browser-based interfaces to aforementioned fastest analytical database on the planet and since JS is the Language of the Browser... well, that's probably why you, JavaScript Hacker, chose JS. Right? Oh, you say it's because it's kind of an awesome language in its own right? OK, well, whatever the reason: if you hack JS and want to develop cutting-edge browser-based interfaces for manipulating and visualizing large datasets... please, please apply for this job. You're going to love it at 1010data.

(3) We are looking for a 'Systems Developer'. We're not 100% sure how to define this, to be honest, but to paraphrase Justice Stewart, we'll know you when we see you. You need to know a lot about Windows internals, but ideally also Unix/Linux, since one of the major projects you'll be involved in will be a gradual environment shift. You'll be diagnosing performance issues. You'll be trying to wring more speed from our already very efficient cluster. You'll be writing code (bonus! in an exotic language!) to move data around, to do logging and performance reporting, and who knows what else. You're going to be the guy we all go to when it comes to the low-level arcana, so you're very familiar with the Way Things Work. You know who you are. Let us know too.

If you think any of the above is you... then write to jobs@1010data.com and mention that you saw Adam's post at HN.

1010data, by the way, is a fantastic place to work. We've got a whole floor in a grand old midtown building populated with a small but growing bunch of very dedicated, very smart, very happy people. We're growing fast, so there's a lot of energy, and you'll be working hard, but what you do will matter. No one is doing superfluous work at 1010. Your stuff will be used. You get all the startup excitement, but without the startup risk - 1010's a well-established company; we've been around since before the turn of the century. Which, these days, is almost as long as it sounds!","time":1293935604,"type":"comment"},{"by":"AnneM0101","id":2072270,"parent":2057704,"text":"EnergySavvy.com is looking for front and back end developers. EnergySavvy's goal is to make home energy efficiency easier for homeowners, so if you're interested in cleantech, this might be a good fit. Check out http://www.energysavvy.com/jobs/","time":1294258249,"type":"comment"},{"by":"rdschouw","id":2059277,"parent":2057704,"text":"NYC

Shapeways (create / sell personal designed products / 3D printing) is looking for her Manhattan office talented BACKEND and FRONTEND DEVELOPERS. We use LAMP stack with some Java stuff. Please see our job page at http://www.shapeways.com/jobs

Salary / equity based on experience","time":1293938075,"type":"comment"},{"by":"gnubardt","id":2057826,"parent":2057704,"text":"Brightcove (an online video platform) is currently hiring in Cambridge, Seattle and London.

http://brightcove.com/careers

I work in Engineering and it's a blast! We're mostly using java and flex with python at times, but the scale we operate at means it's always interesting.","time":1293900771,"type":"comment"},{"by":"svec","id":2063786,"parent":2057704,"text":"Ember is hiring in Boston, MA!

We're looking for embedded/firmware, QA, and ops right now. It's a great place to work. I've only been here a short while, but I love it so far!

Email me at: emberJan2011 [and then the at sign] saidsvec.com

http://www.ember.com/company_careers.html","time":1294074646,"type":"comment"},{"deleted":true,"id":2057889,"parent":2057704,"time":1293902825,"type":"comment"},{"by":"abailer","id":2066951,"parent":2057704,"text":"Arlington, VA looking for a Sr Software Engineer and a Software Engineer for online, content-driven health site. Check out the postings at http://www.healthcentral.com/about/careers/!","time":1294150368,"type":"comment"},{"by":"pquerna","id":2058246,"parent":2057704,"text":"Rackspace (now with more Cloudkick'ers) is hiring.

Lots of open positions in San Francisco, most are for parts of the Cloudkick team:\nhttp://jobs.rackspace.com/search?q=%22san+francisco%22","time":1293911737,"type":"comment"},{"by":"jdenglish","id":2059356,"parent":2057704,"text":"Energid Technologies is hiring robotics and machine vision engineers with C++ expertise for our new lab in Burlington, MA, and remote work. http://www.energid.com/contact.htm","time":1293941012,"type":"comment"},{"by":"tomh","id":2066288,"parent":2057704,"text":"Waltham, MA (no remote)

Akaza Research LLC is looking for a Software Quality Assurance Lead. Contact me for more details.

https://www.openclinica.org/page.php?pid=607","time":1294128165,"type":"comment"},{"by":"MPSimmons","id":2058841,"parent":2057704,"text":"We are.

We need java developers with math backgrounds, as well as operations folks.

http://www.investoranalytics.com/risk-transparency/careers","time":1293925489,"type":"comment"},{"by":"plnewman","id":2058697,"parent":2057704,"text":"Foster City, Ca\nRearden Commerce is hiring a devops engineer to focus on building our deployment platform, primarily in Python. For details, please contact me, my email address is in my profile.","time":1293922186,"type":"comment"},{"by":"aresant","id":2058314,"parent":2057704,"text":"In San Diego hiring full time LAMP developer for conversion voodoo, hiring Ruby contractor (20hrs a week long term). Both require in office, no remote sorry - email me via profile for details.","time":1293913459,"type":"comment"},{"by":"anonymoushn","id":2059020,"parent":2057704,"text":"imo.im is hiring software engineers, operations engineers, visual designers, marketers, and software engineering interns.

https://imo.im/jobs.html","time":1293930180,"type":"comment"},{"by":"dawson","id":2106999,"parent":2057704,"text":"Cambridge, UK. Healthcare startup looking for two Ruby on Rails developers (salary plus options), see http://about.nhs.info/","time":1295100153,"type":"comment"},{"by":"thenayr","id":2102272,"parent":2057704,"text":"Las Vegas based startup http://www.sescout.com is hiring web developers (PHP,HTML,CSS,etc).

Must be local. Email - hiringATsescout.com","time":1294971898,"type":"comment"},{"by":"ksowocki","id":2058835,"parent":2057704,"text":"(NYC-based)

Ignighter is hiring PHP developers. Both junior and senior levels.

http://www.ignighter.com/jobs , jobs at ignighter.com","time":1293925396,"type":"comment"},{"by":"arasakik","id":2059159,"parent":2057704,"text":"A Thinking Ape is currently looking for extremely talented software developers to join our core team in Vancouver, BC, Canada: www.athinkingape.com/jobs","time":1293934187,"type":"comment"},{"by":"martian","id":2058343,"parent":2057704,"text":"Thumbtack is hiring engineers in San Francisco. http://www.thumbtack.com/jobs","time":1293914029,"type":"comment"},{"by":"cal5k","id":2102632,"parent":2057704,"text":"Toronto

WEB/MOBILE DEVELOPER (we have no titles, actually, but this is the best description we could figure)

About us: Small company, about 15 folks, with offices in Chicago, Toronto, and Hyderabad (India). We specialize in disruptive technologies and business models, and we bring that knowledge to companies and organizations that are established and need to adapt or perish. We grew 300% last year, expecting the same this year, and this is a really exciting time to be with the company. You can feel electricity in the air around our offices.

We work with a variety of systems - we build pretty advanced platforms on Drupal (we're one of the only Enterprise Drupal partners in Canada), we build things from scratch with PHP/CodeIgnter, we build apps with Objective-C, etc. If you want to learn how to build wicked stuff and want to start a company somewhere down the line, this is a great place to work. Hell, you're even encouraged to work on a potential startup in your 15% time.

About you: Background in computer/software engineering or computer science is preferred, but we're open if you can demonstrate you know your stuff and have a nonconventional degree. We're looking for 1-2yrs experience (if you're fresh out of school get in touch anyway). Double points if you have startup experience.

We mostly work in PHP, but diverse language experience is a plus. It's more important that you're smart and driven than that you're a PHP expert. If you've played around with iOS development, HTML5, Python, Android dev, Facebook app dev, etc., those are all positives.

About the position: You'll be tasked with building important systems for interesting clients, with plenty of technical challenges and opportunities to learn as you go. You'll work in a Scrum team, primarily in PHP to start - you'll also likely learn how to build complex systems in Drupal.

If you're a startup guy/gal, you'll learn a lot just by being in our environment. You'll collide with amazingly smart developers, designers, analysts, and business folk - all of whom are constantly formulating new business models and thinking radical thoughts about the future. Bonus points if you like to endlessly philosophize.

Perks: Benefits (drug, dental, massage, etc.), 15% time (take a half day a week to build awesome stuff), relocation (if you're not located in the GTA), technical books (if you want 'em, you can have 'em), conferences, training.

Pay: We have a saying that goes like this: \"Hire 5 people who can do the work of 10 and get the pay of 8\". We want smart, driven developers, and we pay what it takes to get them.

How to apply: Email dustin (at) myplanetdigital (dot) com","time":1294981669,"type":"comment"},{"by":"JaredM","id":2064662,"parent":2057704,"text":"Nashville TN - No Remote

Big global company, smaller shop here in town. C/C++ software engineers.

Great place to work :)

Shoot me an email if intersted jantix5ATgmailDOTcom","time":1294088537,"type":"comment"},{"by":"bconway","id":2061571,"parent":2057704,"text":"Sendza - central MA

Software engineers (any of the following: HTML/CSS/JS, PHP, Java, Python, iPhone Dev)

bconway - at - sendza dot com","time":1294013271,"type":"comment"},{"deleted":true,"id":2057824,"parent":2057704,"time":1293900687,"type":"comment"},{"deleted":true,"id":2059207,"parent":2057704,"time":1293935566,"type":"comment"},{"deleted":true,"id":2059203,"parent":2057704,"time":1293935442,"type":"comment"},{"by":"arn","dead":true,"id":2058682,"parent":2057704,"text":"AppShopper.com is looking for a full time PHP/MySQL developer (Remote employees welcome). It will cover both backend/frontend maintenance as well as new features. We are a very popular App Store index and price tracker and are growing in popularity with both the website and our iPhone App. We are trying to take it to the next level, and require additional developer resources. We're bootstrapped and profitable.

AppShopper is part of a small family of websites including MacRumors.com and TouchArcade.com. If you are interested, please contact me at arn@normalkid.com.","time":1293921805,"type":"comment"},{"dead":true,"deleted":true,"id":2064419,"parent":2057704,"time":1294084219,"type":"comment"},{"dead":true,"deleted":true,"id":2064403,"parent":2057704,"time":1294083910,"type":"comment"},{"by":"dawson","dead":true,"id":2103366,"parent":2057704,"text":"I've got a small job, PSD to CSS if anyone is interested (need it done today), email in profile.","time":1295010731,"type":"comment"}]} -------------------------------------------------------------------------------- /assets/api/processed/2011-03-combined.json: -------------------------------------------------------------------------------- 1 | {"comments":[{"by":"squirrel","id":2270873,"kids":[2274501],"parent":2270790,"text":"Boston (US) as well as London (UK) - youDevise, Ltd.

We're a 65-person financial-software firm committed to learning and improvement as well as great web software and agile development. Some of you may know us from our sponsorship of Hacker News meetups in London. We're hiring developers and other smart folks of many kinds. See https://dev.youdevise.com and http://www.youdevise.com/careers.

While we don't have remote workers, we do help successful candidates relocate to London or Boston including arranging visas where needed. For example, last year we hired HN readers from Denmark and the US, and we moved a Polish employee to Boston.","time":1298891295,"type":"comment"},{"by":"astockel","id":2284659,"parent":2270790,"text":"BuzzGenie - Los Gatos - Remote is OK, but must be able to attend on site brainstorming and status meetings near Hwys 17 & 85.

BuzzGenie is a social network/news/blog/action Internet portal. We address an individual's need to not only voice their opinions, but to make a difference, enabling them to discuss and blog interests and act on causes, issues, events, topics, and persons of interest while keeping their identity private to the Internet at large. BuzzGenie combines the best features of Facebook, Huffington Post, WordPress, Yelp, and Twitter by integrating the friends feature; recent activity feeds; interest-based news feeds, blogs, and Tweets; and connecting people using an interest-based social graph. We have a solid revenue model which gets us to profitability in about two years.

Looking for LAMP and mobile developers, as well as Unix/Plesk admin.

Also looking for activists-bloggers.

You will play a key role on a very small team. Since we are at very early stage, you can become a major player in a company that wants to change and improve the way people interact on the things they care about. This is a very hot, competitive space with a potentially huge payout for the team first to get traction in the market. Great achievers will be rewarded accordingly.

Benefits of working on site has the additional benefit of three free gourmet meals a day (including Indian/vegetarian), an outdoor patio work area, hot tub, home gym, and unlimited gourmet espresso/cappuccino/coffee (it's a private residence). Imagine upscale 'garage' start-up. Walking distance to park with basketball, tennis courts, running track, and par course. Across Bascom Ave. from Los Gatos Creek trail for walking, running, roller blading, and biking.

Have a look at the site and see if it interests you. Helps to have some activist in your blood.

Compensation is accomplishment based until funding is closed. Founder's stock available.

astockel at buzzgenie com","time":1299170487,"type":"comment"},{"by":"necrodome","id":2279541,"parent":2270790,"text":"Here is a RSS feed for this thread's parent comments (which are mainly job postings):

http://whoishiring.heroku.com/rss/2270790

Thanks to Ronnie Roller (http://ronnieroller.com/) for Hacker News API.","time":1299074450,"type":"comment"},{"by":"exline","id":2276178,"parent":2270790,"text":"San Diego, CA. Remote ok.\nKlatu Networks: A wireless sensor networking startup that focuses in biotech monitoring. We are a small, bootstrapped, profitable start up. We are very selective on our hiring so you will only be working with other great engineers.

The most important requirements is to be passionate about creating software and be able to quickly grasp new technologies. Other requirements include strong knowledge of Javacript, experience with Ruby, Java, SQL, Git.

Contact me directly if you are interested, email is in my profile.","time":1298998855,"type":"comment"},{"by":"btstrpthrowaway","id":2281255,"parent":2270790,"text":"Cambridge, MA (AO Games)

We’re an online retail/games startup based in Cambridge, MA looking for someone to fill a full-time position as a Lead Developer of web applications.

We compensate very well, paying market rates or above for real talent. You may choose to substitute some equity for salary, but that is not mandatory. A remote working option is available at the start, though in the long term the job is at Cambridge, MA.

We are looking for someone who:

- Has experience building complex web apps (think Facebook).

- Has experience / enjoys the challenge of optimizing complex, time sensitive, applications.

- Has some familiarity with PHP in LAMP (though PHP doesn't need to be your favorite language; I'm looking at you Python/RoR evangelists!)

- System / Database administration familiarity is a plus, since this will be helpful for optimization.

A little about us: we are a small startup that is highly profitable. We bootstrapped our way to profitability by using minimum money and time (8 months). We are expanding to take on larger challenges and need a great programmer to work with us.

Contact me at ao.hiring@gmail.com for more info, or check out our posting here: http://careers.stackoverflow.com/jobs/9293/profitable-startu...","time":1299099284,"type":"comment"},{"by":"tungwaiyip","id":2286388,"parent":2270790,"text":"Kontagent (San Francisco, CA)

We are looking for sales and engineers!\nhttp://jobvite.com/m?3zGZ1fwZ

Kontagent measures people, not pages, and is a leading analytics platform for\nsocial application developers. The platform has been built to provide deep\nsocial behavior analysis and visualization that provides actionable insights via\na hosted, on-demand service. It works with many of the world’s largest\ndevelopers and brands, tracking thousands of social applications and games with\nover 100 million monthly active users and over 15 billion messages per month.

http://techcrunch.com/2011/02/10/facebook-analytics-platform...

http://venturebeat.com/2011/02/28/kontagent-launches-real-ti...

Email me waiyip.tung at kontagent.com if you need more information.

Wai Yip Tung","time":1299198699,"type":"comment"},{"by":"harnhua","id":2299531,"parent":2270790,"text":"Looking for a junior Software Engineer - Java in Singapore.\n(Sorry, must be located in Singapore)

The team at Plunify is seeking a talented and enthusiastic Java developer to help build a cloud computing platform. Work with the latest Web technologies to bridge the gap between the desktop and the cloud. Most importantly, be passionate about creating great software, be able to learn quickly and be a team player.

Your role is to develop, maintain and support Java applications that work with our proprietary platform. Refine and enhance security of existing Java applications. You will also be required to learn and understand how to integrate your applications with various hardware and software systems.

Required:\n- BS/MS CS or related majors. (New graduates welcome) \n- Strong programming skills in Java\n- Willingness to learn \n- Fluency in written and spoken English. Any other languages are a bonus!\n- Deep interest in cloud computing\n- Any experience in database/SQL and web scripting technologies, e.g. PHP, Javascript is a plus

Get in touch via recruit at plunify dot com!","time":1299549862,"type":"comment"},{"by":"niyazpk","id":2283116,"parent":2270790,"text":"Bangalore, India (Sorry, no remote).

We are looking for Java and PHP programmers.

We are a well funded ecommerce Startup. We already have an experienced team working on the technology side. Here are some interesting problems in this space: - Scaling - Data Mining/Retrieval - Analytics.

Please get in touch and I will convince you to join us :)

(Freshers and interns are welcome too).","time":1299134385,"type":"comment"},{"by":"martharotter","id":2282027,"parent":2270790,"text":"Nomad Editions - New York city area (sorry remote not an option for this role) http://readnomad.com

Web Developer for Digital Magazine Startup

Nomad Editions, a startup creating digital weeklies for mobile devices, is looking for an awesome web-standards focused HTML/CSS/JS developer to help build our content on top of Treesaver (treesaver.net), one of the most exciting new open source frameworks for digital news and magazine publishing. The developer will be responsible for taking wireframes and translating them into standards-compliant web pages in Treesaver.

We're seeking:\n - Expertise in standards-based web development with HTML/CSS/JS\n - Ideal candidate would also have design skills\n - Interest in working with a very exciting company doing something no one else in the digital publishing industry is doing: making digital content look amazing everywhere

If you're interested or have questions, please e-mail Martha Rotter at mrotter@readnomad.com","time":1299110327,"type":"comment"},{"by":"phunware","id":2298567,"parent":2270790,"text":"Phunware - Santa Ana, CA and Austin, TX (sorry, no remote)

Phunware is an enterprise branded mobile application infrastructure company that delivers high value, high utility and engaging mobile applications. These applications enable our customers to become a core part of their consumers’ mobile lifestyles.

Checkout our high profile apps at http://www.phunware.com

Job Opportunities in Austin, TX and Santa Ana, CA locations:

* Full-time position – iPhone Mobile Applications Software Engineer

* Full-time position – PHP Web Application Engineer

* Internships - iPhone Software Developer

 \nOn-site hires only, no remote or outsourcing.  Full-time qualifications include 3+ years of software engineering in related technologies.  Internships must have proven iPhone development experience.

 \nSend resumes to kle@phunware.com ","time":1299530224,"type":"comment"},{"by":"elliottcarlson","id":2282801,"parent":2270790,"text":"CellDivision - New York City - Local only, no remote

We are an established company - not a startup and not your traditional type of agency you would normally see on here - basically we work in the pharmaceutical/medinfo sector. Just because our standard business is old school - the technologies we use aren't.

We are a PHP shop, but make heavy use of MongoDB, Node.js, RabbitMQ, Solr, Haxe and any other technologies that are the new cool thing - but that also are indeed the right tool for the job. Other cool things we are playing with include the Kinect and RFID technology.

We are looking for a full time senior PHP developer. You need to be comfortable using our in-house framework and be quick on your toes in coming up with ideas. Ideas are welcome - but be ready to execute on them as well.

Send your resume, or any questions you might have to carlson at celldivision com","time":1299125958,"type":"comment"},{"by":"klochner","id":2278456,"parent":2270790,"text":"RentMineOnline (San Francisco, based in the Presidio).

We would consider interns, remote, and part-time or full-time.

Rails dev: you would be our #2 full-time developer, coding, refining our tech stack as we grow, and helping to coordinate our remote developers. Our current stack is {slicehost,nginx,passenger,rails,delayed_job,MySQL}. We recently upgraded to Rails3, and are adding fun stuff like varnish/redis/memcached next. We also use some amazon services {s3,rds,sdb} and have a fairly deep integration with facebook platform.

UX: prototype or jquery with a dash of design sensibility & a knack for user flows. This could be remote or part-time, but we prefer SF-based and are ultimately looking to fill a lead design role.

contact me - kevin@, and include #job somewhere in the subject so I don't miss it.","time":1299040393,"type":"comment"},{"by":"ig1","id":2271165,"parent":2270790,"text":"I run CoderStack, a developer job board (currently UK focused) we have lots of startups advertising at the moment:

http://www.coderstack.co.uk/startup-jobs","time":1298901148,"type":"comment"},{"by":"mpd","id":2282920,"parent":2270790,"text":"Stipple is looking for an engineer. San Francisco, local only. http://stippleit.com

We do Rails, jQuery, and TDD. Lots of Javascript. We write our own CSS (with SASS/Compass). We move quickly by exploiting the best tools we can find.

You would be the #2 engineering hire, and would work with myself and our other engineer.

Our awesome office is in South Beach, close to AT&T Park. I'll tell you the story about it when you get here.

Please send resumes or questions to mpd at stippleit.com, and include HNJOB in the subject.","time":1299129418,"type":"comment"},{"by":"jplewicke","id":2275837,"parent":2270790,"text":"Boston, MA (not remote)

MDT Advisers - We're a small quant investing shop working with machine learning, financial analysis, and the hardest dataset in the world. We're mainly hiring for a general analyst position that’s about 60% programming and 40% financial and statistical analysis -- http://www.mdtadvisers.com/careers/qea.jsp . The people, problems, and pay are good, and we aim for good work-life balance(e.g. no 60 hour weeks).

You can email me at jlewicke@mdtadvisers.com with any questions you have.","time":1298994638,"type":"comment"},{"by":"cdrw","id":2279106,"parent":2270790,"text":"London, UK

Commercial Security International provide internet monitoring services focused around intelligence gathering, asset and brand protection.

We're looking for a developer to join our team working on our MS stack using ASP.NET MVC, jQuery and TDD in an Agile environment.

Checkout our website at http://comsechq.com or email: jobs at comsechq.com if your interested.","time":1299062324,"type":"comment"},{"by":"Roedou","id":2282185,"parent":2270790,"text":"Seattle WA: Distilled - Sales Role (Non remote)

We're a Search Marketing consultancy; HQed in London UK, we opened a Seattle office in 2010. We work for plenty of large brands - though we have a bunch of startups amongst our client list as well.

Looking for a Sales Exec with some experience to join the team and keep us growing fast.

http://dis.tl/sales-exec","time":1299113286,"type":"comment"},{"by":"thomd","id":2275068,"parent":2270790,"text":"UK, Cambridge or Brighton (no remote) - Aptivate

We are an established not-for-profit IT consultancy working in the International Development sector. We're looking for multi-skilled web developers willing to participate in all aspects of the organisation.

For details http://www.aptivate.org/job-web-developer","time":1298982101,"type":"comment"},{"by":"GavinB","id":2271412,"parent":2270790,"text":"New York City

We're looking for an Assistant Project Manager to help build online games for a major publishing company (we're not dead yet!). Game design, wireframes, puzzle creation, customer service, documentation, QA--this position is a little of everything and we'll find a way to use any skill you have.

Shoot me an e-mail for further info: gbrown at scholastic.com","time":1298905610,"type":"comment"},{"by":"us","id":2271109,"kids":[2287068],"parent":2270790,"text":"We're a small startup local to the SF Bay Area looking primarily for developers right now and designers in the near term.

Ideal candidate would be a PHP dev with JS, jQuery, HTML, CSS, etc. C++, Python, Objective-C, etc are bonuses.

We're currently focused on solving an consumer ecommerce experience problem.","time":1298899734,"type":"comment"},{"by":"dlsay","id":2281499,"parent":2270790,"text":"New Jersey early stage startup is looking for locals. Show your NJ love.

Hiring software engineers and mobile app developers.

Java, JavaScript, AJAX (JQuery, Prototype, ExtJS) with a working knowledge of Spring MVC Framework and a sprinkling of C# wouldnt hurt.

jobs@iqtell.com","time":1299102570,"type":"comment"},{"by":"madisjc","id":2277072,"parent":2270790,"text":"Austin, TX (not remote)

Quickly growing startup making test and measurement equipment in solar industry. http://www.atonometrics.com/careers/software-engineer","time":1299011600,"type":"comment"},{"by":"krallja","id":2278397,"parent":2270790,"text":"Cheezburger is looking for an Experienced ASP.NET/C# Developer - http://jobs.cheezburger.com/job/detail/4324-experienced-asp-...","time":1299038644,"type":"comment"},{"by":"ynn4k","id":2277787,"kids":[2281207],"parent":2270790,"text":"Intelligent app search and discovery startup is looking for a business development person and a UI designer.\nhttp://iApps.in/jobs","time":1299022950,"type":"comment"},{"by":"techscruggs","id":2279456,"parent":2270790,"text":"Austin TX

Ruby Developer for AcademicWorks

More details here: http://www.academicworks.com/careers","time":1299072762,"type":"comment"},{"deleted":true,"id":2279454,"parent":2270790,"time":1299072734,"type":"comment"},{"by":"zeroprofit","id":2272792,"kids":[2295423,2300387],"parent":2270790,"text":"i'm looking to hire people with php, jquery, and postgresql skill.","time":1298925423,"type":"comment"},{"by":"BenSchaechter","id":2274446,"parent":2270790,"text":"Palo Alto, California

www.GoPollGo.com is a social polling platform and we're looking for rock-solid talent. Our stack is Ruby on Rails / JQuery / HAML / SASS / MySQL / Nginx / Passenger / Git. Competitive pay + options.

Check out our opportunities: http://gopollgo.com/about/jobs","time":1298958299,"type":"comment"},{"by":"robinwarren","dead":true,"id":2275035,"parent":2270790,"text":"Taunton, England (near Bristol)

Java developers wanting a great working environment, in Taunton. We've an expanding thick client app, we're already market leading in the UK for public sector and currently looking to expand into other markets and product areas. We hired the last guy who responded to a who's hiring post on HN and now need another excellent dev wanting to work in Taunton.

http://www.covalentsoftware.com/company/careers.php","time":1298980937,"type":"comment"},{"by":"anthonyu","dead":true,"id":2271417,"parent":2270790,"text":"We are looking for high-scalability data processing, machine learning, ETL, and/or browser-internals/javascript experts. Contract or contract to hire. Remote or local to Santa Monica, CA. Typical startup environment.

Send your resume with a cover letter to anthonyu at ucla dot edu and mention hacker news.","time":1298905661,"type":"comment"}]} -------------------------------------------------------------------------------- /assets/api/raw/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timqian/hacker-job-trends/d14b18cc7fd5c867d84552652f754a32d5ea7f5a/assets/api/raw/.gitkeep -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hacker Job Trends 6 | 7 | 8 | 9 |

13 | 14 |
15 | 16 |
17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 1363 | 1364 | 1365 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hacker-job-trends", 3 | "bin": { 4 | "hjt": "src/api/index.js" 5 | }, 6 | "version": "1.0.4", 7 | "description": "", 8 | "main": "fetchHTMLs.js", 9 | "scripts": { 10 | "updateContents": "node src/api/fetchNewlyAddedHTMLs.js", 11 | "updateHtmlCharts": "node src/create-charts.js > docs/index.html", 12 | "test": "echo \"Error: no test specified\" && exit 1" 13 | }, 14 | "repository": { 15 | "type": "git", 16 | "url": "git+https://github.com/timqian/hacker-job-trends.git" 17 | }, 18 | "keywords": [], 19 | "author": "", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/timqian/hacker-job-trends/issues" 23 | }, 24 | "homepage": "https://github.com/timqian/hacker-job-trends#readme", 25 | "dependencies": { 26 | "asciichart": "^1.5.7", 27 | "axios": "^0.18.0", 28 | "commander": "^2.16.0", 29 | "escape-string-regexp": "^1.0.5", 30 | "jsdom": "^11.11.0" 31 | }, 32 | "devDependencies": { 33 | "ejs": "^2.6.1", 34 | "eslint": "^5.14.1", 35 | "eslint-config-standard": "^12.0.0", 36 | "eslint-plugin-import": "^2.16.0", 37 | "eslint-plugin-node": "^8.0.1", 38 | "eslint-plugin-promise": "^4.0.1", 39 | "eslint-plugin-standard": "^4.0.0" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/api/create-ascii-chart.js: -------------------------------------------------------------------------------- 1 | const EOL = require('os').EOL 2 | const asciichart = require('asciichart') 3 | 4 | module.exports.createAsciiChart = function (counts) { 5 | let chart = '' 6 | 7 | try { 8 | chart = asciichart.plot(counts, { height: 15, padding: ' '.repeat(7) }) + EOL 9 | chart += ' '.repeat(8) + ':' + EOL 10 | chart += ' '.repeat(8) + '┼' + '┼──────────┼'.repeat(9) + '┼──' + EOL 11 | chart += ' '.repeat(7) + '2011-01' + 12 | ' '.repeat(5) + '2012-01' + ' '.repeat(5) + '2013-01' + 13 | ' '.repeat(5) + '2014-01' + ' '.repeat(5) + '2015-01' + 14 | ' '.repeat(5) + '2016-01' + ' '.repeat(5) + '2017-01' + 15 | ' '.repeat(5) + '2018-01' + ' '.repeat(5) + '2019-01' + 16 | ' '.repeat(5) + '2020-01' + EOL 17 | } catch (e) { 18 | if (e instanceof RangeError) { 19 | console.log('No results') 20 | } else { 21 | console.error(e) 22 | } 23 | } 24 | 25 | return chart 26 | } 27 | -------------------------------------------------------------------------------- /src/api/fetchNewlyAddedHTMLs.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const path = require('path') 3 | const axios = require('axios') 4 | 5 | const apiBase = 'https://hacker-news.firebaseio.com/v0/item' 6 | 7 | const basePath = path.join(__dirname, '../..') 8 | const pathToDatedLinks = path.join(basePath, '/HN-who-is-hiring-monthly.md') 9 | const pathToRawData = path.join(basePath, 'assets/api', '/raw') 10 | const pathToProcessedData = path.join(basePath, 'assets/api', '/processed') 11 | 12 | async function getStoryDataById (storyId) { 13 | let res 14 | if (fs.existsSync(path.join(pathToRawData, `/${storyId}.json`))) { 15 | console.log('using cached story') 16 | res = fs.readFileSync(path.join(pathToRawData, `/${storyId}.json`)) 17 | res = JSON.parse(res) 18 | } else { 19 | res = await axios.get(`${apiBase}/${storyId}.json`) 20 | res = res.data 21 | fs.writeFileSync(path.join(pathToRawData, `/${storyId}.json`), JSON.stringify(res)) 22 | } 23 | 24 | return res 25 | } 26 | 27 | async function fetchNewlyAddedHTMLs () { 28 | const datedLinks = fs.readFileSync(pathToDatedLinks, 'utf-8') 29 | 30 | const linkArr = datedLinks.split('\n').map(datedLink => ({ 31 | month: datedLink.split(': ')[0].slice(2), 32 | link: datedLink.split(': ')[1] 33 | })) 34 | 35 | const fetchedStories = fs.readdirSync(pathToProcessedData) 36 | const storyIds = fetchedStories.map(fileName => fileName.split('-combined.json')[0]) 37 | 38 | for (const linkObj of linkArr) { 39 | if (linkObj.month && linkObj.link && !storyIds.includes(linkObj.month)) { 40 | const storyId = linkObj.link.substring('https://news.ycombinator.com/item?id='.length) 41 | console.log('Fetching jobs of:', linkObj.month) 42 | 43 | const story = await getStoryDataById(storyId) 44 | 45 | const storyFolder = path.join(pathToRawData, `/${story.id}/`) 46 | if (!fs.existsSync(storyFolder)) { 47 | fs.mkdirSync(storyFolder) 48 | } 49 | 50 | const fetchedKids = fs.readdirSync(storyFolder) 51 | const kidIds = fetchedKids.map(fileName => fileName.split('.json')[0]) 52 | 53 | let promises = [] 54 | story.kids.forEach((kid) => { 55 | let promise 56 | 57 | if (!kidIds.includes(`${kid}`)) { 58 | promise = axios.get(`${apiBase}/${kid}.json`).then((response) => { 59 | fs.writeFileSync(path.join(pathToRawData, `/${storyId}/${kid}.json`), JSON.stringify(response.data)) 60 | return response.data 61 | }) 62 | } else { 63 | const data = fs.readFileSync(path.join(pathToRawData, `/${storyId}/${kid}.json`)) 64 | promise = Promise.resolve(JSON.parse(data)) 65 | } 66 | 67 | promises.push(promise) 68 | }) 69 | 70 | let output = { comments: [] } 71 | await Promise.all(promises).then((result) => { 72 | result.forEach(comment => { 73 | output.comments.push(comment) 74 | }) 75 | }) 76 | 77 | fs.writeFileSync(path.join(pathToProcessedData, `/${linkObj.month}-combined.json`), JSON.stringify(output)) 78 | console.log('Fetching done:', linkObj.month) 79 | } 80 | } 81 | } 82 | 83 | fetchNewlyAddedHTMLs() 84 | -------------------------------------------------------------------------------- /src/api/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const asciichart = require('asciichart') 3 | const fs = require('fs') 4 | const path = require('path') 5 | const program = require('commander') 6 | const escapeStringRegexp = require('escape-string-regexp') 7 | 8 | program 9 | .option('-r, --relative', 'Numbers relative to number of posts') 10 | .parse(process.argv) 11 | 12 | const args = program.args 13 | 14 | const matcherArr = [{ 15 | opration: '+', 16 | keyword: escapeStringRegexp(args[0]), // first arg fill in here 17 | matchCounts: [] // going to store matchCounts of keyword 18 | }] 19 | 20 | if (args.length === 0) { 21 | throw new Error('Please provide keyword') 22 | } 23 | 24 | if (args.length > 1) { 25 | for (let i = 1; i < args.length; i += 2) { 26 | if (args[i + 1]) { 27 | matcherArr.push({ 28 | opration: args[i], 29 | keyword: escapeStringRegexp(args[i + 1]) 30 | }) 31 | } 32 | } 33 | } 34 | 35 | matcherArr.forEach(matcher => { 36 | if (matcher.opration !== '+' && matcher.opration !== '-') { 37 | throw new Error('opration should be + or -') 38 | } 39 | }) 40 | 41 | // console.log('matcherArr', matcherArr); 42 | 43 | // "remote - no remote - not remote" blockchain react vue javascript/\sjs\s tenserflow ai node.js nodejs \snode\s typescript 44 | const contentFolder = path.join(__dirname, '../../assets/api/processed') 45 | const contentArr = fs.readdirSync(contentFolder) 46 | .filter(name => name.indexOf('combined') > -1) 47 | .map(name => path.join(contentFolder, name)) 48 | .map(path => fs.readFileSync(path, 'utf-8')) 49 | 50 | const matcherArrWithCounts = matcherArr.map(matcher => { 51 | const reg = new RegExp(matcher.keyword, 'gi') 52 | const matchCounts = contentArr.map(content => (content.match(reg) || []).length) 53 | matcher.matchCounts = matchCounts 54 | return matcher 55 | }) 56 | 57 | // console.log(matcherArrWithCounts, 'matcherArrWithCounts'); 58 | 59 | const reslutCountArr = matcherArrWithCounts[0].matchCounts 60 | 61 | for (let i = 1; i < matcherArrWithCounts.length; i++) { 62 | const nextMatcher = matcherArrWithCounts[i] 63 | // console.log(nextMatcher, 'nextMatcher'); 64 | const nextMatchCounts = nextMatcher.matchCounts 65 | const nextOpration = nextMatcher.opration 66 | for (let j = 0; j < nextMatchCounts.length; j++) { 67 | if (nextOpration === '+') { 68 | reslutCountArr[j] += nextMatchCounts[j] 69 | } else if (nextOpration === '-') { 70 | reslutCountArr[j] -= nextMatchCounts[j] 71 | } else { 72 | throw new Error('opration should be + or -') 73 | } 74 | } 75 | } 76 | 77 | if (program.relative) { 78 | for (let i = 0; i < contentArr.length; i++) { 79 | let jObj = JSON.parse(contentArr[i]).comments 80 | reslutCountArr[i] = (reslutCountArr[i] / jObj.length) * 100 81 | } 82 | } 83 | 84 | // console.log(reslutCountArr); 85 | try { 86 | console.log(asciichart.plot(reslutCountArr, { height: 15, padding: ' '.repeat(7) })) 87 | console.log(' '.repeat(8) + ':') 88 | console.log(' '.repeat(8) + '┼' + '┼──────────┼'.repeat(8) + '┼──') 89 | console.log(' '.repeat(7) + '2011-01' + 90 | ' '.repeat(5) + '2012-01' + ' '.repeat(5) + '2013-01' + 91 | ' '.repeat(5) + '2014-01' + ' '.repeat(5) + '2015-01' + 92 | ' '.repeat(5) + '2016-01' + ' '.repeat(5) + '2017-01' + 93 | ' '.repeat(5) + '2018-01' + ' '.repeat(5) + '2019-01') 94 | } catch (e) { 95 | if (e instanceof RangeError) { 96 | console.log('No results') 97 | } else { 98 | console.error(e) 99 | } 100 | } 101 | 102 | console.log('\nKeywords:', ...matcherArr.map(matcher => `${matcher.opration} ${matcher.keyword}`)) 103 | console.log('Mode: ', program.relative ? 'relative' : 'absolute') 104 | -------------------------------------------------------------------------------- /src/api/prepare-data.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const fs = require('fs') 3 | const path = require('path') 4 | const escapeStringRegexp = require('escape-string-regexp') 5 | 6 | module.exports.readData = function () { 7 | // "remote - no remote - not remote" blockchain react vue javascript/\sjs\s tenserflow ai node.js nodejs \snode\s typescript 8 | const contentFolder = path.join(__dirname, '../../assets/api/processed') 9 | const contentArr = fs.readdirSync(contentFolder) 10 | .filter(name => name.indexOf('combined') > -1) 11 | .map(name => { 12 | const filePath = path.join(contentFolder, name) 13 | const data = fs.readFileSync(filePath, 'utf-8') 14 | const dataObj = JSON.parse(data) 15 | 16 | return { 17 | month: name.split('-combined.json')[0], 18 | data, 19 | dataObj 20 | } 21 | }) 22 | 23 | return contentArr 24 | } 25 | 26 | module.exports.prepareData = function (args, contentArr) { 27 | const matcherArr = [{ 28 | opration: '+', 29 | keyword: escapeStringRegexp(args[0]), // first arg fill in here 30 | matchCounts: [] // going to store matchCounts of keyword 31 | }] 32 | 33 | if (args.length === 0) { 34 | throw new Error('Please provide keyword') 35 | } 36 | 37 | if (args.length > 1) { 38 | for (let i = 1; i < args.length; i += 2) { 39 | if (args[i + 1]) { 40 | matcherArr.push({ 41 | opration: args[i], 42 | keyword: escapeStringRegexp(args[i + 1]) 43 | }) 44 | } 45 | } 46 | } 47 | 48 | matcherArr.forEach(matcher => { 49 | if (matcher.opration !== '+' && matcher.opration !== '-') { 50 | throw new Error('opration should be + or -') 51 | } 52 | }) 53 | 54 | // console.log('matcherArr', matcherArr); 55 | 56 | const matcherArrWithCounts = matcherArr.map(matcher => { 57 | const reg = new RegExp(matcher.keyword, 'gi') 58 | const matchCounts = contentArr.map(content => (content.data.match(reg) || []).length) 59 | matcher.matchCounts = matchCounts 60 | return matcher 61 | }) 62 | 63 | // console.log(matcherArrWithCounts, 'matcherArrWithCounts'); 64 | 65 | const resultCountArr = matcherArrWithCounts[0].matchCounts 66 | 67 | for (let i = 1; i < matcherArrWithCounts.length; i++) { 68 | const nextMatcher = matcherArrWithCounts[i] 69 | // console.log(nextMatcher, 'nextMatcher'); 70 | const nextMatchCounts = nextMatcher.matchCounts 71 | const nextOpration = nextMatcher.opration 72 | for (let j = 0; j < nextMatchCounts.length; j++) { 73 | if (nextOpration === '+') { 74 | resultCountArr[j] += nextMatchCounts[j] 75 | } else if (nextOpration === '-') { 76 | resultCountArr[j] -= nextMatchCounts[j] 77 | } else { 78 | throw new Error('opration should be + or -') 79 | } 80 | } 81 | } 82 | 83 | const output = { 84 | dateCount: [], 85 | counts: [] 86 | } 87 | 88 | for (let i = 0; i < contentArr.length; i++) { 89 | let numberOfComments = contentArr[i].dataObj.comments.length 90 | resultCountArr[i] = (resultCountArr[i] / numberOfComments) * 100 91 | 92 | output.counts.push(resultCountArr[i]) 93 | output.dateCount.push({ x: `${contentArr[i].month}-01`, y: resultCountArr[i] }) 94 | } 95 | 96 | return output 97 | } 98 | -------------------------------------------------------------------------------- /src/create-charts-for-readme.js: -------------------------------------------------------------------------------- 1 | const ejs = require('ejs') 2 | const lib = require('./api/prepare-data') 3 | const createAsciiChart = require('./api/create-ascii-chart').createAsciiChart 4 | const queries = require('./queries').queries 5 | 6 | const dataSource = lib.readData() 7 | 8 | queries.forEach(function (query) { 9 | query.rows = lib.prepareData(query.query, dataSource).counts 10 | query.asciiChart = createAsciiChart(query.rows) 11 | }) 12 | 13 | ejs.renderFile('./src/templates/readme-charts.ejs', { queries }, {}, (err, str) => { 14 | // str => Rendered HTML string 15 | if (err) { 16 | console.log(err) 17 | } else { 18 | console.log(str) 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /src/create-charts.js: -------------------------------------------------------------------------------- 1 | const ejs = require('ejs') 2 | const lib = require('./api/prepare-data') 3 | const queries = require('./queries').queries 4 | 5 | const dataSource = lib.readData() 6 | 7 | queries.forEach(function (query) { 8 | query.rows = lib.prepareData(query.query, dataSource).dateCount 9 | }) 10 | 11 | ejs.renderFile('./src/templates/index.ejs', { queries }, {}, (err, str) => { 12 | // str => Rendered HTML string 13 | if (err) { 14 | console.log(err) 15 | } else { 16 | console.log(str) 17 | } 18 | }) 19 | -------------------------------------------------------------------------------- /src/queries.js: -------------------------------------------------------------------------------- 1 | const queries = [] 2 | queries.push({ 3 | label: 'vue', 4 | query: ['vue', '+', 'vuejs'], 5 | color: '#4fc08d', 6 | hidden: false, 7 | rows: [] 8 | }) 9 | 10 | queries.push({ 11 | label: 'react', 12 | query: ['react'], 13 | color: '#61dafb', 14 | hidden: false, 15 | rows: [] 16 | }) 17 | 18 | queries.push({ 19 | label: 'angular', 20 | query: ['angular', '+', 'angularjs'], 21 | color: '#b52e31', 22 | hidden: false, 23 | rows: [] 24 | }) 25 | 26 | queries.push({ 27 | label: 'javascript', 28 | query: ['javascript', '+', ' js'], 29 | color: '#F2DD4F', 30 | hidden: true, 31 | rows: [] 32 | }) 33 | 34 | queries.push({ 35 | label: 'nodejs', 36 | query: ['nodejs', '+', 'node.js'], 37 | color: '#43853d', 38 | hidden: true, 39 | rows: [] 40 | }) 41 | 42 | queries.push({ 43 | label: 'remote', 44 | query: ['remote', '-', 'not remote', '-', 'no remote'], 45 | color: '#953255', 46 | hidden: true, 47 | rows: [] 48 | }) 49 | 50 | queries.push({ 51 | label: 'aws', 52 | query: ['aws'], 53 | color: '#ff9d00', 54 | hidden: true, 55 | rows: [] 56 | }) 57 | 58 | queries.push({ 59 | label: 'blockchain', 60 | query: ['ethereum', '+', 'blockchain', '+', 'bitcoin', '+', 'solidity', '+', 'smart contract'], 61 | color: '#102026', 62 | hidden: true, 63 | rows: [] 64 | }) 65 | 66 | queries.push({ 67 | label: 'java', 68 | query: ['java', '-', 'javascript'], 69 | color: '#007396', 70 | hidden: true, 71 | rows: [] 72 | }) 73 | 74 | queries.push({ 75 | label: 'python', 76 | query: ['python'], 77 | color: '#ffd343', 78 | hidden: true, 79 | rows: [] 80 | }) 81 | 82 | queries.push({ 83 | label: 'golang', 84 | query: ['golang'], 85 | color: '#E0EBF5', 86 | hidden: true, 87 | rows: [] 88 | }) 89 | 90 | module.exports.queries = queries 91 | -------------------------------------------------------------------------------- /src/templates/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hacker Job Trends 6 | 7 | 8 | 9 |
13 | 14 |
15 | 16 |
17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 89 | 90 | -------------------------------------------------------------------------------- /src/templates/line.ejs: -------------------------------------------------------------------------------- 1 | { 2 | label: '<%= query.label %>', 3 | backgroundColor: '<%- query.color %>', 4 | borderColor: '<%- query.color %>', 5 | fill: false, 6 | hidden: <%- query.hidden %>, 7 | data: [ 8 | <% query.rows.forEach(function(row) { %> 9 | <%- include('row', { row: row }) -%> 10 | <% }); %> 11 | ] 12 | } -------------------------------------------------------------------------------- /src/templates/readme-charts.ejs: -------------------------------------------------------------------------------- 1 | <% queries.forEach(function(query) { %> 2 | #### <%- query.label %> trends: 3 | ```bash 4 | $ hjt <%= query.query.join(' ') %> 5 | 6 | <%- query.asciiChart %> 7 | ``` 8 | <% }); %> -------------------------------------------------------------------------------- /src/templates/row.ejs: -------------------------------------------------------------------------------- 1 | { x: '<%= row.x %>', y: <%= row.y %> }, --------------------------------------------------------------------------------