These are some projects that I've written. Most of them are in TeX right now, but there are a couple of other things in the works.

All code is on my GitHub.


These are some utility packages I've written. Rather than directly changing the output, they provide new logical constructs for you to write your own TeX in.

If you are using Overleaf and want my help, I will take a page from Evan Chen's book:

First install LaTeX properly, then if it still doesn’t work write to me again.

Otherwise, feel free to email me at Discord or Hangouts work as well, if you know how to reach me there.

  • scrambledenvs.sty

    It provides a macro to declare scrambled environments, e.g. scrambled hints or solutions. It was written to serve as a replacement to Evan Chen's code for his geometry book. Install instructions, for the less LaTeX proficient out there, can be found on this GitHub Gist.

  • palette

    Provides tools to create and easily swap out color palettes. This package is meant for designers to use.

    The package provides colorpalette.sty and symbolpalette.sty. (If it was up to me, I would have called the latter symbolsuite, but then the name would not be at all relevant to "palette.")

I've also designed some document classes which provide semantic environments (such as theorem, proof, and solution environments), as well as changing the overall document output drastically. These classes are not documented at all, so my suggestion is that you email me for an example .tex file if interested.

If you are in Math Advance, you will notice that the contest and book classes are not available here. While I am a big proponent of open source, I'd like to have some control over where my professional designs come up. If you want to study the code, please just let me know! I'm willing to send over snippets on an individual basis.

I don't mind at all if you use my personal classes below for any reason.

  • bounce.cls

    The document class that I recommend and people seem to like the most. True to its name, the design is based on a theme of bounciness.

    Each piece of the class can be taken apart. For instance, if you just want to import and use the boxes, you can type \usepackage{bounceboxes}.

  • denniscv

    This is the document class I use to typeset my CV. The TeX source is also available.

  • chennistex

    These are my old personal classes which will recieve limited support. It is strongly recommended that you use bounce.cls unless you have a specific reason to use one of these classes.

    Currently, lucky.cls is used by MAST, so I will probably support it more to some extent.


  • This website. This website was created the following stack: Node JS, React JS, Next JS, Tailwind CSS. It is written in Typescript. It also heavily uses mdx-bundler to convert .mdx files to JSX.