<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    

    <meta name="author" content="The Apache Software Foundation">

    
      <meta name="keywords" content="news,new committer,new pmc member" />
    

    
      <title>Anthony Shaw (anthonyshaw) joins our team | Apache Libcloud</title>
    

    <!-- fav icons -->
    <link rel="shortcut icon" href="/images/favicon.png" />
    <link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />
    <link rel="apple-touch-icon-precomposed" href="/images/apple-touch-icon.png" />

    <link href="/blog/atom.xml" type="application/atom+xml" rel="alternate" title="Apache Libcloud Blog Feed" />

    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,400italic' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>

    <!-- Facebook OpenGraph tags -->
    <meta content="Apache Libcloud" property="og:site_name">
    
      <meta content="Anthony Shaw (anthonyshaw) joins our team" property="og:title">
    

    

    

    
      <meta content="article" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/blog/2015/11/18/anthony-shaw-joins-our-team.html" property="og:url">
    
    
      <meta content="2015-11-18T00:00:00+00:00" property="article:published_time">
      <meta content="https://libcloud.apache.org/about.html" property="article:author">
    

    
      
      <meta content="news" property="article:tag">
      
      <meta content="new committer" property="article:tag">
      
      <meta content="new pmc member" property="article:tag">
      
    

    <link href='/assets/global-fba222d7b312b9e480173d85ea10a926.css' rel='stylesheet' type='text/css' />
  </head>

  <body data-spy="scroll" data-target=".sidebar-nav" data-offset="80">
    <nav class="navbar navbar-fixed-top navbar-inverse" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <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="navbar-brand" href="/index.html"><img src="/images/libcloud_logo.png" class="navbar-logo" /> Apache Libcloud</a>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            
            
              <li ><a href="/" >Home</a></li>
            
              <li ><a href="/about.html" >About</a></li>
            
              <li ><a href="/getting-started.html" >Quick Start</a></li>
            
              <li ><a href="https://libcloud.readthedocs.org/en/stable/" target="_blank">Documentation</a></li>
            
              <li ><a href="/downloads.html" >Downloads</a></li>
            
              <li ><a href="/community.html" >Community</a></li>
            
              <li ><a href="/blog/" >Blog</a></li>
            
          </ul>
        </div><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>

    <div class="container main-container">
      <div class="row section page-content">
  <div class="col-lg-8 col-lg-offset-2">
    
<div class="post">
  
    <h2>Anthony Shaw (anthonyshaw) joins our team</h2>
  

  
  <span class="post-date-author">By Tomaz Muraus <span style="display:none">(<a href="https://plus.google.com/+TomazMuraus?rel=author">Google+</a>)</span>on Nov 18, 2015</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/tonybaloney">Anthony
Shaw</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Anthony
Shaw to join us as a committer and a PMC member and we are pleased to announce
that he has accepted.</p>

<p>Anthony has joined the community fairly recently, but he has already made a lot
of <a href="https://github.com/apache/libcloud/pulls?q=is%3Apr+author%3Atonybaloney+is%3Aclosed">substantial contributions</a>. Those contributions range from new Dimension
Data drivers and various related improvements to a proposal for a new <a href="https://github.com/apache/libcloud/pull/629">backup
API</a> for Backup as a Service products and projects.</p>

<p>While we are talking about the new backup API - we would like to encourage
everyone who is either a service provider offering Backup as a Service product
or a person interested in using this API to join us and <a href="https://github.com/apache/libcloud/pull/629">participate in the
discussion</a>. The more feedback we get, the better and more widely applicable
we can make this new API.</p>

<p>For anyone who would like to know more about Anthony here is his short bio:</p>

<blockquote>
  <p>Anthony Shaw works for the global system integrator Dimension Data as Head of
Innovation. Anthony has been working in the hosting/service provider industry
for the last 10 years for MSPs within Europe, North America and Australia in
various Product Management and Product Development roles. Anthony is an
open-source advocate and has been promoting the Libcloud project internally to
Dimension Data for the last 9 months as well as maintaining its driver.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>I think we will continue to see consolidation in IaaS providers over the next
12 months, so likelihood is the number of drivers will reduce, but the
importance of being cloud agnostic to people is becoming more apparent as some
are already being burnt by integrations into APIs that companies like Dell and
Ninefold have pulled the plug on. Libcloud is a key project for developers not
wanting to lock themselves too heavily to a vendor. I would also like to see
expansion of additional services like backup, load balancing and containers so
that users can still take advantages of these features through our driver.</p>
</blockquote>

<p>We are happy to have him in our team and we are looking forward to his future
participation and contributions.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/new-pmc-member.html" rel="tag">new pmc member</a></p>
    </div>
  </div>
</div>

Share : <a href="https://twitter.com/share" class="twitter-share-button"{count} data-via="libcloud" data-size="large" data-hashtags="cloud">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>

  </div>
</div>


      <hr />

      <footer>
        <div class="row">
          <div class="col-lg-12 text-center">
            <div class="footer-links">
  <p><a href="http://www.apache.org/licenses/">License</a> | <a
  href="/security.html">Security</a> | <a
  href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
  <a href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
  <a href="/credits.html">Credits</a> | <a href="/media.html">Media</a>
</div>

<div class="footer-text">
  <p class="">Copyright &copy; 2009-2022 <a href="https://www.apache.org/" target="_blank">The Apache Software Foundation</a></p>
  <p class="">Apache Libcloud, Libcloud, Apache, the Apache feather, and the Apache Libcloud project logo are trademarks of the Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
  <p class="">Site last updated on 2022-03-29 09:38:01 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-cda7136d9b37b9359b7069f5495d767d.js' type='text/javascript'></script>

    

    <script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-23580482-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

  </body>
</html>
