---
layout: page
title: "Powered By Drill"
permalink: /poweredBy/
---
<link href="{{ site.baseurl }}/css/poweredBy.css" rel="stylesheet" type="text/css">
<div class="int_text">
    <p>
        Apache Drill not only helps data scientists and researchers get insights into their unstructured data, but also
        powers business-critical applications in many companies and enterprises around the globe.
        On this page, we present a few notable Drill users that run interesting use cases in production with link to
        resources that discuss their applications in more detail.</p>
    <p>Please note that the list is not comprehensive, and
        only lists users that explicitly gave consent.
        If you would you like to be included on this page, please reach out by sending a direct message to <a
                href="https://twitter.com/apachedrill">@ApacheDrill</a>
        on Twitter or to kunal[at]apache.org
    </p>
</div>
<div class="int_text">
    {% for company in site.data.poweredby.companies %}
    <div class="power_box">
        <img src="{{ site.baseurl }}/images/logos/{{ company.logo.fileName }}"
             style="width: {{ company.logo.width }}px;height:{{ company.logo.height }}px">
        <p> {{ company.description }}</p>
        {% if company.link %}
        <a href="{{ company.link }}" target="_blank">Find out more!</a>
        {% endif %}
    </div>
    {% endfor %}
</div>
