| M.S., Computer Science | May 2003 | Virginia Tech, 
      Blacksburg, VA | GPA: 3.85/4.0 | 
  
    | B.S., Computer Engineering | May 2001 | Virginia Tech, 
      Blacksburg, VA | GPA: 3.11/4.0 | 
  
    | 
        Maintain Cadenza,
          a collection of utility types and extension methods for .NET.Technical Reviewer for Cross-Platform .NET.Designed and implemented many
          System.Diagnostics and
          Mono.Unix types for 
          Mono.Added Generics support to 
          mdoc.Wrote and maintained the Interop with Native
          Libraries document.Designed and implemented 
          Mono.Fuse, 
          a FUSE wrapper which
          allows implementing Linux filesystems from any .NET language.Upsilon Pi Epsilon Computer Science Honor Society, 2002-2003.Association for Computing Machinery, 1996-2003; Vice president,
          1999-2000.Eagle Scout Award, Boy Scouts of America, 1996. | 
  
    | Microsoft Corporation | 3/2016 - Present | 
  
    | Software Engineering Manager 
        Developed .NET for Android,
          which allows running apps written in C# on Android, with full
          interaction between Java and C# via JNI.Managed remote team spanning 9+ timezones developing
          .NET for Android,
          part of .NET MAUI.Contributed to success of .NET MAUI with Android platform support,
          performance improvements to the developer debugging experience,
          speeding up app build and deploy times.Wrote several metaphorical books-worth of commits detailing how all pieces fit together.Worked with PM team to prioritize feature design and development.Led the migration from the Mono runtime to the .NET runtime via MonoVM.Migrated .NET for Android native code from C to C++.Wrote Irony to parse
          Javadoc, transform into C# XML documentation comments,
          to provide documentation for C# bindings of thousands of Java types and members.Wrote JNI backends that worked under .NET Core, so that many
          .NET for Android unit tests could run on desktop macOS and Windows machines.700+ commits to dotnet/java-interop,
          900+ to dotnet/android,
          1000+ to mono/mono. | 
  
    | Xamarin Inc. | 6/2011 - 3/2016 | 
  
    | Hacker 
        Developed Xamarin.Android,
          working on the runtime, C# callable Android binding, documentation
          importation.Provided Q&A for Xamarin.Android and other projects on
          stackoverflow.com,
          mailing lists, bugzilla, and IRC.Maintained mdoc, Mono's
          suite of documentation tools. | 
  |  | 
  
    | Novell, Inc. /
      Mono | 3/2009 - 5/2011 | 
  
    | Software Engineer II 
        Developed Mono for Android,
          working on the runtime, C# callable Android binding, documentation
          importation.Provided Q&A for Mono for Android and other projects on
          stackoverflow.com,
          mailing lists, bugzilla, and IRC.Maintained mdoc, Mono's
          suite of documentation tools.Developed MonoTouch,
          integrating the OpenTK GLES
          bindings for use on iPhone,
          binding some of the CocoaTouch frameworks, and added
          System.Data
          support.
        Maintained DbLinq, which provides
          LINQ-to-SQL support for MySQL, SQLite, and other databases,
          integrating DbLinq for Mono's System.Data.Linq.dll
          implementation. | 
  |  | 
  
    | Novell, Inc. /
      OpenOffice.org | 8/2007 - 3/2009 | 
  
    | Software Engineer II | 
  |  | 
  
    | Cadmus KnowledgeWorks, 
      Richmond, VA | 8/2003 - 7/2007 | 
  
    | Software Engineer 
        Maintain 
          Cadmus RapidInspector™, a
          Java Web Start
          validation & submission program for
          Classic Mac, Mac OS X, and Windows platforms,
          which used JNI for file validation.Maintain several 
          JSP
          sites for both internal and 
          public
          use.Designed and implemented Perl 
          modules to interact with a 
          REST web service
          utilizing RDF.Designed and maintain several internal Perl modules which interact
          with a Java 
          J2EE application 
          using SOAP.Designed a Perl module deployment architecture to permit atomic
          installations and version downgrades.Wrote guidelines for CVS 
          usage. | 
  |  | 
  
    | Virginia Tech, 
      Blacksburg, VA | 8/2002 - 6/2003 | 
  
    | Graduate Research Assistant - 
        CITIDEL Digital Library | 
  |  | 
  
    | Eastman Kodak Company, 
      Rochester, NY | 5/2002 - 8/2002 | 
  
    | Intern/Advanced Development 
        Wrote a Managed Extensions for C++ .NET wrapper for
          Picture Metadata
          Toolkit (PMT).Enhanced thread-safety, researched lifetime management, fixed
          defects in 
          PMT.Prototyped future 
          PMT
          designs. | 
  |  | 
  
    | Virginia Tech, 
      Blacksburg, VA | 8/2001 - 5/2002 | 
  
    | Graduate Research Assistant - 
        CITIDEL Digital Library 
        Explored use of XML, XML Schema, to store history links for an
          online digital library.Wrote XML stylesheet transforms to translte between XML Schema
          types, facilitating the transfer of digital library metadata.Prototyped user interface for 
          Viaduct,
          a web application to alow professors to create and publish lesson
          plans online. | 
  |  | 
  
    | 
        Managed a remote team spanning 9+ timezones maintaining
        .NET for Android
        (https://learn.microsoft.com/dotnet/android).
       
        .NET for Android allows running apps written in C# on Android, with full
          interaction between Java and C# via Java Native Interface (JNI).Worked with PM team to determine priorities of feature design and development.Communicate project status and updates to stakeholders, open-source community.
          Contributed to the success of .NET MAUI by strengthening Android platform support and
          implementing key performance enhancements that improved developer debugging workflows.
          Optimized build and deploy processes, significantly improving productivity for cross-platform developers.
        Improved compatibility between .NET and .NET for Android by leading the migration from the
          Mono runtime to the .NET runtime via MonoVM backend.Improved type safety and performance by migrating native code from C to C++.Provided documentation for C# bindings on thousands of Java types and members by
          writing an Irony 
          (https://github.com/IronyProject/Irony)
          parser to extract Javadoc and transform into C# XML documentation comments.Allowed some unit tests to easily run on CI by writing JNI backends that worked
          under .NET Core, allowing them to run on desktop macOS and Windows.Wrote several metaphorical books-worth of commits detailing how all pieces fit together.Led the migration from the Mono runtime to the .NET runtime via MonoVM.Migrated .NET for Android native code from C to C++.Wrote JNI backends that worked under .NET Core, so that many
          .NET for Android unit tests could run on desktop macOS and Windows machines.
          Contributed over 2,500 code commits across major .NET and Mono repositories, including
          dotnet/java-interop,
          dotnet/android, and
          mono/mono,
          driving improvements in cross-platform compatibility, Android support, and runtime performance.
         | 
  |  | 
  
    | Microsoft Corporation, 
      Redmond, WA | 5/2000 - 8/2000 | 
  
    | Software Design Engineer 
        Wrote ADepends, a .NET 1.0 SDK sample which displays a graph
          of Assembly dependencies.Wrote AdProfiler, a .NET 1.0 SDK sample which displays all
          of the AppDomains and Assemblies currently loaded within a
          process. | 
  |  | 
  
    | Eastman Kodak Company, 
      Rochester, NY | 12/1999 - 1/2000 | 
  
    | Co-op/Advanced Development 
        Ported image manipulation libraries to Linux.Compared executable size and speed between Linux and Win32
          exectuables.Wrote a well-received report detailing changes required for 
          Linux port, summary of performance results. | 
  |  | 
  
    | IBM, RTP, NC | 1/1999 - 8/1999 | 
  
    | Co-op/Pervasive Computing Group 
        Wrote HTML transforms (e.g. replacing tables with lists).Helped co-workers with C++ and Windows API issues.Participated in designing the IBM TransProxy TextEngine,
          which applies device-dependent transformations to HTML and XML 
          input, generating HTML or XML.Wrote component-level-design documentation for the
          TextEngine.Implemented TextEngine modules in Java.Explored design alternatives for use in the TextEngine. | 
  |  | 
  
    | IBM, RTP, NC | 1/1998 - 8/1998 | 
  
    | Co-op/Mobile Equalizer Build Team 
        Designed and implemented software "agents" for a persistent
          storage mechanism.Compiled and tested IBM Mobile Equalizer.Wrote build scripts to facilitate NLS builds of Mobile
          Equalizer.Created/updated build process documentation.Trained replacement in Mobile Equalizer build process.Setup and repaired developers machines. | 
  |  | 
  
    | Eastman Kodak Company, 
      Rochester, NY | 9/1995 - 8/1996 | 
  
    | Software/Consumer Products Tester 
        Tested effect of hue, saturation, and contrast 
          adjustments on color print image quality.Programmed utilities for the Sun Solaris Operating System. | 
  
    | Operating Systems | • Linux | • Microsoft Windows | • Apple macOS | 
  
    | Languages | • C, C++, C#, Java | • HTML, CSS, XML, XSLT | • Perl | 
  
    | Software | • Microsoft Office | • Microsoft Visual Studio .NET | 
  
    | Component Systems | • OOP | • Component Object Model | • Microsoft .NET |