<!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/">Releases</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://join.slack.com/t/getkudu/shared_invite/zt-244b4zvki-hB1q9IbAk6CqHNMZHvUALA">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="/ecosystem.html">Ecosystem</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>achennaka</td>
      <td>Abhishek Chennaka</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>adar</td>
      <td>Adar Dembo</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>alexey</td>
      <td>Alexey Serbin</td>
      <td>PMC</td>
    </tr>
    <tr>
      <td>awong</td>
      <td>Andrew Wong</td>
      <td>VP, PMC</td>
    </tr>
    <tr>
      <td>bankim</td>
      <td>Bankim Bhavsar</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>shenxingwuying</td>
      <td>Yuqi Du</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>
    <tr>
      <td>zhangyifan</td>
      <td>Yifan 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; 2023 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>

