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 |