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++ |