I am a software developer currently working full-time at Google in Mountain View, CA.
If you want, you can look at my resume or contact me at nathan@nathanmswan.com.
During the summer of 2017, I worked as a software developer for Suuji, a St. Olaf CURI project performing research into math education. As part of the applications team, I built and modified various apps and games intended to supplement an elementary math curriculum.
Though most Computer Science assignments are minor, I have occasionally been assigned a large project.
muninn
is a memory-diagram editor I built with a team for our Software Design class. It provides an easy way to draw representations of how the stack and heap change in the run of a C++
program. It saves to a readable text file format and exports to HTML. It is written in C++
and uses the Qt
user-interface library.
Much of my experience comes from the various projects I've worked on outside of work and school.
antimander
is a suite of tools which quickly partitions states' U.S. Census blocks into districts of approximately equal populations, prototyping a possible algorithmic solution to the redistricting process for the House of Representatives and state legislatures. Most of the software is written in C++
, with some helper files written in Python
.
wms
is a simulator of an invented discrete-time particle physics. The interface is a website written in HTML
and JavaScript
, while the server with the actual physics code is written in D
.
I have made an assortment of contributions to open-source projects, from simple bug fixes to the implementation of useful new features.
Pull Request | Name | Description | Language |
---|---|---|---|
kiith-sa/D-YAML/pull/11 | Add 'in' operator for mappings |
I added an operator normally used for D 's built-in associative arrays to mappings for this YAML library.
|
D |
rejectedsoftware/vibe.d/pull/274 | Allow for RFC 2616 chunk extensions |
I fixed a bug in vibe.d 's HTTP client which treated chunk extensions as errors.
|
D |
rejectedsoftware/vibe.d/pull/264 | fix the buggy function parseRFC822DateTimeString | I fixed a date-time parser that was not working properly. | D |
dlang/dub/pull/28 | add sourcePaths field to package.json |
I added a configuration option to dub , which is now the official D package manager.
|
D |
dlang/dmd/pull/1178 | Added no-main detection |
I modified dmd , the D compiler, to read the linker's error messages and issue a clarifying message for when there is no main() function.
|
C++ |
dlang/dmd/pull/651 | Comments in response file |
I added the ability to put comments in dmd response files, i.e. files which contain command line arguments.
|
C++ |