<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en-us" class="tk-proxima-nova">
<head>
  <script type="text/javascript" src="//use.typekit.net/rju7ota.js"></script>
  <script type="text/javascript">try{Typekit.load();}catch(e){}</script>

  <title>Matt DuVall</title>

  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="author" content="Matt DuVall" />
  <meta name="description" content="Matt DuVall blog" />
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />

  <link type="text/css" rel="stylesheet" href="/assets/syntax-fd490a6fa8e9083dc9b225946537b3c9050f3c26ca45769acf36fdd6ef53dc00.css">
  <link type="text/css" rel="stylesheet" href="/assets/screen-769a2e494e97058861ecc6d39cab6d147a4a8de05a4a234a0a36490adec02a03.css">
  <link type="text/css" rel="stylesheet" href="/assets/mobile-f117be5ed09be361010f571bcb0d7fc7aff83ff0b3fdfb8ec9e3f38a328e1fee.css">
  
  <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />

  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-31424525-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>
</head>
<body>
  <div class="Blog">
    <div>
  <header class="Header Grid">
  <div class="Grid-cell u-size1of4">
    <a href="/" class="Logo">MD</a>
  </div>

  <div class="Grid-cell u-size3of4 u-pushContent Header-items">
    <a href="/archive">Posts</a>
  </div>
</header>


  <div class="Grid">
    <div class="Grid-cell u-size1of4 About-panel">
      <div>
        <h2 class="Post-header">
          About
        </h2>
        <span>
          <p>I'm Matt. I am an engineer in Los Angeles, California. You can find me tinkering on systems, interfaces and anything in between.</p>
          <p>I currently work at Stripe, where I work on our machine learning products team. If you want to know more, follow me on <a href="https://www.twitter.com/mduvall_">Twitter</a>.</p>
        </span>
      </div>
    </div>

    <div class="Grid-cell u-size2of4 u-pushContent Posts-panel">
      
        <div class="Post">
          <div>
            <h2 class="Post-header u-pullHeaderBottom">
              <a href="/swiping-views-in-ios">Swiping Perspective Views in iOS</a>
              <span class="Post-date">19 September 2015</span>
            </h2>
            <div>
              Deconstructing how to swipe and apply perspective to views in iOS
            </div>
          </div>
        </div>
      
        <div class="Post">
          <div>
            <h2 class="Post-header u-pullHeaderBottom">
              <a href="/learning-android-transitions">Learning Android: Transitioning</a>
              <span class="Post-date">21 July 2014</span>
            </h2>
            <div>
              An investigation into how to animate transitions between views in Android
            </div>
          </div>
        </div>
      
        <div class="Post">
          <div>
            <h2 class="Post-header u-pullHeaderBottom">
              <a href="/fun-with-selects">Fun with Selects</a>
              <span class="Post-date">01 July 2014</span>
            </h2>
            <div>
              Best practices on how to override the native select menus on browsers
            </div>
          </div>
        </div>
      
        <div class="Post">
          <div>
            <h2 class="Post-header u-pullHeaderBottom">
              <a href="/dissecting-delight-stripe-checkout-iii">Dissecting Delight: Stripe Checkout III</a>
              <span class="Post-date">04 May 2014</span>
            </h2>
            <div>
              Another perspective on animating text inside of disabled inputs
            </div>
          </div>
        </div>
      
        <div class="Post">
          <div>
            <h2 class="Post-header u-pullHeaderBottom">
              <a href="/dissecting-delight-stripe-checkout-ii">Dissecting Delight: Stripe Checkout II</a>
              <span class="Post-date">27 April 2014</span>
            </h2>
            <div>
              A look into how we can intuitively improve form validation
            </div>
          </div>
        </div>
      
      <div class="Grid-cell u-size1of4"></div>
    </div>
  </div>
</div>

  </div>

  <script type="text/javascript" src="/assets/fastclick-b69740cb0c81ca037281b9254c2dc3a81b0c338ddf8977ca3f0fac823dec6eb4.js"></script>
  <script type="text/javascript">
  window.addEventListener('load', function() {
      FastClick.attach(document.body);
  }, false);
  </script>
</body>
</html>
