├── .eleventyignore ├── src ├── page.11tydata.json ├── content.md └── content.html ├── .gitignore ├── md └── index.md ├── package.json ├── njk └── index.njk ├── liquid └── index.liquid ├── _includes ├── layout.liquid ├── layout.njk └── layout.11ty.js ├── make-md-files.sh ├── make-njk-files.sh ├── make-liquid-files.sh ├── 11ty.js └── index.11ty.js ├── .eleventy.js ├── make-11ty.js-files.sh ├── README.md └── bench.sh /.eleventyignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | src/ 3 | README.md -------------------------------------------------------------------------------- /src/page.11tydata.json: -------------------------------------------------------------------------------- 1 | { 2 | "key1": true, 3 | "key2": [1,2,3] 4 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | njk/page 2 | liquid/page 3 | md/page 4 | 11ty.js/page 5 | node_modules 6 | _site 7 | eleventybench-* -------------------------------------------------------------------------------- /md/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: layout.liquid 3 | --- 4 | # Markdown Collection List 5 | 6 | {%- for page in collections.nameSorted %} 7 | * [{{ page.data.name }}]({{ page.url }}) 8 | {%- endfor %} 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eleventy-bench", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "start": "./bench.sh" 6 | }, 7 | "dependencies": { 8 | "@11ty/eleventy": "^0.6.0" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /njk/index.njk: -------------------------------------------------------------------------------- 1 | --- 2 | layout: layout.njk 3 | --- 4 |

Nunjucks Collection List

5 | 10 | -------------------------------------------------------------------------------- /liquid/index.liquid: -------------------------------------------------------------------------------- 1 | --- 2 | layout: layout.liquid 3 | --- 4 |

Liquid Collection List

5 | 10 | -------------------------------------------------------------------------------- /_includes/layout.liquid: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Eleventy Liquid Benchmark 7 | 8 | 9 | {{ content }} 10 | 11 | -------------------------------------------------------------------------------- /_includes/layout.njk: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Eleventy Nunjucks Benchmark 7 | 8 | 9 | {{ content | safe }} 10 | 11 | -------------------------------------------------------------------------------- /_includes/layout.11ty.js: -------------------------------------------------------------------------------- 1 | module.exports = function({content}) { 2 | return ` 3 | 4 | 5 | 6 | 7 | Eleventy JS Benchmark 8 | 9 | 10 | ${content} 11 | 12 | `; 13 | }; -------------------------------------------------------------------------------- /make-md-files.sh: -------------------------------------------------------------------------------- 1 | mkdir -p md/page/ 2 | for ((i=1; i<=$1; i++)); do 3 | page="md/page/$i.md" 4 | 5 | touch $page 6 | content=`cat src/content.md` 7 | echo "--- 8 | name: Zach $i 9 | index: $i 10 | layout: layout.liquid 11 | tags: name 12 | --- 13 | # {{ name }} 14 | ## $i 15 | $content" > $page 16 | done 17 | 18 | cp src/page.11tydata.json md/page/ -------------------------------------------------------------------------------- /make-njk-files.sh: -------------------------------------------------------------------------------- 1 | mkdir -p njk/page/ 2 | for ((i=1; i<=$1; i++)); do 3 | page="njk/page/$i.njk" 4 | 5 | touch $page 6 | content=`cat src/content.html` 7 | echo "--- 8 | name: Zach $i 9 | index: $i 10 | layout: layout.njk 11 | tags: name 12 | --- 13 |

{{ name }}

14 |

$i

15 | $content" > $page 16 | done 17 | 18 | cp src/page.11tydata.json njk/page/ -------------------------------------------------------------------------------- /make-liquid-files.sh: -------------------------------------------------------------------------------- 1 | mkdir -p liquid/page/ 2 | for ((i=1; i<=$1; i++)); do 3 | page="liquid/page/$i.liquid" 4 | 5 | touch $page 6 | content=`cat src/content.html` 7 | echo "--- 8 | name: Zach $i 9 | index: $i 10 | layout: layout.liquid 11 | tags: name 12 | --- 13 |

{{ name }}

14 |

$i

15 | $content" > $page 16 | done 17 | 18 | cp src/page.11tydata.json liquid/page/ -------------------------------------------------------------------------------- /11ty.js/index.11ty.js: -------------------------------------------------------------------------------- 1 | class MyIndexPage { 2 | get data() { 3 | return { 4 | layout: "layout.11ty.js" 5 | }; 6 | } 7 | 8 | render(data) { 9 | return `

Liquid Collection List

10 | `; 15 | } 16 | } 17 | 18 | module.exports = MyIndexPage; -------------------------------------------------------------------------------- /.eleventy.js: -------------------------------------------------------------------------------- 1 | module.exports = function(eleventyConfig) { 2 | eleventyConfig.setUseGitIgnore(false); 3 | 4 | eleventyConfig.addCollection("nameSorted", function(collection) { 5 | return collection.getFilteredByTag("name").sort(function(a, b) { 6 | return parseInt(a.data.index, 10) - parseInt(b.data.index, 10); 7 | }); 8 | }); 9 | 10 | // return { 11 | // markdownTemplateEngine: false 12 | // } 13 | }; -------------------------------------------------------------------------------- /make-11ty.js-files.sh: -------------------------------------------------------------------------------- 1 | mkdir -p 11ty.js/page/ 2 | for ((i=1; i<=$1; i++)); do 3 | page="11ty.js/page/$i.11ty.js" 4 | 5 | touch $page 6 | content=`cat src/content.html` 7 | echo "class MyTemplate { 8 | get data() { 9 | return { 10 | name: 'Zach $i', 11 | index: $i, 12 | layout: 'layout.11ty.js', 13 | tags: 'name' 14 | }; 15 | } 16 | 17 | render(data) { 18 | return \`

\${data.name}

19 |

$i

20 | $content\`; 21 | } 22 | } 23 | 24 | module.exports = MyTemplate;" > $page 25 | done 26 | 27 | cp src/page.11tydata.json 11ty.js/page/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Eleventy Benchmark Speed Regression Test 2 | 3 | Creates 1000 (Liquid|Nunjucks|Markdown) templates. Runs Eleventy against each template format individually and measures the Median Eleventy Runtime (over 10 runs) and Median Time Spent Per Template. 4 | 5 | Can optionally run serially against multiple Eleventy versions, for comparison. 6 | 7 | Eleventy features: 8 | * Each individual template uses: 9 | - A layout file (of the same template type). 10 | - A tag to make it part of a collection 11 | - Front matter data used in the template content body 12 | - Markdown files are preprocessed by Liquid (as is Eleventy default) 13 | - Templates are not tiny—they use content and the output HTML is about 10KB. 14 | * Template types have one index page template that lists all the templates in a custom sorted collection based on a front matter value. 15 | 16 | ## Usage 17 | 18 | ```sh 19 | $ ./bench.sh 20 | ``` 21 | 22 | Requires the `datamash` utility (`brew install datamash` on Mac OS using homebrew). Uh, and all the prerequisites for Eleventy. 23 | 24 | ### Use with Speedscope 25 | 26 | This benchmark uses Node’s --cpu-prof arg to create a `.cpuprofile` output that can be uploaded to [speedscope.app](https://www.speedscope.app/) for further review. 27 | 28 | 29 | ### Sample Output 30 | 31 | ``` 32 | ~/Code/eleventy-bench ᐅ ./bench.sh 33 | --------------------------------------------------------- 34 | Eleventy Benchmark (Node v10.14.2, 1000 templates each) 35 | --------------------------------------------------------- 36 | Eleventy 0.5.4 37 | --------------------------------------------------------- 38 | .liquid: .......... 10 runs. 39 | * Median: 1.62 seconds 40 | * Median per template: 1 ms 41 | 42 | .njk: .......... 10 runs. 43 | * Median: 2.775 seconds 44 | * Median per template: 2 ms 45 | 46 | .md: .......... 10 runs. 47 | * Median: 2.915 seconds 48 | * Median per template: 2 ms 49 | 50 | --------------------------------------------------------- 51 | Eleventy 0.6.0 52 | --------------------------------------------------------- 53 | .liquid: .......... 10 runs. 54 | * Median: 1.755 seconds (8%) 55 | * Median per template: 1 ms (0%) 56 | 57 | .njk: .......... 10 runs. 58 | * Median: 2.885 seconds (3%) 59 | * Median per template: 2 ms (0%) 60 | 61 | .md: .......... 10 runs. 62 | * Median: 2.95 seconds (1%) 63 | * Median per template: 2 ms (0%) 64 | ``` 65 | 66 | ### Steps to add additional template type 67 | 68 | 1. See `make-liquid-files.sh` as a template script to generate a bunch of sample files for a template type. 69 | 2. Add the template language key to `bench.sh` 70 | 3. Add `$key/page` to the `.gitignore` file. 71 | 4. Create a layout file in `_includes` 72 | 5. Create an index page that loops over all items in the collection at `$key/` 73 | -------------------------------------------------------------------------------- /bench.sh: -------------------------------------------------------------------------------- 1 | TEMPLATE_FILES=2500 2 | RUNS=5 3 | 4 | # "@11ty/eleventy@canary" 5 | # "@11ty/eleventy@beta" 6 | # "@11ty/eleventy@0.12.1" 7 | # "@11ty/eleventy@1.0.0" 8 | # "file:../eleventy" 9 | VERSIONS=("@11ty/eleventy@0.12.1" "@11ty/eleventy@1.0.0" "file:../eleventy") 10 | 11 | ALL_LANGS=("liquid" "njk" "md" "11ty.js") 12 | LANGS=("liquid" "njk" "11ty.js" "md") 13 | 14 | LINESEP="---------------------------------------------------------" 15 | nodeVersion=`node --version` 16 | echo "$LINESEP" 17 | echo "Eleventy Benchmark (Node $nodeVersion, $TEMPLATE_FILES templates each)" 18 | 19 | BASELINEMEDIAN=() 20 | BASELINEPERTEMPLATE=() 21 | RESULTS=() 22 | for npmVersion in "${VERSIONS[@]}"; do 23 | echo "$LINESEP" 24 | printf "Running npm install $npmVersion\r" 25 | npm install $npmVersion > /dev/null 2>&1 26 | 27 | rm -rf _site 28 | 29 | eleventyVersion=`npx eleventy --version` 30 | echo "Eleventy $eleventyVersion " 31 | echo "$LINESEP" 32 | 33 | for (( i=0; i<${#LANGS[@]}; i++ )); do 34 | # Delete previous template files 35 | for (( j=0; j<${#ALL_LANGS[@]}; j++ )); do 36 | rm -rf "${ALL_LANGS[$j]}/page/" 37 | done 38 | 39 | if [[ ${#RESULTS[@]} < $i+1 ]]; then 40 | RESULTS+=("") 41 | fi 42 | 43 | printf "Creating fresh template files…\r" 44 | ./make-${LANGS[$i]}-files.sh $TEMPLATE_FILES 45 | printf " \r" 46 | printf ".${LANGS[$i]}: " 47 | 48 | TIMES="" 49 | for ((j=1; j<=$RUNS; j++)); do 50 | # No CPU profile 51 | # eleventyTime=`npx eleventy --quiet --formats=${LANGS[$i]}` 52 | 53 | # Includes a CPU profile for speedscope 54 | timestamp=`date +%y%m%d-%H%M%S` 55 | eleventyTime=`node --cpu-prof --cpu-prof-name=eleventybench-${eleventyVersion}_${LANGS[$i]}_r${j}_${timestamp}.cpuprofile ./node_modules/.bin/eleventy --quiet --formats=${LANGS[$i]}` 56 | printf "." 57 | 58 | # Extract the total time 59 | # Expected Format 0.x (print $5): 60 | # Copied 1 item and Processed 0 files in 0.14 seconds 61 | # Expected Format 1.0 (print $6): 62 | # [11ty] Wrote 114 files in 6.13 seconds (53.8ms each, v1.0.0-canary.45) 63 | # [11ty] Copied 4196 files / Wrote 114 files in 6.13 seconds (53.8ms each, v1.0.0-canary.45) 64 | # [11ty] Wrote 1001 files in 1.01 seconds (1.0ms each, v3.0.0) 65 | # TODO fix this to be automatic 66 | 67 | if [[ $npmVersion == "@11ty/eleventy@0.12.1" ]]; then 68 | eleventyTimeNumber=`echo $eleventyTime | awk '{split($0, array, " "); print array[5]}'` 69 | else 70 | eleventyTimeNumber=`echo $eleventyTime | awk '{split($0, array, " "); print array[6]}'` 71 | fi 72 | 73 | TIMES="$TIMES$eleventyTimeNumber\n" 74 | done 75 | 76 | printf " $RUNS runs:\n" 77 | median=`printf $TIMES | datamash median 1` 78 | perTemplate=`echo "$median * 1000000 / $TEMPLATE_FILES" | bc` 79 | 80 | printf "* Median: $median seconds" 81 | if [[ ${#BASELINEMEDIAN[@]} < $i+1 ]]; then 82 | BASELINEMEDIAN+=($median) 83 | echo "" 84 | else 85 | baselineCompare=`echo "$median * 100 / ${BASELINEMEDIAN[$i]} - 100" | bc` 86 | echo " (${baselineCompare}%)" 87 | fi 88 | 89 | printf "* Median per template: $perTemplate µs" 90 | if [[ ${#BASELINEPERTEMPLATE[@]} < $i+1 ]]; then 91 | BASELINEPERTEMPLATE+=($perTemplate) 92 | echo "" 93 | else 94 | baselinePerTemplateCompare=`echo "$perTemplate * 100 / ${BASELINEPERTEMPLATE[$i]} - 100" | bc` 95 | echo " (${baselinePerTemplateCompare}%)" 96 | fi 97 | echo "" 98 | done 99 | done 100 | 101 | -------------------------------------------------------------------------------- /src/content.md: -------------------------------------------------------------------------------- 1 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 2 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 3 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 4 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 5 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 6 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 7 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 8 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 9 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 10 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 11 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 12 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 13 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 14 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 15 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 16 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 17 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 18 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 19 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 20 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 21 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 22 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 23 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 24 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 25 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 26 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 27 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 28 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 29 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 30 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 31 | Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment. 32 | Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring. 33 | Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line. 34 | -------------------------------------------------------------------------------- /src/content.html: -------------------------------------------------------------------------------- 1 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

2 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

3 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

4 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

5 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

6 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

7 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

8 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

9 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

10 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

11 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

12 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

13 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

14 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

15 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

16 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

17 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

18 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

19 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

20 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

21 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

22 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

23 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

24 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

25 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

26 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

27 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

28 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

29 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

30 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

31 |

Leverage agile frameworks to provide a robust synopsis for high level overviews. Iterative approaches to corporate strategy foster collaborative thinking to further the overall value proposition. Organically grow the holistic world view of disruptive innovation via workplace diversity and empowerment.

32 |

Bring to the table win-win survival strategies to ensure proactive domination. At the end of the day, going forward, a new normal that has evolved from generation X is on the runway heading towards a streamlined cloud solution. User generated content in real-time will have multiple touchpoints for offshoring.

33 |

Capitalize on low hanging fruit to identify a ballpark value added activity to beta test. Override the digital divide with additional clickthroughs from DevOps. Nanotechnology immersion along the information highway will close the loop on focusing solely on the bottom line.

34 | --------------------------------------------------------------------------------