Projects

MiNAA: Microbiome Network Alignment Algorithm

  • C
  • C++
  • R
  • Microbes in the soil interact in complex ways, and these microbiomes can be represented by large, sparse graphs. Currently this kind of data is available, but tools for interpreting it are very limited. The project is to develop an algorithm to efficiently and accurately align microbial networks based on topological and biological input data. This is an ongoing research project with Dr. Claudia Solís-Lemus. For more details, see our software note on arXiv.

    AAG Key Exchange Implementation

  • Python
  • SageMath
  • The Anshel-Anshel-Goldfeld key exchange is a cryptographic protocol based on conjugation in non-abelian groups. Unlike the most popular protocols which are based in number theory and vulnerable to Shor's algorithm, this algebraic method has no known quantum vulnerability.

    This progect provides the first generic implementation of AAG, using the SageMath computer algebra system. This enables the direct and convenient comparison between different platform groups, which is something largely lacking in existing literature. For a more detailed explanation of AAG and this program's capabilities, see this paper.

    De Bruijn Tools

  • Java
  • A de Bruijn Sequence is a cyclic sequence of characters from an alphabet A of length k, which contains all permutations of n characters, exactly once each. Uses for such sequences range from card tricks to gene sequencing. See this blog post to learn more.

    The De Bruijn Tools are a set of algorithms developed for Ben Cartford, an undergraduate researcher at the University of Minnesota. Most notably and most novel among these was an algorithm to generate every de Bruijn sequence for a given alphabet and window. This process involves generating a graph corresponding to the given alphabet and window, traversing the graph's eulerian paths, and parsing out the unique ones. Space and time efficiency are imperative here, as there are 2120, or about 1.3E36 unique sequences for merely the length 8 window on the binary alphabet.

    LatinxInStat & ForensicStat Databases

  • Javascript + React
  • MySQL
  • OAuth
  • The LatinxInStat Database is a web app designed to connect Latinx academics in Statistics and Data Science with parties seeking their expertise. This project was taken on under the direction of Dr. Claudia Solís-Lemus, with the support of the Wisconsin Institute for Discovery and the American Statistical Association.

    Similar in spirit, the ForensicStat Database provides a list of statisticians and data scientists that are interested in aiding forensic scientists or attorneys in the understanding of statistical concepts in forensic science, or serving as experts in trials.

    E2 Flasher

  • C# + WPF
  • An E2 (EEPROM) is a kind of non-volatile read-only memory, which in this case houses the firmware for a particular Emerson product. The goal was to make it possible for this product to receive firmware updates even after final assembly, saving many units from obsolescence. The project was a windows desktop application which connected and translated data between the user and EEPROM over a UART channel using a proprietary protocol.

    Kanban Manager

  • C# + WinForms
  • SQL
  • A kanban in this context referred to a set of shelves whose inventory is tracked. Prior to this, an Emerson manufacturing facility used pen and pad to track inventory. The project was to develop a fullstack Windows desktop app to digitalize this system with Winforms, C#, and SQL. This solution was integrated into the proprietary MES, and leveraged existing network and database infrastructure, making the transition from analog easy.

    It's Your Move

  • Javascript + React
  • It's Your Move was an ambitious athletics project from the team that worked on The Perfect Race project for Dave Haase's Race Across America in 2019. The long term goal of this endeavor was to motivate ley folk to build and stick to fitness habits, and to satiate the desires of hardcore athletes concerned with data like glucose level, core temperature, and more. This effort integrated software and hardware from athletic, medical, IoT and AI areas into a unified platform. My contribution to this platfrom lied primarily in the front-end development of the web app.

    Conway's Game of Life

  • Java + JavaFX
  • Conway's Game of Life is a cellular automaton designed by the late John Conway. It's a "0-player game" played out on a discretely mutating matrix of square, binary cells. The state of the each cell in the grid from one 'generation' (grid state) to the next is determined by the states of its 'neighbors' (immediately adjacent cells). For example, if a cell is 'alive' in the curent generation, and has more than 3 living neighbors, it will be dead in the next generation, as if by overpopulation.