├── .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 |
11 | ${data.collections.nameSorted.map(page => {
12 | return ` - ${page.data.name}
`;
13 | }).join("\n")}
14 |
`;
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 |
--------------------------------------------------------------------------------