viveret steele

Projects (17)

These are the projects I have worked on, finished, and not finished.

By Date

By Title

Adult Toy Store - Client Request

Date: 2026-01-01
Tags: [startup, computer-graphics, rust]
Categories: projects
3 different slices of screenshots of the toy store website

My friend discussed with me making a site for her toy store and with my web app and computer graphics knowledge, I created a design-your-own-toy online store.

My friend makes toys and discussed with me her plans for an online store and the different ways people can customize and design their toys. By design we mean the visual styling, size, and certain physical attributes of the toy, not the actual morphology of the toy. The user is able to choose from an array of different models of toy as a base for visual designs. The final price of the toy depends on the complexity and amount of materials and time required to make it. This is a fairly simple premise other than an online toy viewer or designer that does not leak the model data. There are existing methods for extracting a 3D model from a collection of images or videos, but there are also ways to mitigate easy theft. Experts will find ways around the model restrictions so spending extra time on extra mitigation methods seemed not worth the time.

Tech Stack

Rust, HTML, WebGL for client-side rendering, OpenGL for server-side rendering.

Project Requirements

  • Point of Sale access (concurrently …
Read More 🔲

MeowDown - Migrating from Jekyll to Rust

Date: 2025-04-4
Tags: [personal, jekyll, rust]
Categories: projects

I took my static jekyll site and wrote a Rust static site generator

Link to MeowDown.

I was not familiar with Jekyll and not satisfied with the site build/deployment, so I started ideating on ways to improve how my site was being generated. Rust already has a lot of libraries I could use to make it easier to build and understand how it works. I decided to make a CLI app for building markdown files with a YAML header and in a folder of HTML/file templates and website assets into a bunch of static HTML files and website assets that can be deployed to any static site hosting like github pages.

Tech Stack

Rust, templating library, HTML and JS

Architecture of MeowDown

My Site

Lessons Learned

I love being able to modify any part of my website’s build process and that it primarily uses Rust and Markdown with HTML templates.

Read More 🔲

Rust MVC Web Framework (rshtml)

Date: 2023-09-01
Tags: [personal, rust]
Categories: projects

A project that I used to learn more about the MVC framework

Link to rshtml

I was curious about how some parts of the C# typed service dependency resolution and web hosting/routing worked. I did some research but not a lot on the different available web frameworks for rust. I mostly wanted to understand what the C# .net framework was doing in order to serve requests to middleware and how it knew to map requests to specific controllers and actions. I did end up understanding how it works and how simple but effective it is and how it actually can be applied to a lot of different software applications.

Architecture

  • Service Collection and dependency injection system
  • Request Middleware, request and response handlers
  • Filters, authentication, controllers, actions, views
  • Partial views, API routes, client event mapping
  • Razor like syntax for view templates
  • Macros for auto-generating code

For more information on this project, see the repository here

Lessons Learned

I now understand the difference between a minimal file hosting server, a proxy server like…

Read More 🔲

Stack Overflow Jobs - Ed Tech Ads

Date: 2023-01-17
Tags: [stackoverflow, c#]
Categories: [projects]
Screenshot of different variants of ed tech ads

Educational technology course ads I worked on at Stack Overflow

Ed Tech Ads was a short lived trial feature for advertisements of educational courses and classes relevant to either the current question in view, the user’s browsing history, or a random selection from curated items. Data was sent to us, we analyzed the data and matched them to questions, and fulfilled a quota of required views while tracking conversions and return on investment. There was an option to do profit sharing instead of a traditional audience size and duration purchase as well as compare efficacy of the different visual styles.

Tech Stack

C# and ASP.NET, SQL, Redis, Machine Learning (handled by data team)

Features

  • Different visual styles of ad
  • Multiple data sources with failover
  • Tracking return on investment through ad metric data

Excerpts from Official Announcement (Jan 17th, 2023)

Link to the Stack Overflow announcement post

Beginning in late January, we’re partnering with two online course providers to present sponsored technology course recommendation advertisements …

Read More 🔲

Migrating my personal site from C# + Razor to Jekyll

Date: 2021-04-13
Tags: [personal, c#, jekyll]
Categories: projects

My mostly static C# + Razor website was converted into a Jekyll project hosted with GitHub Pages.

This was a temporary state of my personal website project where it was no longer actively running all the time but instead was built to run on GitHub pages statically. My site was already mostly static, so the migration was fairly easy. I used Jekyll because that was what was recommended at the time.

Read More 🔲

Pocket Neural Network Android App

Date: 2021-04-13
Tags: [educational, ai, personal, android, kotlin, c++]
Categories: projects
Screenshot of the model selection screen

An app for CRUD, visualization, training, testing, running simple ML models, capable of running on an Android device.

I wanted to mess around with machine learning models in a way that was more intuitive than code and configuration files. I could see that the orchestration and management of models in specific work contexts was a valuable tool, and I wanted to learn about them by building one. The idea to put it on Android was to make use of the camera, microphone, and additional sensors. While this is a fine setup, I wanted process persistence and availability not available on mobile devices, so later I migrated the app into a C# .net core website while leaving the original app working.

Tech Stack

Android SDK + NDK (Kotlin + C++), existing neural network / ml library

Architecture

  • Front-End: Kotlin + Android GUI
  • Back-End: C++

Screenshots

Screenshot of app in training selectionScreenshot of app in data viewer

Reception

Some users tried using the app, but overall there were too many low-level bugs and differences in hardware / OS to fully diagnose and solve issues. A lot of devices probably cannot support these types of programs either. A model can be easily a few hundr…

Read More 🔲

My Personal Web Server

Date: 2020-04-13
Tags: [personal, hardware]
Categories: projects
Photo of the inside of the server, RAM glowing

My personal web server is always on and hosts different programs and services, sometimes used as a build or ai server.

I had a desktop I could theoretically run things on as a server, but I wanted to build a smaller, GPU-less machine with server architecture / specifications so that it could be more efficient and I could turn on my more power hungry desktop off at night or when I’m not using it. I could also use my server as a backup machine for my desktop.

Steps to Building a Computer

This isn’t a complete guide, but just a simple overview of what I did to build my server.

  1. Choose a case size.
  2. Choose a memory and disk size, including number of drives / sticks.
  3. Choose additional PCI hardware as desired.
  4. Choose a motherboard that can supply everything needed for the ram and disks.
  5. Choose a power supply.
  6. Choose a case that can fit all the components.
  7. Assemble computer.
  8. Install linux.

Specifications

PartNamePrice PerCountTotal
MotherboardASRock Z390M-ITX/ac LGA 1151 (300 Series) Intel Z390 HDMI USB 3.1 Mini ITX Intel Motherboard$134.991$134.99
RAMCORSAIR Vengeance RGB Pro 16GB (2 x 8GB) 288-Pin DDR4 DRAM…
Read More 🔲

Stack Overflow Jobs and Company Pages

Date: 2020-01-01
Tags: [stackoverflow, c#]
Categories: projects
this is a test image alt

More details about my work on the jobs and company pages business line at Stack Overflow

The ā€œJobsā€ and ā€œCompany Pagesā€ side of Stack Overflow is a platform for developers and technologists to find, be matched with, or be found by potential future employers. There was also a Candidate Application Service web app / system that was sunset after I joined due to low use compared to external ATSs. A majority of the work was around jobs, company pages, dev story, and the ads. There was a lot of background work to pull in jobs and companies from different sources, interfacing with the sales system to offer different types of ads, and fulfilling ad contracts / quotas.

Tech Stack

C# ASP.NET, HTML, CSS, JS/TS, SQL

Jobs System

  • API for pulling in data from different job sources
  • Editor for manually configuring job ads and information
  • Error handling, key management, API options
  • Job Ad reservation purchases

Company Pages System

  • Editor for the public profile
  • Candidate management and tracking, messaging
  • Company posts, feed for users
  • Company Ad reservation purchases

Ad System

  • Interface…
Read More 🔲
Date: 2019-08-01
Tags: [stackoverflow, c#]
Categories: [projects]
Wireframe drawing of the candidate message search

More details about the candidate message search engine I made at Stack Overflow

The first few weeks to month at Stack Overflow for new employees is spent brainstorming, researching, planning, developing, and presenting a problem and solution or new feature. I noticed the messages page between recruiters, hiring managers, and candidates only showed a paginated view without any filters or options. I just finished learning about Elastic Search and had already been messing around with sentiment analysis and machine learning for a while, so I came up with the idea and plan to implement candidate message search, and recruiters and hiring managers can search by sentiment.

Tech Stack

C#, Elastic Search, tiny-dnn for the sentiment analysis ML model

Architecture

  • Elastic index: UserMessages (a message for either candidate or employer) with extra options for searching
  • Background service in the web server to sync the messages database with an elasticsearch index specifically optimized for searching messages and by sentiment
  • One time training of a machine learning model on mov…
Read More 🔲

Android File Scrambler App

Date: 2019-05-01
Tags: [personal, android, kotlin]
Categories: [projects]
Screenshot of the app showing various file corruption options

An app that was like a port of an existing desktop app

There is a streamer I used to watch where he would play old games on emulators but with a plugin that would randomize and corrupt live memory or ROM which would cause unpredictable and/or funny results, similar to how the real consoles would behave when tilting a cartridge while the game was running. There was a desktop app that was primarily used for this but I had been playing games I previously owned on my phone, and wanted to also be able to do the same thing on my phone.

Tech Stack

Kotlin and Android SDK

App Features

  • Apply different math operations to static or parametric memory segments
  • Different output options for different use cases (same file or timestamped, or custom output destination)
  • The play button initiates Android to open an emulator with the output ROM
  • Most of the same features as the desktop app
Main app screen showing different corruption optionsHelp screen showing explanations for options

Reception

Users appreciated having a mobile app but ran into a few different issues trying to use it, specifically crashes from permission or data issues.

Lessons Learned

…
Read More 🔲

UW Project - PiLexa

Date: 2017-03-09
Tags: [school, ai, android, java, kotlin]
Categories: [projects]

PiLexa is a platform and framework for a voice AI assistant that can run on a Raspberry Pi or other similar SBC.

Project PiLexa was an idea I had while researching NLPs (natural language processors) and voice assistants for phones and smart homes. Given there are most frequently used phrases as indicators of a certain action or task, or most frequently asked questions from an assistant, we can write NLP ā€œcodeā€ to extract data and match to known handlers. The interface is voice-to-text and text-to-speech which are both well developed technologies with open source libraries and free local ML models.

One of my classes wanted us to make an Android app, so I made an app to interface with an instance of the server on a device on the local network. The phone and device (a raspberry pi with a microphone or laptop) both can forward audio or text to the server, and the server will by default output voice, but can be configured to send back an audio file or just text responses. The app has a background service to poll for events from the server and the events include voice commands to control the phone.

Lin…

Read More 🔲

McKinstry - Project Spider Silk

Date: 2016-12-01
Tags: [mckinstry, c#, vb]
Categories: [projects]

I worked on one large overarching project that contained many connected subprojects

We picked the name ā€œProject Spider Silkā€ because of how much it connected to other applications and how it connected them all to each other in a web. The name is merely a synonym and alias for the collection of projects but it solved the problem of data silos and friction in working with data. As more connections were made, more possibilities were created, which shaped how the project was built, how it functioned, and overall improved how connected engineers felt to coworkers and the data they were working on.

Excel Spreadsheets Plugin

The Excel Spreadsheets plugin would sync data in the Excel documents with the central system. When the user opens an Excel document that the plugin recognizes, it will check the central system first for new data and ask the user if they want to update their version or cherry pick changes. Some of the Excel documents were necessary to complete and send results back to the central system as a part of the engineering design process on some projects.

Revit P…

Read More 🔲

Tiny Mesh Viewer / Hackathon

Date: 2016-03-13
Tags: [hackathon, android, kotlin, c++]
Categories: projects
Screenshot of the mesh viewing app with a 3D scan of a sculpted bust

A hackathon project for viewing a mesh on an Android device for benchmarking and load testing Android GPUs.

I went to a hackathon in 2016 called the ā€œXPRT Women Code-A-Thonā€ for students to develop resource intensive applications using or for the benchmarking tool suite. My idea was to utilize my computer graphics knowledge to develop a GPU benchmarking tool.

Link to the hackathon event page

Link to code repository

Main app screen showing different rendering optionsHelp screen showing explanations for options

Tech Stack

Android SDK + NDK, Kotlin, C++

App Features

  • Load mesh data from PLY and other supported formats
  • Different options for color and texture of background and mesh
  • Lighting toggle
  • Touch screen to rotate mesh
  • A few test meshes included by default

Architecture

  • Main Activity with a rendering canvas using GLES
  • GUI for manipulating and viewing the render options and render state
  • GPU shaders that take the render options and state to render the intended view

Reception

My app was received well at the competition and I won 1st place. I later took the app and made a few changes before releasing it to the Google Play Store. Users on the app had problems with file/folder permissi…

Read More 🔲

Buffet Me Android App

Date: 2015-09-29
Tags: [personal]
Categories: [projects]
Screenshot of the BuffetMe app on the Google Play Store in 2015

BuffetMe is an app idea and project for sharing and discovering food recipes with others.

I was inspired by how so many people post food pictures on social media but without a recipe. Additionally, a lot of recipe websites do not easily convert measurements or sizing (sometimes it is because the recipe does not scale exactly, but this could be solved by software). If the wider view goal of it being a kind of social-media site did not work out and I was the only user, then I could use it to track, search, and manage my own recipes.

Tech Stack

  • App: Java, Android SDK
  • Server: PHP, SQL

Architecture

  • App: Login or Register Activity -> Main Activity which can show Following posts or Search. Profiles and posts are loaded as needed by the server via JSON API.
  • Server: Simple PHP API for CRUD users, posts, tags, followers.

Screenshots

Screenshot of a post of a casserole dishScreenshot of tag searchMain menu screen

Reception

I never fully completed the app, so the beta was never finished which would have opened registration to the public. The early feedback I received was that it was a fun idea app and there was some value in being able to search for recip…

Read More 🔲

LGBT Lingo - My First App

Date: 2015-01-01
Tags: [educational, personal]
Categories: projects
A few screenshots of the app, the first is an index, the second is a guide screen, and the third screen is a word definition

A project that I used to learn about Android software development as well as make something meaningful and helpful to myself and the LGBT community

Link to LGBT Lingo.

When I was learning more about releasing software for one of the more common devices, phones, and learning more about gender and sexuality, and all the different terms for different expressions and identities, I had an idea that it would be helpful to have an easily searchable list of LGBTQIA+ related words and their definitions. This would both help people looking to find the right words for their feelings, and help those hearing or reading new words understand what others are expressing.

Tech Stack

  • 2014 - 2019: Java, Android SDK, Google Play Store
  • 2016 - 2019: C# .NET core, my home server / personal site
  • 2019 - now: Rust, HTML, JS, my Static Site Generator meowdown, GitHub (host)

App Flow

The user is first shown an alphabetically sorted list of words and short definitions. Above the list is a search bar and to the right is an index of A-Z letters to jump to in the list. When a user clicks on a word/definition row, they are brought to a view of the word with a lo…

Read More 🔲

Voxel Rendering Engine

Date: 2014-11-17
Tags: [personal, computer-graphics, c++]
Categories: projects
Screenshot of a voxel 3D environment

A voxel 3D rendering engine written in C++ using OpenGL.

One of my hackathon ideas was to write a C++ voxel rendering engine and if successful use it in a future project. I feel like as a proof of concept or minimal viable product it fits the requirements. Any other changes would be making modifications to the voxel rendering engine. I did end up using it in future projects but the original hackathon code is lost to the sands of time.

What is a Voxel?

A voxel (short for Volumetric Pixel) is the 3D equivalent of a 2D pixel.

  • Think of a 2D image made of pixels.
  • Imagine a series of these 2D grids so that the space between a grid is 1 unit in the Z direction. The squares now form tiny cubes, each existing at a specific X, Y, Z coordinate.
  • Each of these tiny cubes is a voxel.

What is a Voxel Engine?

Voxel Engine is a type of graphics engine and game engine architecture built around manipulating and rendering these 3D grid cells (voxels). Instead of representing the world using complex polygon meshes (like triangles used in traditional 3D engi…

Read More 🔲

Survivor Game - My First Game

Date: 2010-01-01
Tags: [personal, lua, c++]
Categories: [projects]
A series of 3 screenshots of different iterations of the Survivor Game

A project that I used to learn much about code and computers

After messing around with scripting on various sandbox games, I wanted to have the freedom of running scripts and code without a large runtime framework that required lots of resources and an internet connection. I did some research on what frameworks were available for 2D lua games, and one stood out as a potential solution: Love2D. After maybe a year or two of this, I realized it was not efficient enough for the kind of game I wanted to make, so I had to start from square one: an efficient programming language that can make games and run on low end machines, which meant C++. After learning C++ I continued developing the game and different features, learning about software architecture and computer graphics along the way. I stopped working on the project when I had other ideas for games using the same C++ base engine but new art assets and lua scripts.

Screenshot of a basic 3D environment with a blocky character

Screenshots

Screenshot of a 2D top down tile view of a city Screenshot of a basic 3D environment with a blocky character Screenshot of a basic 3D environment with a blocky character Screenshot of a basic 3D environment with a blocky character holding a blocky shotgun

Lua

The Love2D engine provides a lot of things for free, so I mostly worked on a game orchestration app. The physics …

Read More 🔲