<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="A new open source Apache Hadoop ecosystem project, Apache Kudu completes Hadoop's storage layer to enable fast analytics on fast data" />
    <meta name="author" content="Cloudera" />
    <title>Apache Kudu - Committers and PMC Members</title>
    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
          integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7"
          crossorigin="anonymous">

    <!-- Custom styles for this template -->
    <link href="/css/kudu.css" rel="stylesheet"/>
    <link href="/css/asciidoc.css" rel="stylesheet"/>
    <link rel="shortcut icon" href="/img/logo-favicon.ico" />
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" />

    

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
        <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
        <![endif]-->
  </head>
  <body>
    <div class="kudu-site container-fluid">
      <!-- Static navbar -->
        <nav class="navbar navbar-default">
          <div class="container-fluid">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="logo" href="/"><img
                src="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png"
                srcset="//d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_80px.png 1x, //d3dr9sfxru4sde.cloudfront.net/i/k/apachekudu_logo_0716_160px.png 2x"
                alt="Apache Kudu"/></a>
              
            </div>
            <div id="navbar" class="collapse navbar-collapse">
              <ul class="nav navbar-nav navbar-right">
                <li >
                  <a href="/">Home</a>
                </li>
                <li >
                  <a href="/overview.html">Overview</a>
                </li>
                <li >
                  <a href="/docs/">Documentation</a>
                </li>
                <li >
                  <a href="/releases/">Download</a>
                </li>
                <li >
                  <a href="/blog/">Blog</a>
                </li>
                <!-- NOTE: this dropdown menu does not appear on Mobile, so don't add anything here
                     that doesn't also appear elsewhere on the site. -->
                <li class="dropdown active">
                  <a href="/community.html" role="button" aria-haspopup="true" aria-expanded="false">Community <span class="caret"></span></a>
                  <ul class="dropdown-menu">
                    <li class="dropdown-header">GET IN TOUCH</li>
                    <li><a class="icon email" href="/community.html">Mailing Lists</a></li>
                    <li><a class="icon slack" href="https://getkudu-slack.herokuapp.com/">Slack Channel</a></li>
                    <li role="separator" class="divider"></li>
                    <li><a href="/community.html#meetups-user-groups-and-conference-presentations">Events and Meetups</a></li>
                    <li><a href="/committers.html">Project Committers</a></li>
                    <!--<li><a href="/roadmap.html">Roadmap</a></li>-->
                    <li><a href="/community.html#contributions">How to Contribute</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">DEVELOPER RESOURCES</li>
                    <li><a class="icon github" href="https://github.com/apache/incubator-kudu">GitHub</a></li>
                    <li><a class="icon gerrit" href="http://gerrit.cloudera.org:8080/#/q/status:open+project:kudu">Gerrit Code Review</a></li>
                    <li><a class="icon jira" href="https://issues.apache.org/jira/browse/KUDU">JIRA Issue Tracker</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">SOCIAL MEDIA</li>
                    <li><a class="icon twitter" href="https://twitter.com/ApacheKudu">Twitter</a></li>
                    <li><a href="https://www.reddit.com/r/kudu/">Reddit</a></li>
                    <li role="separator" class="divider"></li>
                    <li class="dropdown-header">APACHE SOFTWARE FOUNDATION</li>
                    <li><a href="https://www.apache.org/security/" target="_blank">Security</a></li>
                    <li><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
                    <li><a href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                    <li><a href="https://www.apache.org/licenses/" target="_blank">License</a></li>
                  </ul>
                </li>
                <li >
                  <a href="/faq.html">FAQ</a>
                </li>
              </ul><!-- /.nav -->
            </div><!-- /#navbar -->
          </div><!-- /.container-fluid -->
        </nav>


<div class="row-fluid">
  <div class="col-lg-12 committers">

<h1 id="apache-kudu-committers-and-pmc-members">Apache Kudu Committers and PMC Members</h1>

<p>Following is a list of current Kudu committers and members of the Kudu PMC.</p>

<table>
  <thead>
    <tr>
      <th>Username</th>
      <th>Name</th>
      <th>Role</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>abukor</td>
      <td>Attila Bukor</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>adar</td>
      <td>Adar Dembo</td>
      <td>VP, PMC</td>
    </tr>
    <tr>
      <td>alexey</td>
      <td>Alexey Serbin</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>awong</td>
      <td>Andrew Wong</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>bchang</td>
      <td>Binglin Chang</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>danburkert</td>
      <td>Dan Burkert</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>dralves</td>
      <td>David Alves</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>granthenke</td>
      <td>Grant Henke</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>hahao</td>
      <td>Hao Hao</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>helifu</td>
      <td>LiFu He</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>jarcec</td>
      <td>Jarek Jarcec Cecho</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>jdcryans</td>
      <td>Jean-Daniel Cryans</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>jfarrell</td>
      <td>Jake Farrell</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>jtbirdsell</td>
      <td>Jordan Birdsell</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>julien</td>
      <td>Julien Le Dem</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>laiyingchun</td>
      <td>Yingchun Lai</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>mattmann</td>
      <td>Chris Mattmann</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>misty</td>
      <td>Misty Linville</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>mpercy</td>
      <td>Mike Percy</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>sailesh</td>
      <td>Sailesh Mukil</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>stack</td>
      <td>Michael Stack</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>todd</td>
      <td>Todd Lipcon</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>wdberkeley</td>
      <td>William Berkeley</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>yaoxu</td>
      <td>Yao Xu</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>yaozhang</td>
      <td>Yao Zhang</td>
      <td>PMC</td>
    </tr>
  </tbody>
</table>

<p>Committership is a recognition of an individual’s contribution within the
Apache Kudu community, including, but not limited to:</p>

<ul>
  <li>Writing quality code and tests</li>
  <li>Writing documentation</li>
  <li>Improving the website</li>
  <li>Participating in code review (+1s are appreciated! Reviews help reduce the
burden on other committers)</li>
  <li>Voting on release candidates (non-binding votes are appreciated! Trying out
release candidates helps expand test coverage in more environments)</li>
  <li>Answering questions on public forums, like Slack, mailing lists, etc.</li>
  <li>Participating in feature design discussions</li>
  <li>Participating in Jira discussions</li>
  <li>Evangelizing Kudu at conferences, meetups, etc.</li>
  <li>Operating Kudu deployments, potentially testing bug fixes and features, and
sharing feedback to the community</li>
  <li>Sustained contribution to the Kudu project and community</li>
</ul>

<p>While not all of these are required to become a committer, they are all taken
into account when considering contributors for committership. There is no set
number of commits required, set number of lines of code merged, or set number
of questions answered that will automatically qualify someone for
committership. The Kudu PMC will take note of contributors and periodically
vote on them, based on past contributions and interactions with the community.</p>

<p>Committership is an acknowledgement from the Kudu PMC that a contributor has
demonstrated solid judgement in their contributions, and demonstrated that they
are thoughtful and collaborative when working on trickier contributions.</p>

<p>If PMC membership is also granted, committership comes with the privilege to
vote on matters that affect the wider Kudu community, including merging code,
moving forward on releases, and introducing new committers. Committership is
intended for those who are interested in the project’s future and want to take
a more active role in shaping it.</p>

<p>For more details about how the Apache Software Foundation defines contributors
and committers, see the <a href="https://community.apache.org/contributors/">Apache
Contributors</a> page.</p>


  </div>
</div>

      <footer class="footer">
        <div class="row">
          <div class="col-md-9">
            <p class="small">
            Copyright &copy; 2019 The Apache Software Foundation. 
            </p>
            <p class="small">
            Apache Kudu, Kudu, Apache, the Apache feather logo, and the Apache Kudu
            project logo are either registered trademarks or trademarks of The
            Apache Software Foundation in the United States and other countries.
            </p>
          </div>
          <div class="col-md-3">
            <a class="pull-right" href="https://www.apache.org/events/current-event.html">
                <img src="https://www.apache.org/events/current-event-234x60.png"/>
            </a>
          </div>
        </div>
      </footer>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script>
      // Try to detect touch-screen devices. Note: Many laptops have touch screens.
      $(document).ready(function() {
        if ("ontouchstart" in document.documentElement) {
          $(document.documentElement).addClass("touch");
        } else {
          $(document.documentElement).addClass("no-touch");
        }
      });
    </script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
            integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS"
            crossorigin="anonymous"></script>
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-68448017-1', 'auto');
      ga('send', 'pageview');
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.1.0/anchor.js"></script>
    <script>
      anchors.options = {
        placement: 'right',
        visible: 'touch',
      };
      anchors.add();
    </script>
  </body>
</html>

