├── .eslintrc ├── .gitignore └── README.md /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | }, 6 | "ecmaFeatures": { 7 | // enable arrow functions 8 | "arrowFunctions": true, 9 | 10 | // enable binary literals 11 | "binaryLiterals": true, 12 | 13 | // enable let and const (aka block bindings) 14 | "blockBindings": true, 15 | 16 | // enable classes 17 | "classes": true, 18 | 19 | // enable default function parameters 20 | "defaultParams": true, 21 | 22 | // enable destructuring 23 | "destructuring": true, 24 | 25 | // enable for-of loops 26 | "forOf": true, 27 | 28 | // enable generators 29 | "generators": true, 30 | 31 | // enable modules and global strict mode 32 | "modules": false, 33 | 34 | // enable computed object literal property names 35 | "objectLiteralComputedProperties": true, 36 | 37 | // enable duplicate object literal properties in strict mode 38 | "objectLiteralDuplicateProperties": true, 39 | 40 | // enable object literal shorthand methods 41 | "objectLiteralShorthandMethods": true, 42 | 43 | // enable object literal shorthand properties 44 | "objectLiteralShorthandProperties": true, 45 | 46 | // enable octal literals 47 | "octalLiterals": true, 48 | 49 | // enable the regular expression u flag 50 | "regexUFlag": true, 51 | 52 | // enable the regular expression y flag 53 | "regexYFlag": true, 54 | 55 | // enable the rest parameters 56 | "restParams": true, 57 | 58 | // enable the spread operator 59 | "spread": true, 60 | 61 | // enable super references inside of functions 62 | "superInFunctions": true, 63 | 64 | // enable template strings 65 | "templateStrings": true, 66 | 67 | // enable code point escapes 68 | "unicodeCodePointEscapes": true, 69 | 70 | // allow return statements in the global scope 71 | "globalReturn": true 72 | }, 73 | "rules": { 74 | // enforce the spacing around the * in generator functions (off by default) 75 | "generator-star-spacing": [2, "both"], 76 | 77 | // disallow use of console (off by default in the node environment) 78 | "no-console": 2, 79 | 80 | // require let or const instead of var (off by default) 81 | "no-var": 2, 82 | 83 | // require method and property shorthand syntax for object literals (off by default) 84 | "object-shorthand": [2, "never"], 85 | 86 | // controls location of Use Strict Directives 87 | "strict": [2, "global"], 88 | 89 | // disallow or enforce trailing commas 90 | "comma-dangle": [2, "never"], 91 | 92 | // disallow assignment in conditional expressions 93 | "no-cond-assign": [2, "always"], 94 | 95 | // disallow use of constant expressions in conditions 96 | "no-constant-condition": 2, 97 | 98 | // disallow control characters in regular expressions 99 | "no-control-regex": 0, 100 | 101 | // disallow use of debugger 102 | "no-debugger": 2, 103 | 104 | // disallow duplicate arguments in functions 105 | "no-dupe-args": 2, 106 | 107 | // disallow duplicate keys when creating object literals 108 | "no-dupe-keys": 2, 109 | 110 | // disallow a duplicate case label. 111 | "no-duplicate-case": 2, 112 | 113 | // disallow the use of empty character classes in regular expressions 114 | "no-empty-character-class": 2, 115 | 116 | // disallow empty statements 117 | "no-empty": 2, 118 | 119 | // disallow assigning to the exception in a catch block 120 | "no-ex-assign": 2, 121 | 122 | // disallow double-negation boolean casts in a boolean context 123 | "no-extra-boolean-cast": 2, 124 | 125 | // disallow unnecessary parentheses (off by default) 126 | "no-extra-parens": 2, 127 | 128 | // disallow unnecessary semicolons 129 | "no-extra-semi": 2, 130 | 131 | // disallow overwriting functions written as function declarations 132 | "no-func-assign": 2, 133 | 134 | // disallow function or variable declarations in nested blocks 135 | "no-inner-declarations": [2, "functions"], 136 | 137 | // disallow invalid regular expression strings in the RegExp constructor 138 | "no-invalid-regexp": 2, 139 | 140 | // disallow irregular whitespace outside of strings and comments 141 | "no-irregular-whitespace": 2, 142 | 143 | // disallow negation of the left operand of an in expression 144 | "no-negated-in-lhs": 2, 145 | 146 | // disallow the use of object properties of the global object (Math and JSON) as functions 147 | "no-obj-calls": 2, 148 | 149 | // disallow multiple spaces in a regular expression literal 150 | "no-regex-spaces": 2, 151 | 152 | // disallow reserved words being used as object literal keys (off by default) 153 | "quote-props": [2, "always"], 154 | 155 | // disallow sparse arrays 156 | "no-sparse-arrays": 2, 157 | 158 | // disallow unreachable statements after a return, throw, continue, or break statement 159 | "no-unreachable": 2, 160 | 161 | // disallow comparisons with the value NaN 162 | "use-isnan": 2, 163 | 164 | // Ensure JSDoc comments are valid (off by default) 165 | "valid-jsdoc": 0, 166 | 167 | // Ensure that the results of typeof are compared against a valid string 168 | "valid-typeof": 2, 169 | 170 | // treat var statements as if they were block scoped (off by default) 171 | "block-scoped-var": 2, 172 | 173 | // specify the maximum cyclomatic complexity allowed in a program (off by default) 174 | "complexity": [2, 12], 175 | 176 | // require return statements to either always or never specify values 177 | "consistent-return": 2, 178 | 179 | // specify curly brace conventions for all control statements 180 | "curly": [2, "all"], 181 | 182 | // require default case in switch statements (off by default) 183 | "default-case": 2, 184 | 185 | // encourages use of dot notation whenever possible 186 | "dot-notation": [2, {"allowKeywords": true, "allowPattern": "^[a-z]+(_[a-z]+)+$"}], 187 | 188 | // enforces consistent newlines before or after dots (off by default) 189 | "dot-location": [2, "property"], 190 | 191 | // require the use of === and !== 192 | "eqeqeq": 2, 193 | 194 | // make sure for-in loops have an if statement (off by default) 195 | "guard-for-in": 0, 196 | 197 | // disallow the use of alert, confirm, and prompt 198 | "no-alert": 2, 199 | 200 | // disallow use of arguments.caller or arguments.callee 201 | "no-caller": 2, 202 | 203 | // disallow division operators explicitly at beginning of regular expression (off by default) 204 | "no-div-regex": 0, 205 | 206 | // disallow else after a return in an if (off by default) 207 | "no-else-return": 2, 208 | 209 | // disallow use of labels for anything other then loops and switches 210 | "no-empty-label": 2, 211 | 212 | // disallow comparisons to null without a type-checking operator (off by default) 213 | "no-eq-null": 2, 214 | 215 | // disallow use of eval() 216 | "no-eval": 2, 217 | 218 | // disallow adding to native types 219 | "no-extend-native": 2, 220 | 221 | // disallow unnecessary function binding 222 | "no-extra-bind": 2, 223 | 224 | // disallow fallthrough of case statements 225 | "no-fallthrough": 0, 226 | 227 | // disallow the use of leading or trailing decimal points in numeric literals (off by default) 228 | "no-floating-decimal": 2, 229 | 230 | // disallow use of eval()-like methods 231 | "no-implied-eval": 2, 232 | 233 | // disallow usage of __iterator__ property 234 | "no-iterator": 2, 235 | 236 | // disallow use of labeled statements 237 | "no-labels": 2, 238 | 239 | // disallow unnecessary nested blocks 240 | "no-lone-blocks": 0, // useful with `let` 241 | 242 | // disallow creation of functions within loops 243 | "no-loop-func": 2, 244 | 245 | // disallow use of multiple spaces 246 | "no-multi-spaces": 2, 247 | 248 | // disallow use of multiline strings 249 | "no-multi-str": 2, 250 | 251 | // disallow reassignments of native objects 252 | "no-native-reassign": 2, 253 | 254 | // disallow use of new operator for Function object 255 | "no-new-func": 2, 256 | 257 | // disallows creating new instances of String,Number, and Boolean 258 | "no-new-wrappers": 2, 259 | 260 | // disallow use of new operator when not part of the assignment or comparison 261 | "no-new": 2, 262 | 263 | // disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251"; 264 | "no-octal-escape": 2, 265 | 266 | // disallow use of octal literals 267 | "no-octal": 2, 268 | 269 | // disallow reassignment of function parameters (off by default) 270 | "no-param-reassign": 0, 271 | 272 | // disallow use of process.env (off by default) 273 | "no-process-env": 2, 274 | 275 | // disallow usage of __proto__ property 276 | "no-proto": 2, 277 | 278 | // disallow declaring the same variable more then once 279 | "no-redeclare": 2, 280 | 281 | // disallow use of assignment in return statement 282 | "no-return-assign": 2, 283 | 284 | // disallow use of javascript: urls. 285 | "no-script-url": 2, 286 | 287 | // disallow comparisons where both sides are exactly the same (off by default) 288 | "no-self-compare": 2, 289 | 290 | // disallow use of comma operator 291 | "no-sequences": 2, 292 | 293 | // restrict what can be thrown as an exception (off by default) 294 | "no-throw-literal": 2, 295 | 296 | // disallow usage of expressions in statement position 297 | "no-unused-expressions": 0, 298 | 299 | // disallow use of void operator (off by default) 300 | "no-void": 2, 301 | 302 | // disallow usage of configurable warning terms in comments - e.g. TODO or FIXME (off by default) 303 | "no-warning-comments": 2, 304 | 305 | // disallow use of the with statement 306 | "no-with": 2, 307 | 308 | // require use of the second argument for parseInt() (off by default) 309 | "radix": 2, 310 | 311 | // requires to declare all vars on top of their containing scope (off by default) 312 | "vars-on-top": 0, 313 | 314 | // require immediate function invocation to be wrapped in parentheses (off by default) 315 | "wrap-iife": 2, 316 | 317 | // require or disallow Yoda conditions 318 | "yoda": [2, "never"], 319 | 320 | // disallow the catch clause parameter name being the same as a variable in the outer scope (off by default in the node environment) 321 | "no-catch-shadow": 2, 322 | 323 | // disallow deletion of variables 324 | "no-delete-var": 2, 325 | 326 | // disallow labels that share a name with a variable 327 | "no-label-var": 2, 328 | 329 | // disallow shadowing of names such as arguments 330 | "no-shadow-restricted-names": 2, 331 | 332 | // disallow declaration of variables already declared in the outer scope 333 | "no-shadow": 2, 334 | 335 | // disallow use of undefined when initializing variables 336 | "no-undef-init": 0, 337 | 338 | // disallow use of undeclared variables unless mentioned in a /*global */ block 339 | "no-undef": 2, 340 | 341 | // disallow use of undefined variable (off by default) 342 | "no-undefined": 2, 343 | 344 | // disallow declaration of variables that are not used in the code 345 | "no-unused-vars": [2, {"vars": "all", "args": "after-used"}], 346 | 347 | // disallow use of variables before they are defined 348 | "no-use-before-define": [2, "nofunc"], 349 | 350 | // enforces error handling in callbacks (off by default) (on by default in the node environment) 351 | "handle-callback-err": [2, "^(err|error)$"], 352 | 353 | // disallow mixing regular variable and require declarations (off by default) (on by default in the node environment) 354 | "no-mixed-requires": [2, true], 355 | 356 | // disallow use of new operator with the require function (off by default) (on by default in the node environment) 357 | "no-new-require": 2, 358 | 359 | // disallow string concatenation with __dirname and __filename (off by default) (on by default in the node environment) 360 | "no-path-concat": 2, 361 | 362 | // disallow process.exit() (on by default in the node environment) 363 | "no-process-exit": 2, 364 | 365 | // restrict usage of specified node modules (off by default) 366 | "no-restricted-modules": 0, 367 | 368 | // disallow use of synchronous methods (off by default) 369 | "no-sync": 0, 370 | 371 | // enforce spacing inside array brackets 372 | "array-bracket-spacing": [2, "never"], 373 | 374 | // enforce one true brace style (off by default) 375 | "brace-style": [2, "1tbs"], 376 | 377 | // require camel case names 378 | "camelcase": 2, 379 | 380 | // enforce spacing before and after comma 381 | "comma-spacing": [2, {"before": false, "after": true}], 382 | 383 | // enforce one true comma style (off by default) 384 | "comma-style": [2, "last"], 385 | 386 | // enforces consistent naming when capturing the current execution context (off by default) 387 | "consistent-this": 2, 388 | 389 | // enforce newline at the end of file, with no multiple empty lines 390 | "eol-last": 2, 391 | 392 | // require function expressions to have a name (off by default) 393 | "func-names": 2, 394 | 395 | // enforces use of function declarations or expressions (off by default) 396 | "func-style": 0, // cannot activate as it breaks `export function myFunc` 397 | 398 | // this option sets a specific tab width for your code (off by default) 399 | "indent": [2, 2], 400 | 401 | // enforces spacing between keys and values in object literal properties 402 | "key-spacing": [2, {"beforeColon": false, "afterColon": true}], 403 | 404 | // disallow mixed 'LF' and 'CRLF' as linebreaks (off by default) 405 | "linebreak-style": [2, "unix"], 406 | 407 | // specify the maximum depth callbacks can be nested (off by default) 408 | "max-nested-callbacks": [2, 4], 409 | 410 | // require a capital letter for constructors 411 | "new-cap": 2, 412 | 413 | // disallow the omission of parentheses when invoking a constructor with no arguments 414 | "new-parens": 2, 415 | 416 | // allow/disallow an empty newline after var statement (off by default) 417 | "newline-after-var": [2, "always"], 418 | 419 | // disallow use of the Array constructor 420 | "no-array-constructor": 2, 421 | 422 | // disallow use of the continue statement (off by default) 423 | "no-continue": 0, 424 | 425 | // disallow comments inline after code (off by default) 426 | "no-inline-comments": 0, 427 | 428 | // disallow if as the only statement in an else block (off by default) 429 | "no-lonely-if": 2, 430 | 431 | // disallow mixed spaces and tabs for indentation 432 | "no-mixed-spaces-and-tabs": 2, 433 | 434 | // disallow multiple empty lines (off by default) 435 | "no-multiple-empty-lines": [2, {"max": 1}], 436 | 437 | // disallow nested ternary expressions (off by default) 438 | "no-nested-ternary": 2, 439 | 440 | // disallow use of the Object constructor 441 | "no-new-object": 2, 442 | 443 | // disallow space between function identifier and application 444 | "no-spaced-func": 0, 445 | 446 | // disallow the use of ternary operators (off by default) 447 | "no-ternary": 0, 448 | 449 | // disallow trailing whitespace at the end of lines 450 | "no-trailing-spaces": 2, 451 | 452 | // disallow dangling underscores in identifiers 453 | "no-underscore-dangle": 2, 454 | 455 | // disallow the use of Boolean literals in conditional expressions (off by default) 456 | "no-unneeded-ternary": 2, 457 | 458 | // require or disallow padding inside curly braces 459 | "object-curly-spacing": [2, "never"], 460 | 461 | // allow or disallow one variable declaration per function (off by default) 462 | "one-var": 0, 463 | 464 | // require assignment operator shorthand where possible or prohibit it entirely (off by default) 465 | "operator-assignment": [2, "always"], 466 | 467 | // enforce operators to be placed before or after line breaks (off by default) 468 | "operator-linebreak": [2, "before"], 469 | 470 | // enforce padding within blocks (off by default) 471 | "padded-blocks": [2, "never"], 472 | 473 | // require quotes around object literal property names (off by default) 474 | "quote-props": [2, "always"], 475 | 476 | // specify whether backticks, double or single quotes should be used 477 | "quotes": [2, "single"], 478 | 479 | // enforce spacing before and after semicolons 480 | "semi-spacing": [2, {"before": false, "after": true}], 481 | 482 | // require or disallow use of semicolons instead of ASI 483 | "semi": [2, "always"], 484 | 485 | // sort variables within the same declaration block (off by default) 486 | "sort-vars": 2, 487 | 488 | // require a space after certain keywords (off by default) 489 | "space-after-keywords": [2, "always"], 490 | 491 | // require or disallow space before blocks (off by default) 492 | "space-before-blocks": [2, "always"], 493 | 494 | // require or disallow space before function opening parenthesis (off by default) 495 | "space-before-function-paren": [2, "always"], 496 | 497 | // require or disallow spaces inside parentheses (off by default) 498 | "space-in-parens": [2, "never"], 499 | 500 | // require spaces around operators 501 | "space-infix-ops": [2, {"int32Hint": false}], 502 | 503 | // require a space after return, throw, and case 504 | "space-return-throw-case": 2, 505 | 506 | // Require or disallow spaces before/after unary operators (words on by default, nonwords off by default) 507 | "space-unary-ops": [2, {"words": true, "nonwords": true}], 508 | 509 | // require or disallow a space immediately following the // in a line comment (off by default) 510 | "spaced-line-comment": 0, 511 | 512 | // require regex literals to be wrapped in parentheses (off by default) 513 | "wrap-regex": 2, 514 | 515 | // Limit Maximum Number of Parameters 516 | "max-params": [2, 5] 517 | } 518 | } 519 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io 2 | 3 | ### DotSettings ### 4 | *.DotSettings 5 | 6 | ### Linux ### 7 | *~ 8 | 9 | # KDE directory preferences 10 | .directory 11 | 12 | 13 | ### Mercurial ### 14 | /.hg/* 15 | */.hg/* 16 | .hgignore 17 | 18 | 19 | ### NetBeans ### 20 | nbproject/private/ 21 | build/ 22 | nbbuild/ 23 | dist/ 24 | nbdist/ 25 | nbactions.xml 26 | nb-configuration.xml 27 | 28 | 29 | ### Node ### 30 | # Logs 31 | logs 32 | *.log 33 | 34 | # Runtime data 35 | pids 36 | *.pid 37 | *.seed 38 | 39 | # Directory for instrumented libs generated by jscoverage/JSCover 40 | lib-cov 41 | 42 | # Coverage directory used by tools like istanbul 43 | coverage 44 | 45 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 46 | .grunt 47 | 48 | # Compiled binary addons (http://nodejs.org/api/addons.html) 49 | build/Release 50 | 51 | # Dependency directory 52 | # Commenting this out is preferred by some people, see 53 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git- 54 | node_modules 55 | 56 | # Users Environment Variables 57 | .lock-wscript 58 | 59 | 60 | ### OSX ### 61 | .DS_Store 62 | .AppleDouble 63 | .LSOverride 64 | 65 | # Icon must end with two \r 66 | Icon 67 | 68 | 69 | # Thumbnails 70 | ._* 71 | 72 | # Files that might appear on external disk 73 | .Spotlight-V100 74 | .Trashes 75 | 76 | # Directories potentially created on remote AFP share 77 | .AppleDB 78 | .AppleDesktop 79 | Network Trash Folder 80 | Temporary Items 81 | .apdisk 82 | 83 | 84 | ### Ruby ### 85 | *.gem 86 | *.rbc 87 | /.config 88 | /coverage/ 89 | /InstalledFiles 90 | /pkg/ 91 | /spec/reports/ 92 | /test/tmp/ 93 | /test/version_tmp/ 94 | /tmp/ 95 | 96 | ## Specific to RubyMotion: 97 | .dat* 98 | .repl_history 99 | build/ 100 | 101 | ## Documentation cache and generated files: 102 | /.yardoc/ 103 | /_yardoc/ 104 | /doc/ 105 | /rdoc/ 106 | 107 | ## Environment normalisation: 108 | /.bundle/ 109 | /lib/bundler/man/ 110 | 111 | # for a library or gem, you might want to ignore these files since the code is 112 | # intended to run in multiple environments; otherwise, check them in: 113 | # Gemfile.lock 114 | # .ruby-version 115 | # .ruby-gemset 116 | 117 | # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: 118 | .rvmrc 119 | 120 | 121 | ### Sass ### 122 | .sass-cache 123 | 124 | 125 | ### SublimeText ### 126 | # cache files for sublime text 127 | *.tmlanguage.cache 128 | *.tmPreferences.cache 129 | *.stTheme.cache 130 | 131 | # workspace files are user-specific 132 | *.sublime-workspace 133 | 134 | # project files should be checked into the repository, unless a significant 135 | # proportion of contributors will probably not be using SublimeText 136 | # *.sublime-project 137 | 138 | # sftp configuration file 139 | sftp-config.json 140 | 141 | 142 | ### SVN ### 143 | .svn/ 144 | 145 | 146 | ### vim ### 147 | [._]*.s[a-w][a-z] 148 | [._]s[a-w][a-z] 149 | *.un~ 150 | Session.vim 151 | .netrwhist 152 | *~ 153 | 154 | 155 | ### Windows ### 156 | # Windows image file caches 157 | Thumbs.db 158 | ehthumbs.db 159 | 160 | # Folder config file 161 | Desktop.ini 162 | 163 | # Recycle Bin used on file shares 164 | $RECYCLE.BIN/ 165 | 166 | # Windows Installer files 167 | *.cab 168 | *.msi 169 | *.msm 170 | *.msp 171 | 172 | # Windows shortcuts 173 | *.lnk 174 | 175 | 176 | ### Yeoman ### 177 | node_modules/ 178 | bower_components/ 179 | *.log 180 | 181 | build/ 182 | dist/ 183 | 184 | exports 185 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CTO 2 | 3 | > Chief Technology Officer VS Coder Thinker Organizer 4 | 5 | ## Articles & Posts 6 | 7 | 1. [The CTO Series - An ongoing series of interviews with digital media CTOs](https://medium.com/the-cto-series) 8 | 1. [Learnings from 80 startup CTOs](https://medium.com/@fesja/learnings-from-80-startup-ctos-88ddb5f9c024#.zh5okn2zv) 9 | 1. [7 Habits of Highly Successful CTOs](https://medium.com/cto-school/7-habits-of-highly-successful-ctos-52bb90e3b1d2#.ln9f973p9) 10 | 1. [The Dilemma of the Startup CTO Title](https://medium.com/aws-activate-startup-blog/the-dilemma-of-the-startup-cto-title-85dddee8cc48#.l017nvn7p) 11 | 1. [What *is* a CTO?](https://medium.com/@PaulDJohnston/what-is-a-cto-f86cbdec9851#.qkmdtzqbh) 12 | 1. [We researched 58 of Berlin’s top CTOs. Here’s what we discovered.](https://medium.com/@Honeypot/we-researched-58-of-berlin-s-top-ctos-here-s-what-we-discovered-936d17ab434d#.mh7iking6) 13 | 1. [CTO for a Startup? Please Read.](https://medium.com/@sfrancisatx/cto-for-a-startup-please-read-6f8a80e22c22#.npc3wvv5k) 14 | 1. [5 things I’ve learned being a CTO in startups](https://medium.com/unexpected-token/5-things-i-ve-learned-being-a-cto-in-startups-5467a5896396#.rg510o5zw) 15 | 1. [Defining roles: CTO and/or VP Engineering](https://medium.com/engineering-leadership/defining-roles-cto-and-or-vp-engineering-f1c7563643a3#.m2gq2spec) 16 | 1. [6 Remarkable Traits of a Successful CTO](https://www.linkedin.com/pulse/20140910050518-49791738-6-remarkable-traits-of-a-successful-cto) 17 | 1. [Six Qualities of a World-Class CTO](http://www.baselinemag.com/c/a/IT-Management/Six-Qualities-of-a-WorldClass-CTO-330426) 18 | 1. [Executives: What are the key traits of a great CTO or CIO?](https://www.quora.com/Executives/What-are-the-key-traits-of-a-great-CTO-or-CIO) 19 | 1. [Achieving Success as a CTO](https://www.viasat.com/sites/default/files/legacy/HartChapter.pdf) 20 | 1. [What Makes A Good CTO Great?](http://www.forbes.com/sites/theyec/2015/08/28/what-makes-a-good-cto-great-8-qualities-to-hire-for/#aa04dd53c389) 21 | 1. [Successful Chief Technology Officers (CTO) Strike a Balance Between Technology and People](http://www.huffingtonpost.com/vala-afshar/successful-chief-technolo_b_5330969.html) 22 | 1. [14 Tips for Hiring the Perfect CTO](http://mashable.com/2011/05/07/cto-startup-hiring/#f31WxPQ.dPq0) 23 | 1. [5 Attributes of a Successful CTO](https://blog.clinicny.com/5-attributes-of-a-successful-cto/) 24 | 1. [Avoiding A CTO Meltdown: Part 1 - Defining The Role](http://www.forbes.com/sites/danwoods/2013/08/22/avoiding-a-cto-meltdown-part-1-defining-the-cto-role/#6122bfa4ba38) 25 | 1. [What does a startup CTO actually do?](http://www.startuplessonslearned.com/2008/09/what-does-startup-cto-actually-do.html) 26 | 1. [Three Traits Every CEO Wishes Their CTO Had](http://www.inc.com/aj-agrawal/three-traits-every-ceo-wishes-their-cto-had.html) 27 | 1. [7 Steps: How to Hire A CTO for your Startup](http://www.stridenyc.com/blog/7-steps-how-to-hire-a-cto-for-your-startup/) 28 | 1. [What makes a good CTO? Top CTOs explain their approaches](https://jaxenter.com/what-makes-a-good-cto-8-top-ctos-tell-us-their-approaches-122353.html) 29 | 1. [How I hired the best CTO for White](http://blog.whitepayments.com/how-i-hired-the-best-cto-for-white/) 30 | 1. [Golden Rules for Hiring the Perfect CTO](http://www.iamwire.com/2015/12/golden-rules-hiring-perfect-cto/129185) 31 | 1. [Three Golden Rules to Finding a CTO](https://www.rudebaguette.com/2011/12/01/three-golden-rules-to-finding-a-cto/) 32 | 1. [Is it required to be a developer/coder to become a CTO? Why can't an architect become a CTO.](https://www.quora.com/Is-it-required-to-be-a-developer-coder-to-become-a-CTO-Why-cant-an-architect-become-a-CTO) 33 | 34 | ## Licence 35 | 36 | [Uncopyrighted](http://zenhabits.net/uncopyright/) 37 | --------------------------------------------------------------------------------