David Souther

Sr Examples Engineer; Lead Instructor

David Professional Photo
USWashingtonSeattle

Roles & Positions

Amazon Web Services

Sr Software Engineer2022-09-12Current

Sr engineer creating sample code and applications using the AWS SDK for Rust (example repo). Primary duties are writing informative code samples for all aspects of the Rust SDK. Longer-term projects develop cross-service scenarios to emphasize SDK utilities across the SDK language boundaries. These examples show customers "real-world" approaches to implement software projects which combine multiple AWS SDKs. Highlights include a REST system using Amazon RDS Data & Amazon SES, and a photo asset manager using Amazon S3 Glacier storage, Amazon Rekognition image tagging, and Amazon SQS notifications. Engineering guidance and mentorship for engineers in adjacent languages.

rust, amazon-web-services

Code Fellows

Lead Instructor2022-03-10Current

Lead instructor for Code 401: Advanced Software Development in Full Stack JavaScript. Educational duties include online classroom instruction, career coaching, curriculum development, and student evaluation. Students consistently ranked my courses at 100 net promoter score, both on weekly survey and course final evaluations. Organized & lead an instructor-wide project revamping the school's white-boarding process. This project rewrote the white-boarding guide, formalized a rubric for grading whiteboards & tech interviews, and revamped problem & training materials for a dozen instructors across four languages. Code Fellows was ranked as a 2023 top coding boot camp by Fortune Education.

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 Xm customers.

rust, c++, kubernetes, python

GCP - Compute Front End

TLM2020-07-012021-07-31

As a tech lead, I set strategic direction for our feature area as well as mentoring and guiding my team in their engineering and career. I Lead a team of 10 (4 direct) migrating cloud management tool from AngularJS to Angular. During the migration, I organized additional feature work to maintain market parity and leadership during the migration.

As a manager, I developed junior and Noogler engineers in Cloud, Angular, and Typescript. I successfully promoted an L4 Noogler to L5 in three performance review cycles and an L3 Googler to L4 during the second cycle as manager, and guided an L3 who received an NI through a PIP who was then promoted to L4 two cycles after departure. I achieved this through managing and mentoring junior engineers, writing performance reviews and promotion packets, and coordinating task priority and HR concerns.

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

GCP - Cloud Topology

TL2018-11-012020-06-30

Cloud Topology allows GCP customers to visualize their large scale deployments in the Cloud ecosystem.

  • I created a rich kubernetes visualization, capable of rendering 10k nodes at 60fps and performing hierarchical graph layout in <1s, by writing high-performance graph rendering engine and conducting research with internal and external k8s users.
  • I created a graphical data model & visualization to improve situational awareness of k8s cluster communications patterns, measured by early adopters reporting improved cluster deployment actions using Google Kubernetes Engine, achieved through researching and providing actionable details from early adopter teams.
  • I Demonstrated and enabled testing kubernetes clusters of 10k nodes by building a large scale kubernetes test bed, making it available and documented for internal teams.
Typescript, Kubernetes, Istio, Kompose, Svg, Microservices, Serverless, Graph rendering, Visualization

Chatham University

Lecturer2016-08-012017-05-31

As a guest lecturer at Chatham University in Pittsburgh, PA, I taught an undergraduate business course 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 how many engineering tools have an effect on 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. I taught internal courses on TypeScript & Angular, with my teams 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. I brought a strong emphasis to Test Driven Develpment in our FE environment, including techniques, best practices, and general cheer leading. I 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.

Angular, AngularJS, Dart, 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 Architect2013-10-012014-06-30

As head of Front End Development at Novus Partners, I lead a team of four developers 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 in 2012. 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

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, 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 University

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/computron5k

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