diff --git a/docs/404.html b/docs/404.html index 0925ddd..9c2251b 100644 --- a/docs/404.html +++ b/docs/404.html @@ -1 +1 @@ -404: This page could not be found

404

This page could not be found.

\ No newline at end of file +404: This page could not be found

404

This page could not be found.

\ No newline at end of file diff --git a/docs/David_Souther_Resume_2024-04-05.pdf b/docs/David_Souther_Resume_2024-04-05.pdf new file mode 100644 index 0000000..b006d39 Binary files /dev/null and b/docs/David_Souther_Resume_2024-04-05.pdf differ diff --git a/docs/_next/static/SBwn9sZOGEw6I_SY9crSO/_buildManifest.js b/docs/_next/static/vYmu67NJnpmnO7J4ltKsM/_buildManifest.js similarity index 100% rename from docs/_next/static/SBwn9sZOGEw6I_SY9crSO/_buildManifest.js rename to docs/_next/static/vYmu67NJnpmnO7J4ltKsM/_buildManifest.js diff --git a/docs/_next/static/SBwn9sZOGEw6I_SY9crSO/_ssgManifest.js b/docs/_next/static/vYmu67NJnpmnO7J4ltKsM/_ssgManifest.js similarity index 100% rename from docs/_next/static/SBwn9sZOGEw6I_SY9crSO/_ssgManifest.js rename to docs/_next/static/vYmu67NJnpmnO7J4ltKsM/_ssgManifest.js diff --git a/docs/blog.html b/docs/blog.html index ba47518..1f91f00 100644 --- a/docs/blog.html +++ b/docs/blog.html @@ -1 +1 @@ -David Souther

Posts

\ No newline at end of file +David Souther

Posts

\ No newline at end of file diff --git a/docs/blog.txt b/docs/blog.txt index 3e609f1..7343617 100644 --- a/docs/blog.txt +++ b/docs/blog.txt @@ -1,5 +1,5 @@ 1:HL["/_next/static/css/8089f6746c126975.css",{"as":"style"}] -0:["SBwn9sZOGEw6I_SY9crSO",[[["",{"children":["blog",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] +0:["vYmu67NJnpmnO7J4ltKsM",[[["",{"children":["blog",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] 4:I{"id":7767,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} 5:I{"id":7920,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} 8:I{"id":6852,"chunks":["13:static/chunks/13-a14f4f8488530559.js","599:static/chunks/599-57c8542fa14d7dc7.js","185:static/chunks/app/layout-3e0733cba7c240b0.js"],"name":"","async":false} diff --git a/docs/blog/behavioral_interviewing.html b/docs/blog/behavioral_interviewing.html index c8e34a6..05bcfb2 100644 --- a/docs/blog/behavioral_interviewing.html +++ b/docs/blog/behavioral_interviewing.html @@ -158,4 +158,4 @@

STAR to XYZ(W)

What have we covered?

Organizations want to hire candidates who will bring value to their teams. A robust hiring process allows organizations to use data to ensure they’re meeting that goal. An industry standard piece of that hiring process is the behavioral interview. This interview explores a candidate’s past performance, so that the organization can infer their future behavior. Candidates should use the STAR method to prepare their personal stories to make it easy for their interviewers to make that decision.

In this article, we followed the STAR-format narratives through two example stories. We saw how a hiring manager or interviewer might follow up on specific points of the stories, and how the candidate may answer those questions. We learned how to research prospective companies to tailor the stories to their values specifically. And for the last mile, we took two quick side trips to think about what questions we might ask our interviewers, and how to turn the STAR stories into XYZ resume bullet points on our resumes.

- \ No newline at end of file + \ No newline at end of file diff --git a/docs/blog/behavioral_interviewing.txt b/docs/blog/behavioral_interviewing.txt index e6e2bb8..1eade84 100644 --- a/docs/blog/behavioral_interviewing.txt +++ b/docs/blog/behavioral_interviewing.txt @@ -1,5 +1,5 @@ 1:HL["/_next/static/css/8089f6746c126975.css",{"as":"style"}] -0:["SBwn9sZOGEw6I_SY9crSO",[[["",{"children":["blog",{"children":[["id","behavioral_interviewing","d"],{"children":["__PAGE__?{\"id\":\"behavioral_interviewing\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] +0:["vYmu67NJnpmnO7J4ltKsM",[[["",{"children":["blog",{"children":[["id","behavioral_interviewing","d"],{"children":["__PAGE__?{\"id\":\"behavioral_interviewing\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] 4:HL["/_next/static/css/188c8aff756c3f67.css",{"as":"style"}] 5:I{"id":7767,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} 6:I{"id":7920,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} diff --git a/docs/blog/fuzzy_homomorphic_endofunctor.html b/docs/blog/fuzzy_homomorphic_endofunctor.html index 820b2b7..123c544 100644 --- a/docs/blog/fuzzy_homomorphic_endofunctor.html +++ b/docs/blog/fuzzy_homomorphic_endofunctor.html @@ -6,4 +6,4 @@

However, from any given point, the LLM is not locked into a single predetermined path. There exists a fuzzy radius within which it can branch off onto distinctly different but equally valid trajectories over the manifold's surface. By leveraging vast neural weights trained on immense language data, LLMs gain the ability to fluidly navigate and explore multiple plausible communicative paths through the high-dimensional language surface.

Altering the initial prompt is akin to repositioning the LLM on another part of the manifold to reset its constrained exploration. This flexibility to search out diverse meaningful continuations from any context, while respecting linguistic constraints, underlies the generalization and open-ended creative expression abilities of large language models.

In essence, LLMs are semi-intelligent multidimensional explorers intelligently mapping out the convoluted hypersurface representing a natural language's full scope of meaningful communication within a vast formal space of possible texts. Their generative behavior stems from learned high-dimensional geometry inextricably tied to human language itself.

- \ No newline at end of file + \ No newline at end of file diff --git a/docs/blog/fuzzy_homomorphic_endofunctor.txt b/docs/blog/fuzzy_homomorphic_endofunctor.txt index fade406..fabf8a7 100644 --- a/docs/blog/fuzzy_homomorphic_endofunctor.txt +++ b/docs/blog/fuzzy_homomorphic_endofunctor.txt @@ -1,5 +1,5 @@ 1:HL["/_next/static/css/8089f6746c126975.css",{"as":"style"}] -0:["SBwn9sZOGEw6I_SY9crSO",[[["",{"children":["blog",{"children":[["id","fuzzy_homomorphic_endofunctor","d"],{"children":["__PAGE__?{\"id\":\"fuzzy_homomorphic_endofunctor\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] +0:["vYmu67NJnpmnO7J4ltKsM",[[["",{"children":["blog",{"children":[["id","fuzzy_homomorphic_endofunctor","d"],{"children":["__PAGE__?{\"id\":\"fuzzy_homomorphic_endofunctor\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] 4:HL["/_next/static/css/188c8aff756c3f67.css",{"as":"style"}] 5:I{"id":7767,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} 6:I{"id":7920,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} diff --git a/docs/blog/knowledge_that_by_of.html b/docs/blog/knowledge_that_by_of.html index 5815ac3..97fa2c0 100644 --- a/docs/blog/knowledge_that_by_of.html +++ b/docs/blog/knowledge_that_by_of.html @@ -14,4 +14,4 @@

Language serves to encode and transmit knowledge-that and knowledge-by between genuinely knowledgeable agents—people like you and me. AI, on the other hand, operates purely on the knowledge-of level--extracting apparent knowledge from linguistic patterns without the underlying semantics.

So while we can imprecisely say an AI“ knows" things in the sense of knowledge-of, it lacks true knowledge-that and certainly lacks knowledge-by. Its knowledge is second-hand, derived from linguistic representations of reality and not genuine understanding.

That's why I can honestly claim both "the AI knows" and "it doesn't actually know" without contradicting myself. What it "knows" is mere knowledge-of, not the real thing. Keeping this distinction in mind helps clarify what capabilities language models do and don't actually possess.

- \ No newline at end of file + \ No newline at end of file diff --git a/docs/blog/knowledge_that_by_of.txt b/docs/blog/knowledge_that_by_of.txt index 7f75297..6bc5f67 100644 --- a/docs/blog/knowledge_that_by_of.txt +++ b/docs/blog/knowledge_that_by_of.txt @@ -1,5 +1,5 @@ 1:HL["/_next/static/css/8089f6746c126975.css",{"as":"style"}] -0:["SBwn9sZOGEw6I_SY9crSO",[[["",{"children":["blog",{"children":[["id","knowledge_that_by_of","d"],{"children":["__PAGE__?{\"id\":\"knowledge_that_by_of\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] +0:["vYmu67NJnpmnO7J4ltKsM",[[["",{"children":["blog",{"children":[["id","knowledge_that_by_of","d"],{"children":["__PAGE__?{\"id\":\"knowledge_that_by_of\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] 4:HL["/_next/static/css/188c8aff756c3f67.css",{"as":"style"}] 5:I{"id":7767,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} 6:I{"id":7920,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} diff --git a/docs/blog/revenge.html b/docs/blog/revenge.html index 56cb03d..30ed38f 100644 --- a/docs/blog/revenge.html +++ b/docs/blog/revenge.html @@ -37,4 +37,4 @@

The encounters of goals working at cross purposes (which is every encounter, even when the purpose is generally the same) is a conflict. Every time two or more sentient being interact, the resolution of that conflict has a tremendous influence on how each being will act in the future. What is truly amazing is that there is so little violence in conflict resolution. The general dislike of violence as a tool for conflict resolution is evidence better than any other for the evolution of complex societal structures in any social creature (that is, every creature). Looking at human history, it seems these social rules fall into one fundamental rule: don't hurt people, but if you have to, it's better to hurt people outside the tribe.

The desire to completely rid society of violence is probably another impossible task. In fact, it is probably very difficult to arbitrarily impose any specific sort of rule on a group of people, or even one person. It seems that rules must be accepted by each and every individual person of their own accord- even such extreme measures as those employed by Big Brother in Orwell's 1984 would not be perfect. People are finicky creatures, and the ability for abstract thought seems to have given humans the need for the freedom to exercise that thought. That freedom can only be given up willingly, and can be reclaimed at any time.

With the ability to decide whether an action is good or bad comes the imperative to use those faculties.

- \ No newline at end of file + \ No newline at end of file diff --git a/docs/blog/revenge.txt b/docs/blog/revenge.txt index 7f7980e..9ccfbb9 100644 --- a/docs/blog/revenge.txt +++ b/docs/blog/revenge.txt @@ -1,5 +1,5 @@ 1:HL["/_next/static/css/8089f6746c126975.css",{"as":"style"}] -0:["SBwn9sZOGEw6I_SY9crSO",[[["",{"children":["blog",{"children":[["id","revenge","d"],{"children":["__PAGE__?{\"id\":\"revenge\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] +0:["vYmu67NJnpmnO7J4ltKsM",[[["",{"children":["blog",{"children":[["id","revenge","d"],{"children":["__PAGE__?{\"id\":\"revenge\"}",{}]}]}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] 4:HL["/_next/static/css/188c8aff756c3f67.css",{"as":"style"}] 5:I{"id":7767,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} 6:I{"id":7920,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} diff --git a/docs/index.html b/docs/index.html index 76c782f..73ea5d7 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -David Souther

David Souther

Sr Examples Engineer

David Professional Photo

USNew YorkBrooklyn

Posts

Behavioral Interviewing

Learn how to tell your story in the STAR narrative format. Interviewers want to hire candidates who have demonstrated success in their past performance. During a behavioral interview, you can help your interviewer understand your successes by applying STAR to your past roles.

Fuzzy Homomorphic Endofunctors

LLMs are exploratory fuzzy homomorphic endofunctors mapping between points on the manifold of syntactically valid documents, traversing diverse paths of meaning.

Beyond Knowledge-That: LLMs' Indirect Understanding

We say LLM AIs "know" things, yet also claim they "don't actually know." This isn't contradictory—it's about different knowledge types. LLMs have knowledge-of from data, but lack humans' genuine knowledge-that (justified true belief) and knowledge-by (direct experience). Key distinction!

Roles & Positions

Amazon Web Services

Sr Examples Engineer2022-09-12Current

Sr Engineer creating example 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 and service boundaries. These examples show customers real-world approaches to developing software that combines multiple AWS SDKs.

Highlights include:

I am the tech lead for the AWS SDK Code Examples Tooling group, who create and maintain Continuous Integration, Continuous Delivery, and Product Excellence tooling for AWS Code Examples. This tooling enforces quality standards on first-part example code for the docs.aws.amazon.com property, and requires coordination across engineering, writing, editing, and product teams spanning AWS technology and marketing.

Code Fellows

Lead Instructor2022-03-102023-06-30

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
  • TypeScript
  • html & css
  • react
  • 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. Responsible Engineer for managing and optimizing cloud spend, migrating ~30% on prem and reducing overall utilization ~10% while user base grew ~50%.

GCP - Compute Front End

Tech Lead & Manager2020-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.

GCP - Cloud Topology

Tech Lead2018-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.

    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.

      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.

      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
      • nodejs
      • 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

      Ailly

      Load your writing. Guide Ailly to your voice. Write your outline. Prompt Ailly to continue to continue the writing. Edit its output, and get even more like that.

      Rhymes with Daily.

      Ailly's best feature is rapidly itearting on prompt engineering. By keeping your prompts in snippets on the file system, you can make very fine-grained changes to your prompt and immediately see the difference. You can also use all your normal source control tooling to track changes over time - both your changes, and what the LLM does.

      Jiffies CSS

      Jiffies CSS is a "postmodern" CSS full-page reset. It uses the most recent 100% pure CSS standards, including layers, native css nesting, and a variable structure to define user and application specific overrides.

      nand2tetris/web-ide

      Online web IDE for the nand2tetris computer architecture & language course.

      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.

      Publications

      Cloud Journeys: Building a Serverless Image Recognition Website with Machine Learning 2023-06-23

      The Code Examples team tells the story of how they created a serverless application that detects labels for images and lets the user download those images by label. This is the first entry in a new content category called Cloud Journeys.

      Technical Whiteboarding 2023-04-01

      A series of posts on how to approach technical whiteboarding. Technical whiteboarding is often encountered in an interview setting, but the techniques to solve an interview question apply equally well to a wide range of design and development scenarios. This several-part series presents a checklist of steps to work through a technical problem, shows a variety of ways to diagram programs, and has an extensive glossary of data structures & algorithms topics. A section on the "Forward/Backward Method" applies mathematical proof techniques to have a systematic approach to DS&A problem solving.

      Visualization by Organizing Connections in Collapsible Hierarchical Graphs 2019-06-01

      Abstract Network graphs in certain applications, e.g., cloud-network graphs, have connections in multiple dimensions. At present, it is difficult or inconvenient for a user to visualize such graphs at varying levels of granularity or hierarchy. Per the techniques of this disclosure, a hull is defined as a node with descendants, and a segment is defined as a bundle of edges between descendants below a pair of nodes. By enabling a user to expand or collapse a hull, and by routing edges via segments connecting parent nodes, the described techniques enable a high-level visualization of large graph networks that can be quickly refocused into low-level pictures.

      Is stat() an expensive system call? 2013-06-01

      Format Date time in AngularJS 2012-10-01

      \ No newline at end of file +David Souther

      David Souther

      Sr Examples Engineer

      David Professional Photo

      USNew YorkBrooklyn

      Posts

      Behavioral Interviewing

      Learn how to tell your story in the STAR narrative format. Interviewers want to hire candidates who have demonstrated success in their past performance. During a behavioral interview, you can help your interviewer understand your successes by applying STAR to your past roles.

      Fuzzy Homomorphic Endofunctors

      LLMs are exploratory fuzzy homomorphic endofunctors mapping between points on the manifold of syntactically valid documents, traversing diverse paths of meaning.

      Beyond Knowledge-That: LLMs' Indirect Understanding

      We say LLM AIs "know" things, yet also claim they "don't actually know." This isn't contradictory—it's about different knowledge types. LLMs have knowledge-of from data, but lack humans' genuine knowledge-that (justified true belief) and knowledge-by (direct experience). Key distinction!

      Roles & Positions

      Amazon Web Services

      Sr Examples Engineer2022-09-12Current

      Sr Engineer creating example 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 and service boundaries. These examples show customers real-world approaches to developing software that combines multiple AWS SDKs.

      Highlights include:

      I am the tech lead for the AWS SDK Code Examples Tooling group, who create and maintain Continuous Integration, Continuous Delivery, and Product Excellence tooling for AWS Code Examples. This tooling enforces quality standards on first-part example code for the docs.aws.amazon.com property, and requires coordination across engineering, writing, editing, and product teams spanning AWS technology and marketing.

      Code Fellows

      Lead Instructor2022-03-102023-06-30

      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
      • TypeScript
      • html & css
      • react
      • 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. Responsible Engineer for managing and optimizing cloud spend, migrating ~30% on prem and reducing overall utilization ~10% while user base grew ~50%.

      GCP - Compute Front End

      Tech Lead & Manager2020-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.

      GCP - Cloud Topology

      Tech Lead2018-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.

        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.

          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.

          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
          • nodejs
          • 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

          Ailly

          Load your writing. Guide Ailly to your voice. Write your outline. Prompt Ailly to continue to continue the writing. Edit its output, and get even more like that.

          Rhymes with Daily.

          Ailly's best feature is rapidly itearting on prompt engineering. By keeping your prompts in snippets on the file system, you can make very fine-grained changes to your prompt and immediately see the difference. You can also use all your normal source control tooling to track changes over time - both your changes, and what the LLM does.

          Jiffies CSS

          Jiffies CSS is a "postmodern" CSS full-page reset. It uses the most recent 100% pure CSS standards, including layers, native css nesting, and a variable structure to define user and application specific overrides.

          nand2tetris/web-ide

          Online web IDE for the nand2tetris computer architecture & language course.

          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.

          Publications

          Cloud Journeys: Building a Serverless Image Recognition Website with Machine Learning 2023-06-23

          The Code Examples team tells the story of how they created a serverless application that detects labels for images and lets the user download those images by label. This is the first entry in a new content category called Cloud Journeys.

          Technical Whiteboarding 2023-04-01

          A series of posts on how to approach technical whiteboarding. Technical whiteboarding is often encountered in an interview setting, but the techniques to solve an interview question apply equally well to a wide range of design and development scenarios. This several-part series presents a checklist of steps to work through a technical problem, shows a variety of ways to diagram programs, and has an extensive glossary of data structures & algorithms topics. A section on the "Forward/Backward Method" applies mathematical proof techniques to have a systematic approach to DS&A problem solving.

          Visualization by Organizing Connections in Collapsible Hierarchical Graphs 2019-06-01

          Abstract Network graphs in certain applications, e.g., cloud-network graphs, have connections in multiple dimensions. At present, it is difficult or inconvenient for a user to visualize such graphs at varying levels of granularity or hierarchy. Per the techniques of this disclosure, a hull is defined as a node with descendants, and a segment is defined as a bundle of edges between descendants below a pair of nodes. By enabling a user to expand or collapse a hull, and by routing edges via segments connecting parent nodes, the described techniques enable a high-level visualization of large graph networks that can be quickly refocused into low-level pictures.

          Is stat() an expensive system call? 2013-06-01

          Format Date time in AngularJS 2012-10-01

          \ No newline at end of file diff --git a/docs/index.txt b/docs/index.txt index 07a08d8..7dca2ef 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -1,5 +1,5 @@ 1:HL["/_next/static/css/8089f6746c126975.css",{"as":"style"}] -0:["SBwn9sZOGEw6I_SY9crSO",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] +0:["vYmu67NJnpmnO7J4ltKsM",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L2",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/8089f6746c126975.css","precedence":"next"}]],"$L3"]]]] 4:I{"id":7767,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} 5:I{"id":7920,"chunks":["272:static/chunks/webpack-2089a3194a051c2b.js","971:static/chunks/fd9d1056-edf0048f965d11ef.js","596:static/chunks/596-e3269281f6a80cbc.js"],"name":"default","async":false} 8:I{"id":6852,"chunks":["13:static/chunks/13-a14f4f8488530559.js","599:static/chunks/599-57c8542fa14d7dc7.js","185:static/chunks/app/layout-3e0733cba7c240b0.js"],"name":"","async":false} diff --git a/docs/resume.pdf b/docs/resume.pdf new file mode 100644 index 0000000..b006d39 Binary files /dev/null and b/docs/resume.pdf differ diff --git a/public/David_Souther_Resume_2024-04-05.pdf b/public/David_Souther_Resume_2024-04-05.pdf new file mode 100644 index 0000000..b006d39 Binary files /dev/null and b/public/David_Souther_Resume_2024-04-05.pdf differ diff --git a/public/resume.pdf b/public/resume.pdf new file mode 100644 index 0000000..b006d39 Binary files /dev/null and b/public/resume.pdf differ