David Souther

Sr Programmer Writer; Lead Instructor

David Souther professional headshot
USWashingtonSeattle

Work Experience

Amazon Web Services

Sr Programmer Writer2022-09-12Current

Lead engineer documeting the AWS Rust SDK. Creating informative documentation for all aspects of the Rust SDK. Developing cross-service scenarios to emphasize SDK utilities across the SDK language boundaries. Engineering guidance and mentorship for engineers in adjacent languages.

rust, amazon-web-services

Code Fellows

Lead Instructor2022-03-10Current

Lead instructor for Code Fellows Javascript 201 and Javascript 401, providing students with an introduction to Javascript, HTML, and CSS web development in 201 and Javascript full stack development using React and NextJS in 401.

javascript, html, css, react, nextjs, instructing, interview training, curriculum development

SpaceX Starlink

Sr Software Engineer2021-07-012022-06-06

Responsible Engineer for a global ISP's ground network off-prem cloud tooling, including global data acquisition, Data Center Infrastructure Management (DCIM), automated authentication, and more. Migrated and managed these systems in a variety of VM & Service Mesh settings. RE and Subject Matter Expert for a DDoS detection, alerting, and mitigation system protecting a global ISP's core infrastructure and XXm customers.

rust, c++, kubernetes, python

GCP - Compute Front End

TLM2020-07-012021-07-31

As a tech lead and manager, I set strategic direction for our feature area as well as mentoring and guiding my team in their engineering and career. Focusing on the Managed Instance Group feature set, my team delivers GCP UI features to enable cloud customers to manage their deployments. We work closely with a number of teams in the cloud org to ensure our deliverables fit in the larger cloud ecosystem.

google-cloud-platform, google-compute-engine, TypeScript

Google

Software Engineer2015-06-012021-07-31

As a Googler, I have worked on a variety of projects as an engineer, and have had the pleasure of mentoring and leading my colleagues for the duration.

GCP - Cloud Topology

TL2018-11-012020-06-30

Cloud Topology allows GCP customers to visualize their large scale deployments in the Cloud ecosystem. It has been demoed as EAP for Stackdriver Kubernetes views, and is currently available to Anthos / ASM customers on their service dashboard. Cloud Topology must render large amounts of data in end-user browers. Solving this across our team required novel solutions both in our rendering code, as well as how to format and package data to send to the user's device.

TypeScript, Google Cloud Platform, Graph Algorithms

Chatham University

Lecturer2016-08-012017-05-31

As a guest lecturer at Chatham University in Pittsburgh, PA, I taught an undergraduate business on the effects of technology in the 21st century. The course served as an overview of technological topics and their intersection with business ethics. Students learned how technology can be used to handle everyday business needs, while also exploring the implications of big data, always-on-connectivity, and many other topics effect their day to day lives in ways that are almost always unseen.

Google Shopping

Software Engineer2015-06-012017-04-30

Front End Engineer with Channel Intelligence. I lead development on a user interface to manage product-level experiments for shopping data. Architect of the core platform & tooling. Taught TypeScript & Angular to 3 other developers, with the team building over a dozen screens. Includes complex workflows to manage creating nuanced experimental hypotheses, treatments, and groupings. In prior quarters, I contributed to an effort across several working groups to migrate from existing GWT web UIs to modern, component-base Angular architectures. Brought a strong emphasis to TDD in FE development, including techniques, best practices, and general cheerleading. Worked with several groups to offer, and personally taught, several collegiate courses including a two-week intensive course on TDD & industry practices at Mt Holyoke College.

AngularJS, TypeScript

Mt Holyoke College & Google

Instructor2015-11-012017-01-31

Working with colleagues at Google, I developed and taught winter courses in mobile software development and team software engineering at Mt Holyoke College and Smith University. Our materials covered test-driven development in Python, Android development on real devices, and included significant team project components.

Microsoft TEALS

Instructor2013-08-012016-05-31

TEALS pairs computer science professionals with an in-classroom high school teacher to augment a school's technical literacy program offerings. In this role, I served as a lecturer and TA for several high school classes in NYC and Pittsburgh. Classes included intro to programming with Scratch, intro to programming with Python, and AP Computer Science in Java. Beyond teaching and running labs, I wrote several utilities for students to have a "Python Scavenger Hunt", needing to upload programs to solve simple python challenges. Think Leet Code for Kids.

mit-scratch, python

Third Cat, LLC

Software Architect, Consultant, Training Instructor2014-06-012015-07-31

Owner and Founder, Third Cat LLC. A consulting firm specializing in Javascript technologies, including Node.js backend and AngularJS frontend solutions. Clients include Data Online, a manufacturing firm in New Jersey, where we architected and built a scalable, real-time monitoring platform for various client consumables, and trained the team in building Single Page Applications (SPAs) with AngularJS. We provide ongoing on-site training for new developers on the MEAN stack platform. Projects include work with DartmouthX, providing visualizations for an online engineering course. Long term engagements also include work with ProTech, a leading provider of IT training solutions, as a Javascript and Web Development trainer.

node.js, socket.io, redis, angularjs

Novus Partners Inc

Software Architect 2013-10-01 2014-06-30

As head of Front End Development at Novus Partners, I lead a team of four developers (including myself) in a complete front-end rewrite. Our previous platform was a brittle Scala Server Pages implementation. After releasing this rewrite, our slick & fast AngularJS frontend has become decoupled from the Scala backend, allowing both services to become much more focused and performant. We also build and maintain the NVD3 open-source charting library. I have led an ongoing effort to refactor the original prototype codebase into a maintainable, extensible, and testable library that will serve front-end charting for years to come.

angularjs, node.js, gruntjs, scala

The New York Times

Software Engineer2012-07-012013-10-31

Full-stack developer of the NYT5 rebuild team, rebuilding the nytimes.com property from the ground up. The core online presence of the New York Times handles 45 million unique monthly visitors. Core member of the Prorotype team, building and testing potential new features for the proto.nytimes.com domain. Responsible for the backend stack, including Node servers for data management and AB testing, as well as a variety of systems administration to handle our traffic. Invited to speak on emerging technologies to internal development groups, as well as on behalf of the Times at regional college tech events and tech meetups. Internal git guru.

nodejs, coffeescript, git

Potomac Fusion, inc

Software Engineer2011-09-012012-06-30

After a week at PFI, I was asked to join a new internal team developing PFI's core data handling framework. Synapse is a tool in the Government Open Source Software realm designed to bring large-scale data handling and visualization to the browser. Our technology handles tens to hundreds of thousands of records shared between discreet OWF widgets, small iframe applications in a shared web desktop. These widgets provide a range of visualizations and tools for intelligence analysts to make the most use of the disparate data sources streaming in from the modern threat space, enabling them to make decisions that save lives of both military troops and civilians around the world.

java, javascript, owf, synapse

Design Delegates

Software Architect2010-10-012011-07-31

Responsible for the entire technology stack at a start-up software development company. Accomplishments include developing several platforms to facilitate web programing, implementing a continuous integration server across several languages and frameworks, and architecting several medium-scale projects with a team of five developers and designers. Our largest project was a field agent tracking system, responsible for maintaining scheduling and routing information for hundreds of in-store field marketing agents in Australia. The project combined a variety of technologies, including a scalable PHP backend, dynamic mobile frontend, and extensive reporting capabilities. In the course of the project, we developed [JEFRi](http://jefri.org), a Javascript Entity Framework to facilitate our mobile development work.

javascript, jefri, php, crosslight, kohana, sqlite, linux

Entre Technology Services, LLC

Software Developer2007-09-012010-09-30

I managed medium-scale software projects for several Montana companies, including the Stillwater Mining Company, Town Pump of Montana, and Crowley Fleck Law Firm. Developed and implemented a unique solution to e-discovery motions. Projects included writing OSHA tracking software, modules for inventory management software, and support on web development for several clients.

java, .net, entity-framework, linux

Education

Seattle U

Master of Science Computer Science2011-01-012011-01-01

Part time Master's student, pursuing a research focus on approaches to teaching software engineering to mid-career professionals with little to no programming experience.

Rocky Mountain College

B.S. Mathematics2007-08-012011-05-31

Tutored for three years. Brought a group of math majors together for regular study sessions, helping all of us work through not just our homework, but the big ideas on topics from philosophy to religion to science, and how they fit together with the material we studied.

Rocky Mountain College

B.S. Computer Science2006-08-012011-05-31

Earned two Bachelors of Science (Computer Science, Mathematics) in five years. Worked on several software development projects with other students in the CS department, including tools to help computational biology research students perform genome analysis on Rocky's local computing cluster.

Projects

DavidSouther/cpsc5200

F# implementation of a parser for a mini-Java programming language (emits to .net CLR).

DavidSouther/software_craftsmanship

Software Craftsmanship for the Lay Person is an introduction project based book for a first exposure to programming. The main text is language agnostic, while the three workbooks have project-specific instruction in Python, TypeScript, and Rust.

DavidSouther/Montana-News-Archive

Montana News Archive is a long-term archival and search tool for local broadcasting companies. This project has been used by a number of Montana and regional news networks to include historical archival footage in their broadcasts.

DavidSouther/jterm-Mandelbrot

Android Mandelbrot explorer, for the 2017 JTerm android class.

DavidSouther/softd

Pure typeScript CPU-only 3d software renderer, capable of rendering scenes with constant ambient lighting and thousands of polygons at 60fps.

DavidSouther/song-flux-theory

A blog post overviewing the theory of song-flux. song-flux is an early implementation and description of Reactive stateful programming, and includes ideas that have seen production use in a number of popular open source packages.

DavidSouther/StarTracks

Simple visualization of astronomical main-sequence star data.

publications

Is stat() an expensive system call?https://stackoverflow.com/questions/17149668/is-stat-an-expensive-system-call/17149924#171499242013-06-01

Format Date time in AngularJShttps://stackoverflow.com/questions/12920892/format-date-time-in-angularjs/12921096#129210962012-10-01

Using node-inspector with Grunt taskshttps://stackoverflow.com/questions/11171013/using-node-inspector-with-grunt-tasks/12739260#127392602012-10-01

Posting input type file problem No Value postedhttps://stackoverflow.com/questions/7086465/posting-input-type-file-problem-no-value-posted/7086476#70864762011-08-01

Extending from two classeshttps://stackoverflow.com/questions/5836662/extending-from-two-classes/5836714#58367142011-04-01

Graph Visualization by Organizing Connections in Collapsible Hierarchical Graphshttps://www.tdcommons.org/dpubs_series/2996/2019-06-01