<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/png" href="/favicon.ico"> <link rel="canonical" href="https://www.mcmillen.dev/resume.html"> <link rel="alternate" type="application/atom+xml" href="https://www.mcmillen.dev/feed.atom" title="Colin McMillen's Blog - Atom"> <title>Resumé | Colin McMillen</title> <link rel="preconnect" href="https://fonts.gstatic.com"> <link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@500;700&display=block" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Fira+Mono:500&display=block" rel="stylesheet"> <link rel="stylesheet" href="/pygments.css"> <link rel="stylesheet" href="/style.css"> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@mcmillen"> <meta name="twitter:title" content="Resumé | Colin McMillen"> <meta name="twitter:description" content="Lead Developer February 2020 – Present"> </head> <script> function fixEmails() { const mailtoArray = [ 'm', 'a', 'i', 'l', 't', 'o', ':', 'c', 'o', 'l', 'i', 'n', '@', 'm', 'c', 'm', 'i', 'l', 'l', 'e', 'n', '.', 'd', 'e', 'v']; const mailtoLink = mailtoArray.join(''); const anchors = document.getElementsByTagName('a'); for (let i = 0; i < anchors.length; i++) { const anchor = anchors[i]; if (anchor.href == 'mailto:email@example.com') { anchor.href = mailtoLink; if (anchor.innerText == 'colin at mcmillen dot dev') { anchor.innerText = mailtoLink.substring(7); } } } } </script> <body onload="fixEmails()"> <div id="page-container"> <div id="content-wrap"> <div id="header"> <div class="content"> <a href="/" class="undecorated">Colin McMillen</a> <span style="float: right;"><a href="/feed.atom"><img src="/img/rss.svg" alt="Atom feed" style="width: 17px; height: 17px; margin-bottom: 1px;"></a></span> <span style="float: right;"><a href="https://twitter.com/mcmillen"><img src="/img/twitter.svg" alt="@mcmillen"></a></span> </div> </div> <div class="content"> <h1 id="resume">Resumé</h1> <h2 id="semicolin-games">SemiColin Games</h2> <p>Lead Developer<br> February 2020 – Present</p> <h2 id="google">Google</h2> <p>Staff Software Engineer<br> September 2009 – February 2019</p> <p>Projects: <a href="https://canvas.apps.chrome">Chrome Canvas</a>, <a href="https://www.androidauthority.com/google-handwriting-keyboard-android-wear-2-0-devices-764084/">Android Wear Handwriting</a>, <a href="https://digitalattackmap.com">Digital Attack Map</a>, <a href="https://www.google.com/search?q=define+mortgage">Google Dictionary</a>, <a href="https://translate.google.com">Google Translate</a>, <a href="https://books.google.com">Google Books</a>, & <a href="https://www.google.com/recaptcha">reCAPTCHA</a>.</p> <h2 id="recaptcha">reCAPTCHA</h2> <p>Co-Founder & Software Engineer<br> June 2007 – September 2009</p> <h2 id="carnegie-mellon-university">Carnegie Mellon University</h2> <p>Ph.D. Computer Science<br> September 2003 – May 2009</p> <h2 id="university-of-minnesota">University of Minnesota</h2> <p>B.S. Computer Science<br> September 1999 – May 2003</p> </div> </div> <div id="footer"> <div class="content"> © 2023 <a href="/" class="undecorated">Colin McMillen</a>. No cookies, no tracking. </div> </div> </div> </body> </html>