-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
1 lines (1 loc) · 83.7 KB
/
index.html
1
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/fef2051bebc1224a.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-aeac45c82ebe15f5.js" as="script" fetchPriority="low"/><script src="/_next/static/chunks/fd9d1056-edf0048f965d11ef.js" async=""></script><script src="/_next/static/chunks/596-e3269281f6a80cbc.js" async=""></script><script src="/_next/static/chunks/main-app-c6ffe2b8a7d4e931.js" async=""></script><link rel="preload" as="script" href="https://www.googletagmanager.com/gtag/js?id=G-6X1Z1L95D8"/><title>David Souther</title><meta name="description" content="davidsouther.com - resume, blog, playground"/><link rel="author" href="davidsouther.com"/><meta name="author" content="David Souther"/><link rel="manifest" href="/manifest.json"/><meta name="theme-color" media="(prefers-color-scheme: light)" content="white"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="black"/><link rel="stylesheet" href="/jiffies-css-bundle.min.css"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="container"><div id="root" class="root"><header><hgroup><h1><a href="/">David<!-- --> <!-- -->Souther</a></h1><h2>Sr Examples Engineer</h2></hgroup><figure><img alt="David Professional Photo" loading="lazy" width="136" height="136" decoding="async" data-nimg="1" style="color:transparent;max-width:100%;height:auto" src="https://avatars.githubusercontent.com/u/498712?v=4"/></figure><p class="location"><span class="location country">US</span><span class="location region">New York</span><span class="location municipality">Brooklyn</span></p><nav class="contact"><ul><li><a href="https://github.com/davidsouther" class="no-print"><span>https://github.com/davidsouther</span></a><span class="print-only">https://github.com/davidsouther</span></li><li><a href="mailto:[email protected]" class="no-print"><span>mailto:[email protected]</span></a><span class="print-only">mailto:[email protected]</span></li><li><a href="tel:+1 650.495.5402" class="no-print"><span>tel:+1 650.495.5402</span></a><span class="print-only">tel:+1 650.495.5402</span></li></ul></nav></header><main><article class="posts no-print"><header><h3>Posts</h3></header><main><div style="grid-area:title"><h4><a href="blog/behavioral_interviewing">Behavioral Interviewing</a></h4></div><p style="grid-area:summary">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.</p><div style="grid-area:title"><h4><a href="blog/fuzzy_homomorphic_endofunctor">Fuzzy Homomorphic Endofunctors</a></h4></div><p style="grid-area:summary">LLMs are exploratory fuzzy homomorphic endofunctors mapping between points on the manifold of syntactically valid documents, traversing diverse paths of meaning.</p><div style="grid-area:title"><h4><a href="blog/knowledge_that_by_of">Beyond Knowledge-That: LLMs' Indirect Understanding</a></h4></div><p style="grid-area:summary">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!</p></main></article><article class="jobs"><header><h3>Roles & Positions</h3></header><main><section class="job "><h4 class="organization">Amazon Web Services</h4><section class="role"><h5 class="about"><em class="name">Sr Examples Engineer</em><small class="start date">2022-09-12</small><small class="finish date">Current</small></h5><div class="details"><p>Sr Engineer creating example code and applications using the <a href="https://github.com/awslabs/aws-sdk-rust" target="_blank">AWS SDK for Rust</a> (<a href="https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rust_dev_preview" target="_blank">example repo</a>). 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.</p><p> Highlights include:</p><ul><li>a <a href="https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rust_dev_preview/cross_service/rest_ses" target="_blank">REST system</a> using <a href="https://aws.amazon.com/rds/" target="_blank">Amazon RDS Data</a> & <a href="https://aws.amazon.com/ses/" target="_blank">Amazon SES</a></li><li>a <a href="https://community.aws/posts/cloud-journeys/01-serverless-image-recognition-app" target="_blank">photo asset manager</a> using <a href="https://aws.amazon.com/s3/" target="_blank">Amazon S3</a> <a href="https://aws.amazon.com/s3/storage-classes/intelligent-tiering/" target="_blank">intelligent tiering</a> storage, <a href="https://aws.amazon.com/rekognition/" target="_blank">Amazon Rekognition</a> image tagging, & <a href="https://aws.amazon.com/sqs/" target="_blank">Amazon SQS</a> notifications</li><li>an <a href="" target="_blank">ML Ops pipeline</a> using <a href="https://aws.amazon.com/step-functions/" target="_blank">AWS Step Functions</a> to orchestrate <a href="https://aws.amazon.com/textract/" target="_blank">Amazon Textract</a>, <a href="https://aws.amazon.com/comprehend/" target="_blank">Amazon Comprehend</a>, and <a href="https://aws.amazon.com/polly/" target="_blank">Amazon Polly</a></li><li>a multi-language <a href="https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/workflows/sesv2_weekly_mailer" target="_blank">Coupon Newsletter</a> using <a href="https://aws.amazon.com/ses/" target="_blank">Amazon Simple Email Service</a>.</li><li>Utilized Ailly & Bedrock to develop <a href="https://github.com/DavidSouther/aws-doc-sdk-examples/tree/workflow/sesv2/mailer/workflows/sesv2_weekly_mailer/content" target="_blank">bespoke human-navigator LLM workflow</a> for Code Examples team, speeding development by 20%.</li></ul><p>I am the tech lead for the <a href="https://github.com/awsdocs/aws-doc-sdk-examples" target="_blank">AWS SDK Code Examples</a> 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 <a href="https://docs.aws.amazon.com" target="_blank">docs.aws.amazon.com</a> property, and requires coordination across engineering, writing, editing, and product teams spanning AWS technology and marketing.</p></div><div class="competences"><ul><li><a href="https://rust-lang.org">rust</a></li><li><a href="https://aws.amazon.com">amazon-web-services</a></li><li><a href="https://go.dev">golang</a></li><li><a href="https://www.python.org">python</a></li><li><span>front end</span></li><li><span>technical writing</span></li></ul></div></section></section><section class="job "><h4 class="organization">Code Fellows</h4><section class="role"><h5 class="about"><em class="name">Lead Instructor</em><small class="start date">2022-03-10</small><small class="finish date">2023-06-30</small></h5><div class="details"><p>Lead instructor for <a href="https://www.codefellows.org/courses/code-401/advanced-software-development-in-full-stack-JavaScript/" target="_blank">Code 401: Advanced Software Development in Full Stack JavaScript</a>. 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 <a href="https://fortune.com/education/bootcamps/best-cybersecurity-bootcamps/" target="_blank">2023 top coding boot camp</a> by Fortune Education.</p></div><div class="competences"><ul><li><span>JavaScript</span></li><li><a href="https://www.typescriptlang.org/">TypeScript</a></li><li><span>html & css</span></li><li><a href="https://react.dev/">react</a></li><li><span>instructing</span></li><li><span>interview training</span></li><li><span>curriculum development</span></li></ul></div></section></section><section class="job "><h4 class="organization">SpaceX Starlink</h4><section class="role"><h5 class="about"><em class="name">Sr Software Engineer</em><small class="start date">2021-07-01</small><small class="finish date">2022-06-06</small></h5><div class="details"><p>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%.</p></div><div class="competences"><ul><li><a href="https://rust-lang.org">Rust</a></li><li><span>c++</span></li><li><span>kubernetes</span></li><li><a href="https://www.python.org">python</a></li></ul></div></section></section><section class="job "><h4 class="organization">GCP - Compute Front End</h4><section class="role"><h5 class="about"><em class="name">Tech Lead & Manager</em><small class="start date">2020-07-01</small><small class="finish date">2021-07-31</small></h5><div class="details"><p>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.</p><p>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.</p></div><div class="competences"><ul><li><a href="https://cloud.google.com/">google-cloud-platform</a></li><li><a href="https://cloud.google.com/compute">google-compute-engine</a></li><li><span>GraphQL</span></li><li><a href="https://www.typescriptlang.org/">TypeScript</a></li><li><a href="https://angular.io/">angular</a></li></ul></div></section></section><section class="job "><h4 class="organization">GCP - Cloud Topology</h4><section class="role"><h5 class="about"><em class="name">Tech Lead</em><small class="start date">2018-11-01</small><small class="finish date">2020-06-30</small></h5><div class="details"><p>Cloud Topology allows GCP customers to visualize their large scale deployments in the Cloud ecosystem.</p><ul><li>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.</li><li>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.</li><li>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.</li></ul></div><div class="competences"><ul><li><a href="https://www.typescriptlang.org/">TypeScript</a></li><li><span>Kubernetes</span></li><li><span>Istio</span></li><li><span>Kompose</span></li><li><span>Svg</span></li><li><span>Microservices</span></li><li><span>Serverless</span></li><li><span>Graph rendering</span></li><li><span>Visualization</span></li></ul></div></section></section><section class="job no-print"><h4 class="organization">Chatham University</h4><section class="role"><h5 class="about"><em class="name">Lecturer</em><small class="start date">2016-08-01</small><small class="finish date">2017-05-31</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul></ul></div></section></section><section class="job no-print"><h4 class="organization">Google Shopping</h4><section class="role"><h5 class="about"><em class="name">Software Engineer</em><small class="start date">2015-06-01</small><small class="finish date">2017-04-30</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul><li><a href="https://angular.io/">Angular</a></li><li><span>AngularJS</span></li><li><span>Dart</span></li><li><a href="https://www.typescriptlang.org/">TypeScript</a></li></ul></div></section></section><section class="job no-print"><h4 class="organization">Mt Holyoke College & Google</h4><section class="role"><h5 class="about"><em class="name">Instructor</em><small class="start date">2015-11-01</small><small class="finish date">2017-01-31</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul></ul></div></section></section><section class="job no-print"><h4 class="organization">Microsoft TEALS</h4><section class="role"><h5 class="about"><em class="name">Instructor</em><small class="start date">2013-08-01</small><small class="finish date">2016-05-31</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul><li><span>mit-scratch</span></li><li><a href="https://www.python.org">python</a></li></ul></div></section></section><section class="job no-print"><h4 class="organization">Third Cat, LLC</h4><section class="role"><h5 class="about"><em class="name">Software Architect, Consultant, Training Instructor</em><small class="start date">2014-06-01</small><small class="finish date">2015-07-31</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul><li><span>nodejs</span></li><li><a href="https://socket.io">socket.io</a></li><li><a href="redis.io">redis</a></li><li><span>angularjs</span></li></ul></div></section></section><section class="job no-print"><h4 class="organization">Novus Partners Inc</h4><section class="role"><h5 class="about"><em class="name">Software Architect</em><small class="start date">2013-10-01</small><small class="finish date">2014-06-30</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul><li><span>angularjs</span></li><li><span>nodejs</span></li><li><span>gruntjs</span></li><li><span>scala</span></li></ul></div></section></section><section class="job no-print"><h4 class="organization">The New York Times</h4><section class="role"><h5 class="about"><em class="name">Software Engineer</em><small class="start date">2012-07-01</small><small class="finish date">2013-10-31</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul><li><span>nodejs</span></li><li><span>coffeescript</span></li><li><span>git</span></li></ul></div></section></section><section class="job no-print"><h4 class="organization">Potomac Fusion, inc</h4><section class="role"><h5 class="about"><em class="name">Software Engineer</em><small class="start date">2011-09-01</small><small class="finish date">2012-06-30</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul><li><span>java</span></li><li><span>JavaScript</span></li><li><span>owf</span></li><li><span>synapse</span></li></ul></div></section></section><section class="job no-print"><h4 class="organization">Design Delegates</h4><section class="role"><h5 class="about"><em class="name">Software Architect</em><small class="start date">2010-10-01</small><small class="finish date">2011-07-31</small></h5><div class="details"><p>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.</p><p>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.</p><p>In the course of the project, we developed <a href="http://jefri.org" target="_blank">JEFRi</a>, a Javascript Entity Framework to facilitate our mobile development work.</p></div><div class="competences"><ul><li><span>JavaScript</span></li><li><span>jefri</span></li><li><span>php</span></li><li><span>crosslight</span></li><li><span>kohana</span></li><li><span>sqlite</span></li><li><span>linux</span></li></ul></div></section></section><section class="job no-print"><h4 class="organization">Entre Technology Services, LLC</h4><section class="role"><h5 class="about"><em class="name">Software Developer</em><small class="start date">2007-09-01</small><small class="finish date">2010-09-30</small></h5><div class="details"><p>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.</p></div><div class="competences"><ul><li><span>java</span></li><li><span>.net</span></li><li><span>entity-framework</span></li><li><span>linux</span></li></ul></div></section></section></main></article><article class="studies"><header><h3>Education</h3></header><main><div class="education no-print"><h4 class="organization"><a href="https://www.seattleu.edu/scieng/computer-science/graduate/mscs/">Seattle University</a></h4><div class="about"><em class="name">Master of Science Computer Science</em><small class="start">2011-01-01</small><small class="finish">2011-01-01</small></div><p class="details justify">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.</p></div><div class="education "><h4 class="organization"><a href="https://www.rocky.edu/academics/course-catalog/computer-science">Rocky Mountain College</a></h4><div class="about"><em class="name">B.S. Mathematics</em><small class="start">2007-08-01</small><small class="finish">2011-05-31</small></div><p class="details justify">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.</p></div><div class="education "><h4 class="organization"><a href="https://www.rocky.edu/academics/course-catalog/mathematics">Rocky Mountain College</a></h4><div class="about"><em class="name">B.S. Computer Science</em><small class="start">2006-08-01</small><small class="finish">2011-05-31</small></div><p class="details justify">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.</p></div></main></article><div class="artifacts"><article class="projects"><header><h3>Projects</h3></header><main><section class="pub"><p><a href="https://github.com/DavidSouther/ailly">Ailly</a></p><p>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.</p><p>Rhymes with Daily.</p><p>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.</p></section><section class="pub"><p><a href="https://jefri.github.io/jiffies-css//">Jiffies CSS</a></p><p>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.</p></section><section class="pub"><p><a href="https://github.com/nand2tetris/web-ide">nand2tetris/web-ide</a></p><p>Online web IDE for the <a href="https://www.nand2tetris.org/" target="_blank">nand2tetris</a> computer architecture & language course.</p></section><section class="pub"><p><a href="https://github.com/DavidSouther/software_craftsmanship">DavidSouther/software_craftsmanship</a></p><p>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.</p></section><section class="pub"><p><a href="https://github.com/DavidSouther/Montana-News-Archive">DavidSouther/Montana-News-Archive</a></p><p>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.</p></section></main></article><article class="publications"><header><h3>Publications</h3></header><main><section class="pub"><p><a href="https://community.aws/posts/cloud-journeys/01-serverless-image-recognition-app">Cloud Journeys: Building a Serverless Image Recognition Website with Machine Learning</a><small> <em>2023-06-23</em></small></p><p>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.</p></section><section class="pub"><p><a href="https://codefellows.github.io/common_curriculum/challenges/code/whiteboarding">Technical Whiteboarding</a><small> <em>2023-04-01</em></small></p><p>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.</p></section><section class="pub"><p><a href="https://www.tdcommons.org/dpubs_series/2996/">Visualization by Organizing Connections in Collapsible Hierarchical Graphs</a><small> <em>2019-06-01</em></small></p><p>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.</p></section><section class="pub"><p><a href="https://stackoverflow.com/questions/17149668/is-stat-an-expensive-system-call/17149924#17149924">Is stat() an expensive system call?</a><small> <em>2013-06-01</em></small></p></section><section class="pub"><p><a href="https://stackoverflow.com/questions/12920892/format-date-time-in-angularjs/12921096#12921096">Format Date time in AngularJS</a><small> <em>2012-10-01</em></small></p></section></main></article></div></main><footer class="no-print"><nav><p>© David Souther 2008-<!-- -->2024</p><cite><a href="https://github.com/davidsouther/resume">Page Source</a></cite></nav></footer></div><script src="/_next/static/chunks/webpack-aeac45c82ebe15f5.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/fef2051bebc1224a.css\",{\"as\":\"style\"}]\n0:\"$L2\"\n"])</script><script>self.__next_f.push([1,"3:I{\"id\":7948,\"chunks\":[\"272:static/chunks/webpack-aeac45c82ebe15f5.js\",\"971:static/chunks/fd9d1056-edf0048f965d11ef.js\",\"596:static/chunks/596-e3269281f6a80cbc.js\"],\"name\":\"default\",\"async\":false}\n5:I{\"id\":6628,\"chunks\":[\"272:static/chunks/webpack-aeac45c82ebe15f5.js\",\"971:static/chunks/fd9d1056-edf0048f965d11ef.js\",\"596:static/chunks/596-e3269281f6a80cbc.js\"],\"name\":\"\",\"async\":false}\n6:I{\"id\":7767,\"chunks\":[\"272:static/chunks/webpack-aeac45c82ebe15f5.js\",\"971:static/chunks/fd9d1056-edf0048f965d11ef.js\",\"5"])</script><script>self.__next_f.push([1,"96:static/chunks/596-e3269281f6a80cbc.js\"],\"name\":\"default\",\"async\":false}\n7:I{\"id\":7920,\"chunks\":[\"272:static/chunks/webpack-aeac45c82ebe15f5.js\",\"971:static/chunks/fd9d1056-edf0048f965d11ef.js\",\"596:static/chunks/596-e3269281f6a80cbc.js\"],\"name\":\"default\",\"async\":false}\na:I{\"id\":6852,\"chunks\":[\"13:static/chunks/13-a14f4f8488530559.js\",\"599:static/chunks/599-57c8542fa14d7dc7.js\",\"185:static/chunks/app/layout-a5c39b24d3810515.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"2:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/fef2051bebc1224a.css\",\"precedence\":\"next\"}]],[\"$\",\"$L3\",null,{\"buildId\":\"jrxx5TE6P5ajBZMw_BUzl\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/\",\"initialTree\":[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],\"initialHead\":[false,\"$L4\"],\"globalErrorComponent\":\"$5\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"/jiffies-css-bundle.min.css\"}]}],[\"$\",\"body\",null,{\"className\":\"container\",\"children\":[[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[],\"childProp\":{\"current\":[\"$L8\",\"$L9\",null],\"segment\":\"__PAGE__\"},\"styles\":[]}],[\"$\",\"$La\",null,{}]]}]]}],null]}]]\n"])</script><script>self.__next_f.push([1,"b:I{\"id\":3771,\"chunks\":[\"13:static/chunks/13-a14f4f8488530559.js\",\"396:static/chunks/396-5f82e11ab97f1283.js\",\"723:static/chunks/723-d9b81dd602745830.js\",\"931:static/chunks/app/page-d460072d01511991.js\"],\"name\":\"\",\"async\":false}\nc:I{\"id\":7839,\"chunks\":[\"13:static/chunks/13-a14f4f8488530559.js\",\"396:static/chunks/396-5f82e11ab97f1283.js\",\"723:static/chunks/723-d9b81dd602745830.js\",\"931:static/chunks/app/page-d460072d01511991.js\"],\"name\":\"Card\",\"async\":false}\nd:I{\"id\":6685,\"chunks\":[\"13:static/chunks/13-a14f4"])</script><script>self.__next_f.push([1,"f8488530559.js\",\"396:static/chunks/396-5f82e11ab97f1283.js\",\"723:static/chunks/723-d9b81dd602745830.js\",\"931:static/chunks/app/page-d460072d01511991.js\"],\"name\":\"\",\"async\":false}\ne:I{\"id\":7809,\"chunks\":[\"13:static/chunks/13-a14f4f8488530559.js\",\"396:static/chunks/396-5f82e11ab97f1283.js\",\"723:static/chunks/723-d9b81dd602745830.js\",\"931:static/chunks/app/page-d460072d01511991.js\"],\"name\":\"JobDetail\",\"async\":false}\n17:I{\"id\":3588,\"chunks\":[\"13:static/chunks/13-a14f4f8488530559.js\",\"396:static/chunks/396-5f82e"])</script><script>self.__next_f.push([1,"11ab97f1283.js\",\"723:static/chunks/723-d9b81dd602745830.js\",\"931:static/chunks/app/page-d460072d01511991.js\"],\"name\":\"A\",\"async\":false}\n18:I{\"id\":3588,\"chunks\":[\"13:static/chunks/13-a14f4f8488530559.js\",\"396:static/chunks/396-5f82e11ab97f1283.js\",\"723:static/chunks/723-d9b81dd602745830.js\",\"931:static/chunks/app/page-d460072d01511991.js\"],\"name\":\"P\",\"async\":false}\nf:Tad9,"])</script><script>self.__next_f.push([1,"{\"organization\":{\"name\":\"Amazon Web Services\"},\"roles\":[{\"name\":\"Sr Examples Engineer\",\"challenges\":[{\"description\":\"Sr Engineer creating example code and applications using the [AWS SDK for Rust](https://github.com/awslabs/aws-sdk-rust) ([example repo](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rust_dev_preview)). 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.\\n\\n Highlights include:\\n- a [REST system](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rust_dev_preview/cross_service/rest_ses) using [Amazon RDS Data](https://aws.amazon.com/rds/) \u0026 [Amazon SES](https://aws.amazon.com/ses/)\\n- a [photo asset manager](https://community.aws/posts/cloud-journeys/01-serverless-image-recognition-app) using [Amazon S3](https://aws.amazon.com/s3/) [intelligent tiering](https://aws.amazon.com/s3/storage-classes/intelligent-tiering/) storage, [Amazon Rekognition](https://aws.amazon.com/rekognition/) image tagging, \u0026 [Amazon SQS](https://aws.amazon.com/sqs/) notifications\\n- an [ML Ops pipeline]() using [AWS Step Functions](https://aws.amazon.com/step-functions/) to orchestrate [Amazon Textract](https://aws.amazon.com/textract/), [Amazon Comprehend](https://aws.amazon.com/comprehend/), and [Amazon Polly](https://aws.amazon.com/polly/)\\n- a multi-language [Coupon Newsletter](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/workflows/sesv2_weekly_mailer) using [Amazon Simple Email Service](https://aws.amazon.com/ses/).\\n- Utilized Ailly \u0026 Bedrock to develop [bespoke human-navigator LLM workflow](https://github.com/DavidSouther/aws-doc-sdk-examples/tree/workflow/sesv2/mailer/workflows/sesv2_weekly_mailer/content) for Code Examples team, speeding development by 20%.\\n\\nI am the tech lead for the [AWS SDK Code Examples](https://github.com/awsdocs/aws-doc-sdk-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](https://docs.aws.amazon.com) property, and requires coordination across engineering, writing, editing, and product teams spanning AWS technology and marketing.\"}],\"startDate\":\"2022-09-12\",\"competences\":[{\"name\":\"rust\",\"type\":\"technology\"},{\"name\":\"amazon-web-services\",\"type\":\"technology\"},{\"name\":\"golang\",\"type\":\"technology\"},{\"name\":\"python\",\"type\":\"technology\"},{\"name\":\"front end\",\"type\":\"practice\"},{\"name\":\"technical writing\",\"type\":\"practice\"}]}]}"])</script><script>self.__next_f.push([1,"10:T933,"])</script><script>self.__next_f.push([1,"Sr Engineer creating example code and applications using the [AWS SDK for Rust](https://github.com/awslabs/aws-sdk-rust) ([example repo](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rust_dev_preview)). 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.\n\n Highlights include:\n- a [REST system](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/rust_dev_preview/cross_service/rest_ses) using [Amazon RDS Data](https://aws.amazon.com/rds/) \u0026 [Amazon SES](https://aws.amazon.com/ses/)\n- a [photo asset manager](https://community.aws/posts/cloud-journeys/01-serverless-image-recognition-app) using [Amazon S3](https://aws.amazon.com/s3/) [intelligent tiering](https://aws.amazon.com/s3/storage-classes/intelligent-tiering/) storage, [Amazon Rekognition](https://aws.amazon.com/rekognition/) image tagging, \u0026 [Amazon SQS](https://aws.amazon.com/sqs/) notifications\n- an [ML Ops pipeline]() using [AWS Step Functions](https://aws.amazon.com/step-functions/) to orchestrate [Amazon Textract](https://aws.amazon.com/textract/), [Amazon Comprehend](https://aws.amazon.com/comprehend/), and [Amazon Polly](https://aws.amazon.com/polly/)\n- a multi-language [Coupon Newsletter](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/workflows/sesv2_weekly_mailer) using [Amazon Simple Email Service](https://aws.amazon.com/ses/).\n- Utilized Ailly \u0026 Bedrock to develop [bespoke human-navigator LLM workflow](https://github.com/DavidSouther/aws-doc-sdk-examples/tree/workflow/sesv2/mailer/workflows/sesv2_weekly_mailer/content) for Code Examples team, speeding development by 20%.\n\nI am the tech lead for the [AWS SDK Code Examples](https://github.com/awsdocs/aws-doc-sdk-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](https://docs.aws.amazon.com) property, and requires coordination across engineering, writing, editing, and product teams spanning AWS technology and marketing."])</script><script>self.__next_f.push([1,"11:T548,"])</script><script>self.__next_f.push([1,"{\"organization\":{\"name\":\"Code Fellows\"},\"roles\":[{\"name\":\"Lead Instructor\",\"challenges\":[{\"description\":\"Lead instructor for [Code 401: Advanced Software Development in Full Stack JavaScript](https://www.codefellows.org/courses/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 \u0026 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 \u0026 tech interviews, and revamped problem \u0026 training materials for a dozen instructors across four languages. Code Fellows was ranked as a [2023 top coding boot camp](https://fortune.com/education/bootcamps/best-cybersecurity-bootcamps/) by Fortune Education.\"}],\"startDate\":\"2022-03-10\",\"finishDate\":\"2023-06-30\",\"competences\":[{\"name\":\"JavaScript\",\"type\":\"technology\"},{\"name\":\"TypeScript\",\"type\":\"technology\"},{\"name\":\"html \u0026 css\",\"type\":\"technology\"},{\"name\":\"react\",\"type\":\"technology\"},{\"name\":\"instructing\",\"type\":\"practice\"},{\"name\":\"interview training\",\"type\":\"practice\"},{\"name\":\"curriculum development\",\"type\":\"practice\"}]}]}"])</script><script>self.__next_f.push([1,"12:T4f4,"])</script><script>self.__next_f.push([1,"{\"organization\":{\"name\":\"GCP - Compute Front End\"},\"roles\":[{\"name\":\"Tech Lead \u0026 Manager\",\"challenges\":[{\"description\":\"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.\\n\\nAs 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.\"}],\"startDate\":\"2020-07-01\",\"finishDate\":\"2021-07-31\",\"competences\":[{\"name\":\"google-cloud-platform\",\"type\":\"technology\"},{\"name\":\"google-compute-engine\",\"type\":\"technology\"},{\"name\":\"GraphQL\",\"type\":\"technology\"},{\"name\":\"TypeScript\",\"type\":\"technology\"},{\"name\":\"angular\",\"type\":\"technology\"}]}]}"])</script><script>self.__next_f.push([1,"13:T565,"])</script><script>self.__next_f.push([1,"{\"organization\":{\"name\":\"GCP - Cloud Topology\"},\"roles\":[{\"name\":\"Tech Lead\",\"challenges\":[{\"description\":\"Cloud Topology allows GCP customers to visualize their large scale deployments in the Cloud ecosystem.\\n\\n* I created a rich kubernetes visualization, capable of rendering 10k nodes at 60fps and performing hierarchical graph layout in \u003c1s, by writing high-performance graph rendering engine and conducting research with internal and external k8s users.\\n* I created a graphical data model \u0026 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.\\n* 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.\"}],\"startDate\":\"2018-11-01\",\"finishDate\":\"2020-06-30\",\"competences\":[{\"name\":\"TypeScript\",\"type\":\"technology\"},{\"name\":\"Kubernetes\",\"type\":\"technology\"},{\"name\":\"Istio\",\"type\":\"technology\"},{\"name\":\"Kompose\",\"type\":\"technology\"},{\"name\":\"Svg\",\"type\":\"technology\"},{\"name\":\"Microservices\",\"type\":\"domain\"},{\"name\":\"Serverless\",\"type\":\"domain\"},{\"name\":\"Graph rendering\",\"type\":\"domain\"},{\"name\":\"Visualization\",\"type\":\"domain\"}]}]}"])</script><script>self.__next_f.push([1,"14:T4b6,"])</script><script>self.__next_f.push([1,"{\"organization\":{\"name\":\"Google Shopping\"},\"roles\":[{\"name\":\"Software Engineer\",\"challenges\":[{\"description\":\"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 \u0026 tooling. I taught internal courses on TypeScript \u0026 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 \u0026 industry practices at Mt Holyoke College.\"}],\"startDate\":\"2015-06-01\",\"finishDate\":\"2017-04-30\",\"competences\":[{\"name\":\"Angular\",\"type\":\"technology\"},{\"name\":\"AngularJS\",\"type\":\"technology\"},{\"name\":\"Dart\",\"type\":\"technology\"},{\"name\":\"TypeScript\",\"type\":\"technology\"}]}]}"])</script><script>self.__next_f.push([1,"15:T44d,"])</script><script>self.__next_f.push([1,"{\"organization\":{\"name\":\"Third Cat, LLC\"},\"roles\":[{\"name\":\"Software Architect, Consultant, Training Instructor\",\"challenges\":[{\"description\":\"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.\"}],\"startDate\":\"2014-06-01\",\"finishDate\":\"2015-07-31\",\"competences\":[{\"name\":\"nodejs\",\"type\":\"technology\"},{\"name\":\"socket.io\",\"type\":\"technology\"},{\"name\":\"redis\",\"type\":\"technology\"},{\"name\":\"angularjs\",\"type\":\"technology\"}]}]}"])</script><script>self.__next_f.push([1,"16:T4fd,"])</script><script>self.__next_f.push([1,"{\"organization\":{\"name\":\"Design Delegates\"},\"roles\":[{\"name\":\"Software Architect\",\"challenges\":[{\"description\":\"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.\\n\\nOur 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.\\n\\nIn the course of the project, we developed [JEFRi](http://jefri.org), a Javascript Entity Framework to facilitate our mobile development work.\"}],\"startDate\":\"2010-10-01\",\"finishDate\":\"2011-07-31\",\"competences\":[{\"name\":\"JavaScript\",\"type\":\"technology\"},{\"name\":\"jefri\",\"type\":\"technology\"},{\"name\":\"php\",\"type\":\"technology\"},{\"name\":\"crosslight\",\"type\":\"technology\"},{\"name\":\"kohana\",\"type\":\"technology\"},{\"name\":\"sqlite\",\"type\":\"technology\"},{\"name\":\"linux\",\"type\":\"technology\"}]}]}"])</script><script>self.__next_f.push([1,"9:[\"$\",\"$Lb\",null,{\"title\":\"David Souther - Resume\",\"children\":[[\"$\",\"$Lc\",null,{\"header\":\"Posts\",\"className\":\"posts no-print\",\"children\":[[[\"$\",\"div\",null,{\"style\":{\"gridArea\":\"title\"},\"children\":[\"$\",\"h4\",null,{\"children\":[\"$\",\"$Ld\",null,{\"href\":\"blog/behavioral_interviewing\",\"children\":\"Behavioral Interviewing\"}]}]}],[\"$\",\"p\",\"behavioral_interviewing\",{\"style\":{\"gridArea\":\"summary\"},\"children\":\"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.\"}]],[[\"$\",\"div\",null,{\"style\":{\"gridArea\":\"title\"},\"children\":[\"$\",\"h4\",null,{\"children\":[\"$\",\"$Ld\",null,{\"href\":\"blog/fuzzy_homomorphic_endofunctor\",\"children\":\"Fuzzy Homomorphic Endofunctors\"}]}]}],[\"$\",\"p\",\"fuzzy_homomorphic_endofunctor\",{\"style\":{\"gridArea\":\"summary\"},\"children\":\"LLMs are exploratory fuzzy homomorphic endofunctors mapping between points on the manifold of syntactically valid documents, traversing diverse paths of meaning.\"}]],[[\"$\",\"div\",null,{\"style\":{\"gridArea\":\"title\"},\"children\":[\"$\",\"h4\",null,{\"children\":[\"$\",\"$Ld\",null,{\"href\":\"blog/knowledge_that_by_of\",\"children\":\"Beyond Knowledge-That: LLMs' Indirect Understanding\"}]}]}],[\"$\",\"p\",\"knowledge_that_by_of\",{\"style\":{\"gridArea\":\"summary\"},\"children\":\"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!\"}]]]}],[[\"$\",\"$Lc\",null,{\"className\":\"jobs\",\"header\":\"Roles \u0026 Positions\",\"children\":[[\"$\",\"$Le\",\"$f\",{\"job\":{\"organization\":{\"name\":\"Amazon Web Services\"},\"roles\":[{\"name\":\"Sr Examples Engineer\",\"challenges\":[{\"description\":\"$10\"}],\"startDate\":\"2022-09-12\",\"competences\":[{\"name\":\"rust\",\"type\":\"technology\"},{\"name\":\"amazon-web-services\",\"type\":\"technology\"},{\"name\":\"golang\",\"type\":\"technology\"},{\"name\":\"python\",\"type\":\"technology\"},{\"name\":\"front end\",\"type\":\"practice\"},{\"name\":\"technical writing\",\"type\":\"practice\"}]}]}}],[\"$\",\"$Le\",\"$11\",{\"job\":{\"organization\":{\"name\":\"Code Fellows\"},\"roles\":[{\"name\":\"Lead Instructor\",\"challenges\":[{\"description\":\"Lead instructor for [Code 401: Advanced Software Development in Full Stack JavaScript](https://www.codefellows.org/courses/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 \u0026 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 \u0026 tech interviews, and revamped problem \u0026 training materials for a dozen instructors across four languages. Code Fellows was ranked as a [2023 top coding boot camp](https://fortune.com/education/bootcamps/best-cybersecurity-bootcamps/) by Fortune Education.\"}],\"startDate\":\"2022-03-10\",\"finishDate\":\"2023-06-30\",\"competences\":[{\"name\":\"JavaScript\",\"type\":\"technology\"},{\"name\":\"TypeScript\",\"type\":\"technology\"},{\"name\":\"html \u0026 css\",\"type\":\"technology\"},{\"name\":\"react\",\"type\":\"technology\"},{\"name\":\"instructing\",\"type\":\"practice\"},{\"name\":\"interview training\",\"type\":\"practice\"},{\"name\":\"curriculum development\",\"type\":\"practice\"}]}]}}],[\"$\",\"$Le\",\"{\\\"organization\\\":{\\\"name\\\":\\\"SpaceX Starlink\\\"},\\\"roles\\\":[{\\\"name\\\":\\\"Sr Software Engineer\\\",\\\"challenges\\\":[{\\\"description\\\":\\\"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 \u0026 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%.\\\"}],\\\"startDate\\\":\\\"2021-07-01\\\",\\\"finishDate\\\":\\\"2022-06-06\\\",\\\"competences\\\":[{\\\"name\\\":\\\"Rust\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"c++\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"kubernetes\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"python\\\",\\\"type\\\":\\\"technology\\\"}]}]}\",{\"job\":{\"organization\":{\"name\":\"SpaceX Starlink\"},\"roles\":[{\"name\":\"Sr Software Engineer\",\"challenges\":[{\"description\":\"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 \u0026 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%.\"}],\"startDate\":\"2021-07-01\",\"finishDate\":\"2022-06-06\",\"competences\":[{\"name\":\"Rust\",\"type\":\"technology\"},{\"name\":\"c++\",\"type\":\"technology\"},{\"name\":\"kubernetes\",\"type\":\"technology\"},{\"name\":\"python\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"$12\",{\"job\":{\"organization\":{\"name\":\"GCP - Compute Front End\"},\"roles\":[{\"name\":\"Tech Lead \u0026 Manager\",\"challenges\":[{\"description\":\"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.\\n\\nAs 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.\"}],\"startDate\":\"2020-07-01\",\"finishDate\":\"2021-07-31\",\"competences\":[{\"name\":\"google-cloud-platform\",\"type\":\"technology\"},{\"name\":\"google-compute-engine\",\"type\":\"technology\"},{\"name\":\"GraphQL\",\"type\":\"technology\"},{\"name\":\"TypeScript\",\"type\":\"technology\"},{\"name\":\"angular\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"$13\",{\"job\":{\"organization\":{\"name\":\"GCP - Cloud Topology\"},\"roles\":[{\"name\":\"Tech Lead\",\"challenges\":[{\"description\":\"Cloud Topology allows GCP customers to visualize their large scale deployments in the Cloud ecosystem.\\n\\n* I created a rich kubernetes visualization, capable of rendering 10k nodes at 60fps and performing hierarchical graph layout in \u003c1s, by writing high-performance graph rendering engine and conducting research with internal and external k8s users.\\n* I created a graphical data model \u0026 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.\\n* 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.\"}],\"startDate\":\"2018-11-01\",\"finishDate\":\"2020-06-30\",\"competences\":[{\"name\":\"TypeScript\",\"type\":\"technology\"},{\"name\":\"Kubernetes\",\"type\":\"technology\"},{\"name\":\"Istio\",\"type\":\"technology\"},{\"name\":\"Kompose\",\"type\":\"technology\"},{\"name\":\"Svg\",\"type\":\"technology\"},{\"name\":\"Microservices\",\"type\":\"domain\"},{\"name\":\"Serverless\",\"type\":\"domain\"},{\"name\":\"Graph rendering\",\"type\":\"domain\"},{\"name\":\"Visualization\",\"type\":\"domain\"}]}]}}],[\"$\",\"$Le\",\"{\\\"organization\\\":{\\\"name\\\":\\\"Chatham University\\\"},\\\"roles\\\":[{\\\"name\\\":\\\"Lecturer\\\",\\\"challenges\\\":[{\\\"description\\\":\\\"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.\\\"}],\\\"startDate\\\":\\\"2016-08-01\\\",\\\"finishDate\\\":\\\"2017-05-31\\\"}]}\",{\"job\":{\"organization\":{\"name\":\"Chatham University\"},\"roles\":[{\"name\":\"Lecturer\",\"challenges\":[{\"description\":\"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.\"}],\"startDate\":\"2016-08-01\",\"finishDate\":\"2017-05-31\"}]}}],[\"$\",\"$Le\",\"$14\",{\"job\":{\"organization\":{\"name\":\"Google Shopping\"},\"roles\":[{\"name\":\"Software Engineer\",\"challenges\":[{\"description\":\"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 \u0026 tooling. I taught internal courses on TypeScript \u0026 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 \u0026 industry practices at Mt Holyoke College.\"}],\"startDate\":\"2015-06-01\",\"finishDate\":\"2017-04-30\",\"competences\":[{\"name\":\"Angular\",\"type\":\"technology\"},{\"name\":\"AngularJS\",\"type\":\"technology\"},{\"name\":\"Dart\",\"type\":\"technology\"},{\"name\":\"TypeScript\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"{\\\"organization\\\":{\\\"name\\\":\\\"Mt Holyoke College \u0026 Google\\\"},\\\"roles\\\":[{\\\"name\\\":\\\"Instructor\\\",\\\"challenges\\\":[{\\\"description\\\":\\\"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.\\\"}],\\\"startDate\\\":\\\"2015-11-01\\\",\\\"finishDate\\\":\\\"2017-01-31\\\"}]}\",{\"job\":{\"organization\":{\"name\":\"Mt Holyoke College \u0026 Google\"},\"roles\":[{\"name\":\"Instructor\",\"challenges\":[{\"description\":\"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.\"}],\"startDate\":\"2015-11-01\",\"finishDate\":\"2017-01-31\"}]}}],[\"$\",\"$Le\",\"{\\\"organization\\\":{\\\"name\\\":\\\"Microsoft TEALS\\\"},\\\"roles\\\":[{\\\"name\\\":\\\"Instructor\\\",\\\"challenges\\\":[{\\\"description\\\":\\\"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.\\\"}],\\\"startDate\\\":\\\"2013-08-01\\\",\\\"finishDate\\\":\\\"2016-05-31\\\",\\\"competences\\\":[{\\\"name\\\":\\\"mit-scratch\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"python\\\",\\\"type\\\":\\\"technology\\\"}]}]}\",{\"job\":{\"organization\":{\"name\":\"Microsoft TEALS\"},\"roles\":[{\"name\":\"Instructor\",\"challenges\":[{\"description\":\"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.\"}],\"startDate\":\"2013-08-01\",\"finishDate\":\"2016-05-31\",\"competences\":[{\"name\":\"mit-scratch\",\"type\":\"technology\"},{\"name\":\"python\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"$15\",{\"job\":{\"organization\":{\"name\":\"Third Cat, LLC\"},\"roles\":[{\"name\":\"Software Architect, Consultant, Training Instructor\",\"challenges\":[{\"description\":\"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.\"}],\"startDate\":\"2014-06-01\",\"finishDate\":\"2015-07-31\",\"competences\":[{\"name\":\"nodejs\",\"type\":\"technology\"},{\"name\":\"socket.io\",\"type\":\"technology\"},{\"name\":\"redis\",\"type\":\"technology\"},{\"name\":\"angularjs\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"{\\\"organization\\\":{\\\"name\\\":\\\"Novus Partners Inc\\\"},\\\"roles\\\":[{\\\"name\\\":\\\"Software Architect\\\",\\\"challenges\\\":[{\\\"description\\\":\\\"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 \u0026 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.\\\"}],\\\"startDate\\\":\\\"2013-10-01\\\",\\\"finishDate\\\":\\\"2014-06-30\\\",\\\"competences\\\":[{\\\"name\\\":\\\"angularjs\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"nodejs\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"gruntjs\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"scala\\\",\\\"type\\\":\\\"technology\\\"}]}]}\",{\"job\":{\"organization\":{\"name\":\"Novus Partners Inc\"},\"roles\":[{\"name\":\"Software Architect\",\"challenges\":[{\"description\":\"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 \u0026 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.\"}],\"startDate\":\"2013-10-01\",\"finishDate\":\"2014-06-30\",\"competences\":[{\"name\":\"angularjs\",\"type\":\"technology\"},{\"name\":\"nodejs\",\"type\":\"technology\"},{\"name\":\"gruntjs\",\"type\":\"technology\"},{\"name\":\"scala\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"{\\\"organization\\\":{\\\"name\\\":\\\"The New York Times\\\"},\\\"roles\\\":[{\\\"name\\\":\\\"Software Engineer\\\",\\\"challenges\\\":[{\\\"description\\\":\\\"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.\\\"}],\\\"startDate\\\":\\\"2012-07-01\\\",\\\"finishDate\\\":\\\"2013-10-31\\\",\\\"competences\\\":[{\\\"name\\\":\\\"nodejs\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"coffeescript\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"git\\\",\\\"type\\\":\\\"technology\\\"}]}]}\",{\"job\":{\"organization\":{\"name\":\"The New York Times\"},\"roles\":[{\"name\":\"Software Engineer\",\"challenges\":[{\"description\":\"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.\"}],\"startDate\":\"2012-07-01\",\"finishDate\":\"2013-10-31\",\"competences\":[{\"name\":\"nodejs\",\"type\":\"technology\"},{\"name\":\"coffeescript\",\"type\":\"technology\"},{\"name\":\"git\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"{\\\"organization\\\":{\\\"name\\\":\\\"Potomac Fusion, inc\\\"},\\\"roles\\\":[{\\\"name\\\":\\\"Software Engineer\\\",\\\"challenges\\\":[{\\\"description\\\":\\\"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.\\\"}],\\\"startDate\\\":\\\"2011-09-01\\\",\\\"finishDate\\\":\\\"2012-06-30\\\",\\\"competences\\\":[{\\\"name\\\":\\\"java\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"JavaScript\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"owf\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"synapse\\\",\\\"type\\\":\\\"technology\\\"}]}]}\",{\"job\":{\"organization\":{\"name\":\"Potomac Fusion, inc\"},\"roles\":[{\"name\":\"Software Engineer\",\"challenges\":[{\"description\":\"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.\"}],\"startDate\":\"2011-09-01\",\"finishDate\":\"2012-06-30\",\"competences\":[{\"name\":\"java\",\"type\":\"technology\"},{\"name\":\"JavaScript\",\"type\":\"technology\"},{\"name\":\"owf\",\"type\":\"technology\"},{\"name\":\"synapse\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"$16\",{\"job\":{\"organization\":{\"name\":\"Design Delegates\"},\"roles\":[{\"name\":\"Software Architect\",\"challenges\":[{\"description\":\"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.\\n\\nOur 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.\\n\\nIn the course of the project, we developed [JEFRi](http://jefri.org), a Javascript Entity Framework to facilitate our mobile development work.\"}],\"startDate\":\"2010-10-01\",\"finishDate\":\"2011-07-31\",\"competences\":[{\"name\":\"JavaScript\",\"type\":\"technology\"},{\"name\":\"jefri\",\"type\":\"technology\"},{\"name\":\"php\",\"type\":\"technology\"},{\"name\":\"crosslight\",\"type\":\"technology\"},{\"name\":\"kohana\",\"type\":\"technology\"},{\"name\":\"sqlite\",\"type\":\"technology\"},{\"name\":\"linux\",\"type\":\"technology\"}]}]}}],[\"$\",\"$Le\",\"{\\\"organization\\\":{\\\"name\\\":\\\"Entre Technology Services, LLC\\\"},\\\"roles\\\":[{\\\"name\\\":\\\"Software Developer\\\",\\\"challenges\\\":[{\\\"description\\\":\\\"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.\\\"}],\\\"startDate\\\":\\\"2007-09-01\\\",\\\"finishDate\\\":\\\"2010-09-30\\\",\\\"competences\\\":[{\\\"name\\\":\\\"java\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\".net\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"entity-framework\\\",\\\"type\\\":\\\"technology\\\"},{\\\"name\\\":\\\"linux\\\",\\\"type\\\":\\\"technology\\\"}]}]}\",{\"job\":{\"organization\":{\"name\":\"Entre Technology Services, LLC\"},\"roles\":[{\"name\":\"Software Developer\",\"challenges\":[{\"description\":\"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.\"}],\"startDate\":\"2007-09-01\",\"finishDate\":\"2010-09-30\",\"competences\":[{\"name\":\"java\",\"type\":\"technology\"},{\"name\":\".net\",\"type\":\"technology\"},{\"name\":\"entity-framework\",\"type\":\"technology\"},{\"name\":\"linux\",\"type\":\"technology\"}]}]}}]]}],[\"$\",\"$Lc\",null,{\"className\":\"studies\",\"header\":\"Education\",\"children\":[[\"$\",\"div\",null,{\"className\":\"education no-print\",\"children\":[[\"$\",\"h4\",null,{\"className\":\"organization\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.seattleu.edu/scieng/computer-science/graduate/mscs/\",\"children\":\"Seattle University\"}]}],[\"$\",\"div\",null,{\"className\":\"about\",\"children\":[[\"$\",\"em\",null,{\"className\":\"name\",\"children\":\"Master of Science Computer Science\"}],[\"$\",\"small\",null,{\"className\":\"start\",\"children\":\"2011-01-01\"}],[\"$\",\"small\",null,{\"className\":\"finish\",\"children\":\"2011-01-01\"}]]}],[\"$\",\"p\",null,{\"className\":\"details justify\",\"children\":\"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.\"}]]}],[\"$\",\"div\",null,{\"className\":\"education \",\"children\":[[\"$\",\"h4\",null,{\"className\":\"organization\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.rocky.edu/academics/course-catalog/computer-science\",\"children\":\"Rocky Mountain College\"}]}],[\"$\",\"div\",null,{\"className\":\"about\",\"children\":[[\"$\",\"em\",null,{\"className\":\"name\",\"children\":\"B.S. Mathematics\"}],[\"$\",\"small\",null,{\"className\":\"start\",\"children\":\"2007-08-01\"}],[\"$\",\"small\",null,{\"className\":\"finish\",\"children\":\"2011-05-31\"}]]}],[\"$\",\"p\",null,{\"className\":\"details justify\",\"children\":\"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.\"}]]}],[\"$\",\"div\",null,{\"className\":\"education \",\"children\":[[\"$\",\"h4\",null,{\"className\":\"organization\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.rocky.edu/academics/course-catalog/mathematics\",\"children\":\"Rocky Mountain College\"}]}],[\"$\",\"div\",null,{\"className\":\"about\",\"children\":[[\"$\",\"em\",null,{\"className\":\"name\",\"children\":\"B.S. Computer Science\"}],[\"$\",\"small\",null,{\"className\":\"start\",\"children\":\"2006-08-01\"}],[\"$\",\"small\",null,{\"className\":\"finish\",\"children\":\"2011-05-31\"}]]}],[\"$\",\"p\",null,{\"className\":\"details justify\",\"children\":\"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.\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"artifacts\",\"children\":[[\"$\",\"$Lc\",null,{\"className\":\"projects\",\"header\":\"Projects\",\"children\":[[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://github.com/DavidSouther/ailly\",\"children\":\"Ailly\"}],\"$undefined\"]}],[\"$\",\"$L18\",null,{\"children\":\"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.\\n\\nRhymes with Daily.\\n\\nAilly'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.\"}]]}],[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://jefri.github.io/jiffies-css//\",\"children\":\"Jiffies CSS\"}],\"$undefined\"]}],[\"$\",\"$L18\",null,{\"children\":\"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.\"}]]}],[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://github.com/nand2tetris/web-ide\",\"children\":\"nand2tetris/web-ide\"}],\"$undefined\"]}],[\"$\",\"$L18\",null,{\"children\":\"Online web IDE for the [nand2tetris](https://www.nand2tetris.org/) computer architecture \u0026 language course.\"}]]}],[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://github.com/DavidSouther/software_craftsmanship\",\"children\":\"DavidSouther/software_craftsmanship\"}],\"$undefined\"]}],[\"$\",\"$L18\",null,{\"children\":\"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.\"}]]}],[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://github.com/DavidSouther/Montana-News-Archive\",\"children\":\"DavidSouther/Montana-News-Archive\"}],\"$undefined\"]}],[\"$\",\"$L18\",null,{\"children\":\"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.\"}]]}]]}],[\"$\",\"$Lc\",null,{\"className\":\"publications\",\"header\":\"Publications\",\"children\":[[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://community.aws/posts/cloud-journeys/01-serverless-image-recognition-app\",\"children\":\"Cloud Journeys: Building a Serverless Image Recognition Website with Machine Learning\"}],[\"$\",\"small\",null,{\"children\":[\" \",[\"$\",\"em\",null,{\"children\":\"2023-06-23\"}]]}]]}],[\"$\",\"$L18\",null,{\"children\":\"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.\"}]]}],[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://codefellows.github.io/common_curriculum/challenges/code/whiteboarding\",\"children\":\"Technical Whiteboarding\"}],[\"$\",\"small\",null,{\"children\":[\" \",[\"$\",\"em\",null,{\"children\":\"2023-04-01\"}]]}]]}],[\"$\",\"$L18\",null,{\"children\":\"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 \u0026 algorithms topics. A section on the \\\"Forward/Backward Method\\\" applies mathematical proof techniques to have a systematic approach to DS\u0026A problem solving.\"}]]}],[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://www.tdcommons.org/dpubs_series/2996/\",\"children\":\"Visualization by Organizing Connections in Collapsible Hierarchical Graphs\"}],[\"$\",\"small\",null,{\"children\":[\" \",[\"$\",\"em\",null,{\"children\":\"2019-06-01\"}]]}]]}],[\"$\",\"$L18\",null,{\"children\":\"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.\"}]]}],[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://stackoverflow.com/questions/17149668/is-stat-an-expensive-system-call/17149924#17149924\",\"children\":\"Is stat() an expensive system call?\"}],[\"$\",\"small\",null,{\"children\":[\" \",[\"$\",\"em\",null,{\"children\":\"2013-06-01\"}]]}]]}],\"$undefined\"]}],[\"$\",\"section\",null,{\"className\":\"pub\",\"children\":[[\"$\",\"p\",null,{\"children\":[[\"$\",\"$L17\",null,{\"href\":\"https://stackoverflow.com/questions/12920892/format-date-time-in-angularjs/12921096#12921096\",\"children\":\"Format Date time in AngularJS\"}],[\"$\",\"small\",null,{\"children\":[\" \",[\"$\",\"em\",null,{\"children\":\"2012-10-01\"}]]}]]}],\"$undefined\"]}]]}]]}]]]}]\n"])</script><script>self.__next_f.push([1,"4:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"David Souther\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"davidsouther.com - resume, blog, playground\"}],[\"$\",\"link\",\"3\",{\"rel\":\"author\",\"href\":\"davidsouther.com\"}],[\"$\",\"meta\",\"4\",{\"name\":\"author\",\"content\":\"David Souther\"}],[\"$\",\"link\",\"5\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\"}],[\"$\",\"meta\",\"6\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"white\"}],[\"$\",\"meta\",\"7\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"black\"}],[\"$\",\"meta\",\"8\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\n"])</script></body></html>