I have a passion for open source software and have contributed to a number of projects. I have created 19 repositories on GitHub which have received 295 stars and have been forked 49 times.


Rust-Skiplist is a Rust package that provides an efficient implementation of a skiplist data structure. Skiplists are a type of sorted linked list that allow for fast searching, insertion, and deletion operations with a logarithmic time complexity.

This package offers an API that followings the standard library collections, allowing developers to easily integrate skiplists into their Rust projects. It provides methods for inserting, removing, and searching for elements in the list. The package also provides collections for sets and mapping based on the skiplist.

The package is well-documented, providing clear explanations and examples to guide users. With Rust-Skiplist, Rust developers can leverage the power of skip lists to efficiently manage sorted data structures in their applications.


Simpler-Wick is a LaTeX package designed to simplify the process of typesetting Wick contractions in mathematical expressions. It offers an concise and intuitive syntax, allowing users to easily represent contractions between operators.

Simpler-Wick automates the placement of contraction lines, eliminating the need for manual adjustments. The package comes with comprehensive documentation, providing clear instructions and examples for its usage.

Simpler-Wick is open source and can be accessed on CTAN, making it readily available for LaTeX users. With Simpler-Wick, the task of typesetting Wick contractions becomes effortless, enabling researchers and mathematicians to focus on their content rather than the technicalities.


TikZ-Feynman is a LaTeX package that allows users to easily generate Feynman diagrams within LaTeX with minimal user instructions and without the need of external programs.

It leverages the graph placement algorithms from the TikZ package to automate the placement of many vertices. The specific graph placement algorithm can be specified by the user for various types of diagrams.

Should the automatic placement algorithms fail, TikZ-Feynman also provides a way for user to manually specify the placement of vertices so that even complex diagrams can still be generated with ease.

© 2023 Joshua P. Ellis
This work is licensed under CC BY 4.0