<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects | Scott Miner</title><link>https://scottminer.rbind.io/projects/</link><atom:link href="https://scottminer.rbind.io/projects/index.xml" rel="self" type="application/rss+xml"/><description>Projects</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Sun, 01 Nov 2026 00:00:00 +0000</lastBuildDate><image><url>https://scottminer.rbind.io/media/sharing.png</url><title>Projects</title><link>https://scottminer.rbind.io/projects/</link></image><item><title>Job Grove</title><link>https://scottminer.rbind.io/projects/job-grove/</link><pubDate>Tue, 11 Mar 2025 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/job-grove/</guid><description>&lt;p&gt;Job Grove is a job board and aggregator that pulls job postings into a single, searchable feed. The front end is built with Vue.js and deployed on Netlify.&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Real-time job posts&lt;/strong&gt;: new listings appear in the feed as they are published.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aggregation&lt;/strong&gt;: postings from multiple sources are normalized into one consistent card layout.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Accounts&lt;/strong&gt;: visitors can sign up to save their place and personalize the experience.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Responsive UI&lt;/strong&gt;: the layout adapts from phone to desktop.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Building a responsive single-page application in Vue.js, consuming external APIs, managing client-side state, and shipping a static front end to a CDN.&lt;/p&gt;
&lt;p&gt;
to try it out.&lt;/p&gt;</description></item><item><title>Jackets Store</title><link>https://scottminer.rbind.io/projects/jackets-store/</link><pubDate>Tue, 11 Mar 2025 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/jackets-store/</guid><description>&lt;p&gt;Jackets Store is a full-stack e-commerce proof of concept. A Vue.js storefront talks to a Django REST API that handles products, carts, orders, and user accounts.&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Product catalog&lt;/strong&gt; with product detail pages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shopping cart and checkout&lt;/strong&gt; flow from browsing to order confirmation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User accounts&lt;/strong&gt; for sign-up, login, and order history.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Payments as donations&lt;/strong&gt;: the checkout processes a payment flow for demonstration purposes only. No physical items are shipped.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Designing a REST API with Django REST Framework, authenticating users between a decoupled front end and back end, and modeling the core entities of an online store.&lt;/p&gt;
&lt;p&gt;
to walk through the store.&lt;/p&gt;</description></item><item><title>Dev Blog (ASP.NET MVC)</title><link>https://scottminer.rbind.io/projects/dev-blog/</link><pubDate>Tue, 11 Mar 2025 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/dev-blog/</guid><description>&lt;p&gt;A developer blog I built from scratch on ASP.NET MVC. A RESTful C# backend manages posts and image uploads, and the application is deployed to Azure App Service.&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Post management&lt;/strong&gt;: create, edit, and publish articles with a clean URL handle per post.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image uploads&lt;/strong&gt; handled server-side through a REST endpoint.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server-rendered views&lt;/strong&gt; with ASP.NET MVC for fast, indexable pages.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud hosting&lt;/strong&gt; on Azure App Service.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Server-side .NET skills: MVC architecture, REST API design in C#, file handling, and deploying a .NET web app to Azure. The blog is also where I write about ASP.NET Core topics such as setting up a development environment.&lt;/p&gt;
&lt;p&gt;
to read the latest posts.&lt;/p&gt;</description></item><item><title>eCommerce Microservices</title><link>https://scottminer.rbind.io/projects/ecommerce-microservices/</link><pubDate>Fri, 23 May 2025 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/ecommerce-microservices/</guid><description>&lt;p&gt;An e-commerce platform decomposed into independently deployable microservices. Each service lives in its own repository (wired in as Git submodules), owns its data store, and communicates through an API gateway and a message broker.&lt;/p&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Service&lt;/th&gt;
&lt;th&gt;Responsibility&lt;/th&gt;
&lt;th&gt;Storage &amp;amp; messaging&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Products&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;CRUD API for the catalog with business-logic and data-access layers (EF Core) and xUnit tests&lt;/td&gt;
&lt;td&gt;MySQL, publishes events to RabbitMQ&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Orders&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Order creation and querying, RabbitMQ consumers, Ocelot API gateway for cross-service calls&lt;/td&gt;
&lt;td&gt;MongoDB, Redis cache&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Users&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Authentication and user retrieval with a Dapper data layer&lt;/td&gt;
&lt;td&gt;PostgreSQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Angular 17 single-page app that talks to the services through the gateway&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="deployment"&gt;Deployment&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docker compose -f docker-compose-build.yaml up --build&lt;/code&gt; builds and starts the whole stack with seeded databases for local development.&lt;/li&gt;
&lt;li&gt;Kubernetes manifests under &lt;code&gt;aks/&lt;/code&gt; run every service in Azure Kubernetes Service or any other cluster.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Service boundaries and polyglot persistence, asynchronous communication with RabbitMQ, API gateway patterns with Ocelot, containerization, and orchestrating a multi-service system with Docker Compose and Kubernetes.&lt;/p&gt;</description></item><item><title>Resume Creator Word Add-in</title><link>https://scottminer.rbind.io/projects/resume-creator-addin/</link><pubDate>Sat, 22 Feb 2025 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/resume-creator-addin/</guid><description>&lt;p&gt;Applying for jobs means producing many near-identical documents. Resume Creator turns that into a Ribbon button inside Microsoft Word.&lt;/p&gt;
&lt;h2 id="what-it-does"&gt;What it does&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Database-backed content&lt;/strong&gt;: companies, master experiences, per-role bullet points, qualifications, core competencies, and every job application live in a SQL Server database, so a resume is assembled from data rather than copied from the last one.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Template-driven output&lt;/strong&gt;: a Word template (&lt;code&gt;.dotm&lt;/code&gt;) is filled with the selected role, focus areas, and bullets; a matching cover-letter template reuses the same application record.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI-assisted drafting&lt;/strong&gt;: forms call the OpenAI API with per-request settings (model, temperature, length) to propose bullet points, competencies, key interests, and hidden keywords that are then edited by hand.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Application tracking&lt;/strong&gt;: recruiters, addresses, salary ranges, work arrangement, and status are recorded per application, with saved queries for recent activity.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="engineering"&gt;Engineering&lt;/h2&gt;
&lt;p&gt;The solution is split into a presentation layer (the VSTO add-in), document services, validations, and contract projects, with xUnit and Moq tests and a SQL database project with post-deployment seed scripts. Secrets are stored encrypted outside the repository. The code is private because it holds personal job-search data; ask me about it if you&amp;rsquo;re curious.&lt;/p&gt;</description></item><item><title>IMDb Sentiment Classifier</title><link>https://scottminer.rbind.io/projects/imdb-sentiment-classifier/</link><pubDate>Thu, 07 Nov 2024 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/imdb-sentiment-classifier/</guid><description>&lt;p&gt;A sentiment analysis model trained on the IMDb Movie Reviews dataset to classify reviews as positive or negative.&lt;/p&gt;
&lt;h2 id="approach"&gt;Approach&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Preprocessing&lt;/strong&gt;: tokenization, vocabulary building, and sequence padding of raw review text.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Embeddings&lt;/strong&gt;: pre-trained GloVe word vectors give the network a head start on word meaning.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model&lt;/strong&gt;: a bidirectional LSTM reads each review in both directions, with batch normalization and dropout-style regularization to improve accuracy and generalization.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training and evaluation&lt;/strong&gt;: scripted training loop with held-out evaluation and metrics reporting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;End-to-end NLP with TensorFlow and Keras: text preprocessing, transfer learning with embeddings, recurrent architectures, and disciplined model evaluation.&lt;/p&gt;</description></item><item><title>Word2Vec Skip-Gram in TensorFlow 2</title><link>https://scottminer.rbind.io/projects/word2vec-skipgram-tensorflow/</link><pubDate>Tue, 11 Apr 2023 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/word2vec-skipgram-tensorflow/</guid><description>&lt;p&gt;An implementation of the Word2Vec skip-gram algorithm in TensorFlow 2.0 that learns vector representations of words from a slice of Wikipedia (the text8 dataset).&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;The text8 corpus is downloaded (a helper script fetches it on demand) and processed into a vocabulary, dropping rare words below a frequency threshold.&lt;/li&gt;
&lt;li&gt;A skip-gram model is trained with stochastic gradient descent and noise-contrastive estimation (NCE) loss.&lt;/li&gt;
&lt;li&gt;During training the model is evaluated by finding the nearest neighbors of a set of test words using cosine similarity between their embeddings.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The implementation follows the approach described in Mikolov et al., &lt;em&gt;Efficient Estimation of Word Representations in Vector Space&lt;/em&gt; (2013), and builds on Aymeric Damien&amp;rsquo;s TensorFlow examples.&lt;/p&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Working knowledge of word embeddings, negative-sampling style objectives, and writing training and evaluation loops directly against the TensorFlow 2 API.&lt;/p&gt;</description></item><item><title>FollowEqualizer</title><link>https://scottminer.rbind.io/projects/followequalizer/</link><pubDate>Sat, 14 Sep 2024 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/followequalizer/</guid><description>&lt;p&gt;FollowEqualizer is a GitHub management tool with a desktop GUI. It helps you tidy up who you follow and what you have starred without clicking through the GitHub website one profile at a time.&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Find non-followers (accounts you follow that don&amp;rsquo;t follow you back) and unfollow them in bulk.&lt;/li&gt;
&lt;li&gt;Follow back users who follow you.&lt;/li&gt;
&lt;li&gt;Find and unstar repositories and starred topics.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exceptions list&lt;/strong&gt; to protect specific users or repositories from any action.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comma-separated search&lt;/strong&gt; that highlights matches across every list.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multithreaded operations&lt;/strong&gt; keep the interface responsive during long-running API calls, and a cache speeds up repeated operations.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Building a responsive desktop application in PyQt5, working with a paginated REST API and rate limits, and using worker threads to keep a GUI responsive.&lt;/p&gt;</description></item><item><title>EnhancedTextWriter COM Library</title><link>https://scottminer.rbind.io/projects/enhanced-text-writer-com/</link><pubDate>Thu, 22 Aug 2024 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/enhanced-text-writer-com/</guid><description>&lt;p&gt;EnhancedTextWriterCOM shows how to extend Microsoft Office with .NET: a C# class library is exposed as a COM object, registered with &lt;code&gt;regasm&lt;/code&gt;, and then called from VBA inside a Word document.&lt;/p&gt;
&lt;h2 id="whats-in-the-repository"&gt;What&amp;rsquo;s in the repository&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;EnhancedTextWriterLib&lt;/code&gt;&lt;/strong&gt; (C#): the COM-visible class with a &lt;code&gt;SaveToFile&lt;/code&gt; method that writes text from a VBA form to disk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;EnhancedTextWriter.docm&lt;/code&gt;&lt;/strong&gt;: a macro-enabled Word document with a form that calls the COM object.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;VBA/EnhancedTextWriterVBA.bas&lt;/code&gt;&lt;/strong&gt;: the VBA module demonstrating both binding styles.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="early-vs-late-binding"&gt;Early vs. late binding&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Early binding&lt;/strong&gt; references the type library directly, giving IntelliSense and compile-time type checking.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Late binding&lt;/strong&gt; creates the object at runtime with &lt;code&gt;CreateObject&lt;/code&gt;, trading tooling support for deployment flexibility.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The step-by-step walkthrough, including project settings, assembly signing, and registration troubleshooting, is in the
.&lt;/p&gt;</description></item><item><title>Universal EDA</title><link>https://scottminer.rbind.io/projects/universal-eda/</link><pubDate>Sat, 15 Apr 2023 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/universal-eda/</guid><description>&lt;p&gt;Universal-EDA provides an easy-to-use interface for exploratory data analysis (EDA) and data loading so that the first hour with a new dataset is spent looking at the data rather than writing boilerplate.&lt;/p&gt;
&lt;h2 id="background"&gt;Background&lt;/h2&gt;
&lt;p&gt;The project started while updating an older linear regression project and discovering that the Boston Housing dataset had been removed from newer versions of scikit-learn. Universal-EDA keeps classic teaching datasets available and wraps the repetitive first steps of any analysis.&lt;/p&gt;
&lt;h2 id="features"&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;DataExplorer&lt;/code&gt;&lt;/strong&gt;: summary statistics, missing-value reports, and quick visualizations for any DataFrame.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;DataLoader&lt;/code&gt;&lt;/strong&gt;: loads common datasets from scikit-learn and converts DataFrames to CSV files.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;src&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;DataExplorer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;DataLoader&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;DataLoader&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load_toy_dataset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;boston&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;DataExplorer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;basic_info&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Packaging reusable analysis code into clean classes, and designing small APIs that make day-to-day data work faster.&lt;/p&gt;</description></item><item><title>Sequence Prediction ANN</title><link>https://scottminer.rbind.io/projects/sequence-prediction-ann/</link><pubDate>Thu, 27 Apr 2023 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/sequence-prediction-ann/</guid><description>&lt;p&gt;A compact artificial neural network that learns to predict the next value in a numeric sequence, a small-scale version of the time-series forecasting problem.&lt;/p&gt;
&lt;h2 id="design"&gt;Design&lt;/h2&gt;
&lt;p&gt;The code is deliberately modular so each concern can be swapped or tested on its own:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data preparation&lt;/strong&gt;: turns raw sequences into supervised learning windows and splits train and test sets.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Architecture&lt;/strong&gt;: defines the layers and activation functions of the network.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Training&lt;/strong&gt;: runs the optimization loop and reports evaluation metrics.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;The fundamentals of supervised sequence learning, clean separation of concerns in machine learning code, and model evaluation with scikit-learn utilities.&lt;/p&gt;</description></item><item><title>Healthcare Expert System</title><link>https://scottminer.rbind.io/projects/healthcare-expert-system/</link><pubDate>Mon, 19 Jun 2023 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/healthcare-expert-system/</guid><description>&lt;p&gt;A rule-based expert system that models the decision logic used in heart failure telemonitoring. Given patient-reported measurements and symptoms, the system applies clinical rules to suggest self-care actions and flag situations that need a clinician&amp;rsquo;s attention.&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Domain knowledge is encoded as &lt;strong&gt;rules&lt;/strong&gt; in Pyke, a Python knowledge engine.&lt;/li&gt;
&lt;li&gt;Patient facts (weight changes, blood pressure, symptoms) are asserted into the knowledge base.&lt;/li&gt;
&lt;li&gt;The inference engine fires matching rules to produce recommendations and alerts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Symbolic AI and knowledge representation as a complement to statistical machine learning, and translating a real clinical workflow into explicit, auditable rules.&lt;/p&gt;</description></item><item><title>LeetCode Practice in C#</title><link>https://scottminer.rbind.io/projects/leetcode-practice/</link><pubDate>Thu, 19 Jun 2025 00:00:00 +0000</pubDate><guid>https://scottminer.rbind.io/projects/leetcode-practice/</guid><description>&lt;p&gt;A growing collection of algorithm and data-structure solutions written the way production code should be: documented, tested, and measured.&lt;/p&gt;
&lt;h2 id="structure"&gt;Structure&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Problems&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Solutions with XML documentation, often with more than one approach per problem&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Tests&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;xUnit tests covering every solution (&lt;code&gt;dotnet test&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Runner&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Console app for ad-hoc experiments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Benchmarks&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;BenchmarkDotNet comparisons of alternative implementations&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Problems covered so far focus on arrays and strings, including Two Sum, Remove Duplicates from Sorted Array, Merge Sorted Array, Product of Array Except Self, and Increasing Triplet Subsequence.&lt;/p&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;p&gt;Algorithmic problem solving in C#, test-first habits, and using benchmarks rather than intuition to compare approaches.&lt;/p&gt;</description></item></channel></rss>