Nathan Weston, Developer in Watertown, MA, United States
Nathan is available for hire
Hire Nathan

Nathan Weston

Verified Expert  in Engineering

Image Processing Developer

Location
Watertown, MA, United States
Toptal Member Since
June 24, 2019

Nathan has over 15 years of experience developing applications with a wide range of technologies. He's led the development team for Sapphire, a professional visual effects package, for over five years, during which time the team never missed a deadline. His focus is on system software, high-performance code, and back-end development. He enjoys the flexibility of freelancing and the challenge of taking on a wide range of projects.

Availability

Part-time

Preferred Environment

Emacs, Git, Windows, Linux

The most amazing...

...thing I've written is a tool for interactively designing realistic lens flare effects, and previewing them in real time.

Work Experience

Software Engineer

2015 - 2018
GrammaTech, Inc
  • Worked with a small team to research new techniques for software analysis, automatic program repair, and security hardening.
  • Worked with researchers to build a product based on binary rewriting research.
  • Developed prototypes and performed experiments to validate research ideas.
  • Contributed to presentations and written reports.
  • Created multiple successful prototypes for demonstrations to research sponsors.
Technologies: Lisp, Python, C++

Principal Software Engineer

2005 - 2015
GenArts, Inc
  • Led the development team for Sapphire Plug-ins, the premiere suite of visual effects plug-ins for film and video post-production.
  • Designed and implemented new effects using cutting-edge image processing algorithms.
  • Maintained the compiler and runtime for an in-house image processing language.
  • Wrote high-performance, multi-threaded and GPU-accelerated code.
  • Continually reviewed and improved development processes.
  • Ensured that algorithms produced identical results on CPU and GPU, across multiple operating systems and plug-in APIs.
Technologies: Python, Qt, C++, NVIDIA CUDA

GrammaTech IR for Binary Analysis

https://github.com/GrammaTech/gtirb
An intermediate representation of disassembled code, including a C++ API and a language-agnostic data format. The IR allows different disassembly and binary analysis tools to easily interchange data and combine results from different analyses.

Written in C++17 with an emphasis on modern coding standards and best practices.

Sapphire Flare Designer

https://www.youtube.com/watch?v=IdAnVZP8uaE
A tool for designing realistic lens flare effects. The UI is written in Python and Qt and allows the user to organize and efficiently manipulate dozens of individual elements with many parameters each, to create a vast range of effects.

The rendering backend uses highly-optimized C++ and CUDA to produce production quality results in real time.

I was the primary author and architect of the UI and wrote most of the rendering code. The version in the linked video was released in 2019, shortly after I left the company, but is not significantly different from the version I created.

Software Evolution Library

https://github.com/GrammaTech/sel
A library for programmatic manipulation of software. Used for research in automatic program repair, program synthesis, and other search-based software engineering techniques.

Languages

C++, C++11, Python, C++17, Common Lisp (CL), Lisp, Assembler x86, JavaScript

Paradigms

Object-oriented Programming (OOP), Parallel Programming, Functional Programming

Platforms

NVIDIA CUDA, Linux, Windows, MacOS

Other

Computer Graphics, Image Processing, Compilers, Static Analysis

Frameworks

Flask, Qt 5, Qt

Libraries/APIs

Vue

Tools

Git, Emacs

Storage

PostgreSQL, SQLite

2002 - 2004

Master of Science Degree in Computer Science

Brown University - Providence, RI

1998 - 2002

Bachelor of Arts Degree in Computer Science

Hamilton College - Clinton, NY

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring