<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Projects on Hugh Zheng's website</title><link>https://yuzh98.github.io/projects/</link><description>Recent content in Projects on Hugh Zheng's website</description><generator>Hugo</generator><language>en</language><managingEditor>hugh.stats@gmail.com (Hugh Zheng)</managingEditor><webMaster>hugh.stats@gmail.com (Hugh Zheng)</webMaster><lastBuildDate>Wed, 20 May 2026 12:00:00 -0400</lastBuildDate><atom:link href="https://yuzh98.github.io/projects/index.xml" rel="self" type="application/rss+xml"/><item><title>Academic Application Tracker</title><link>https://yuzh98.github.io/projects/academic-application-tracker/</link><pubDate>Wed, 20 May 2026 12:00:00 -0400</pubDate><author>hugh.stats@gmail.com (Hugh Zheng)</author><guid>https://yuzh98.github.io/projects/academic-application-tracker/</guid><description>&lt;blockquote>
&lt;p>Open-source · &lt;a href="https://github.com/YuZh98/academic-application-tracker" target="_blank" rel="noopener noreffer ">github.com/YuZh98/academic-application-tracker&lt;/a>&lt;/p>&lt;/blockquote>
&lt;p>A local Streamlit dashboard that answers one question every morning: &lt;strong>&amp;ldquo;What do I do today?&amp;rdquo;&lt;/strong>&lt;/p>
&lt;p>Track dozens of postdoc, PhD, faculty, and fellowship applications in parallel — deadlines, recommendation letters, materials checklists, interview rounds — without a single missed follow-up.&lt;/p>
&lt;p>&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://raw.githubusercontent.com/YuZh98/academic-application-tracker/main/docs/ui/screenshots/v0.11.0/dashboard-1280.png"
 data-srcset="https://raw.githubusercontent.com/YuZh98/academic-application-tracker/main/docs/ui/screenshots/v0.11.0/dashboard-1280.png, https://raw.githubusercontent.com/YuZh98/academic-application-tracker/main/docs/ui/screenshots/v0.11.0/dashboard-1280.png 1.5x, https://raw.githubusercontent.com/YuZh98/academic-application-tracker/main/docs/ui/screenshots/v0.11.0/dashboard-1280.png 2x"
 data-sizes="auto"
 alt="https://raw.githubusercontent.com/YuZh98/academic-application-tracker/main/docs/ui/screenshots/v0.11.0/dashboard-1280.png"
 title="Dashboard" />&lt;/p>
&lt;p>&lt;a href="https://github.com/YuZh98/academic-application-tracker/actions/workflows/ci.yml" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://github.com/YuZh98/academic-application-tracker/actions/workflows/ci.yml/badge.svg?branch=main"
 data-srcset="https://github.com/YuZh98/academic-application-tracker/actions/workflows/ci.yml/badge.svg?branch=main, https://github.com/YuZh98/academic-application-tracker/actions/workflows/ci.yml/badge.svg?branch=main 1.5x, https://github.com/YuZh98/academic-application-tracker/actions/workflows/ci.yml/badge.svg?branch=main 2x"
 data-sizes="auto"
 alt="https://github.com/YuZh98/academic-application-tracker/actions/workflows/ci.yml/badge.svg?branch=main"
 title="CI" />&lt;/a> &lt;a href="https://github.com/YuZh98/academic-application-tracker/blob/main/pyproject.toml" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://img.shields.io/badge/python-3.11%E2%80%933.14-blue"
 data-srcset="https://img.shields.io/badge/python-3.11%E2%80%933.14-blue, https://img.shields.io/badge/python-3.11%E2%80%933.14-blue 1.5x, https://img.shields.io/badge/python-3.11%E2%80%933.14-blue 2x"
 data-sizes="auto"
 alt="https://img.shields.io/badge/python-3.11%E2%80%933.14-blue"
 title="Python" />&lt;/a> &lt;a href="https://github.com/YuZh98/academic-application-tracker/blob/main/pyproject.toml" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://img.shields.io/badge/coverage-97%25-brightgreen"
 data-srcset="https://img.shields.io/badge/coverage-97%25-brightgreen, https://img.shields.io/badge/coverage-97%25-brightgreen 1.5x, https://img.shields.io/badge/coverage-97%25-brightgreen 2x"
 data-sizes="auto"
 alt="https://img.shields.io/badge/coverage-97%25-brightgreen"
 title="Coverage" />&lt;/a> &lt;a href="https://github.com/YuZh98/academic-application-tracker/blob/main/LICENSE" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://img.shields.io/badge/License-MIT-yellow.svg"
 data-srcset="https://img.shields.io/badge/License-MIT-yellow.svg, https://img.shields.io/badge/License-MIT-yellow.svg 1.5x, https://img.shields.io/badge/License-MIT-yellow.svg 2x"
 data-sizes="auto"
 alt="https://img.shields.io/badge/License-MIT-yellow.svg"
 title="License: MIT" />&lt;/a>&lt;/p></description></item><item><title>latex2arxiv</title><link>https://yuzh98.github.io/projects/latex2arxiv/</link><pubDate>Wed, 20 May 2026 12:00:00 -0400</pubDate><author>hugh.stats@gmail.com (Hugh Zheng)</author><guid>https://yuzh98.github.io/projects/latex2arxiv/</guid><description>&lt;blockquote>
&lt;p>Open-source · &lt;a href="https://github.com/YuZh98/latex2arxiv" target="_blank" rel="noopener noreffer ">github.com/YuZh98/latex2arxiv&lt;/a>&lt;/p>&lt;/blockquote>
&lt;p>&lt;a href="https://pypi.org/project/latex2arxiv/" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://img.shields.io/pypi/v/latex2arxiv.svg"
 data-srcset="https://img.shields.io/pypi/v/latex2arxiv.svg, https://img.shields.io/pypi/v/latex2arxiv.svg 1.5x, https://img.shields.io/pypi/v/latex2arxiv.svg 2x"
 data-sizes="auto"
 alt="https://img.shields.io/pypi/v/latex2arxiv.svg"
 title="PyPI" />&lt;/a>
&lt;a href="https://pypi.org/project/latex2arxiv/" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://img.shields.io/pypi/dm/latex2arxiv.svg"
 data-srcset="https://img.shields.io/pypi/dm/latex2arxiv.svg, https://img.shields.io/pypi/dm/latex2arxiv.svg 1.5x, https://img.shields.io/pypi/dm/latex2arxiv.svg 2x"
 data-sizes="auto"
 alt="https://img.shields.io/pypi/dm/latex2arxiv.svg"
 title="Downloads" />&lt;/a>
&lt;a href="https://github.com/YuZh98/latex2arxiv/actions/workflows/test.yml" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://github.com/YuZh98/latex2arxiv/actions/workflows/test.yml/badge.svg"
 data-srcset="https://github.com/YuZh98/latex2arxiv/actions/workflows/test.yml/badge.svg, https://github.com/YuZh98/latex2arxiv/actions/workflows/test.yml/badge.svg 1.5x, https://github.com/YuZh98/latex2arxiv/actions/workflows/test.yml/badge.svg 2x"
 data-sizes="auto"
 alt="https://github.com/YuZh98/latex2arxiv/actions/workflows/test.yml/badge.svg"
 title="Tests" />&lt;/a>
&lt;a href="https://www.python.org/" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://img.shields.io/badge/python-3.10&amp;#43;-blue.svg"
 data-srcset="https://img.shields.io/badge/python-3.10&amp;#43;-blue.svg, https://img.shields.io/badge/python-3.10&amp;#43;-blue.svg 1.5x, https://img.shields.io/badge/python-3.10&amp;#43;-blue.svg 2x"
 data-sizes="auto"
 alt="https://img.shields.io/badge/python-3.10&amp;#43;-blue.svg"
 title="Python" />&lt;/a>
&lt;a href="https://github.com/YuZh98/latex2arxiv/blob/main/LICENSE" target="_blank" rel="noopener noreffer ">&lt;img
 class="lazyload"
 src="https://yuzh98.github.io/svg/loading.min.svg"
 data-src="https://img.shields.io/badge/license-MIT-green.svg"
 data-srcset="https://img.shields.io/badge/license-MIT-green.svg, https://img.shields.io/badge/license-MIT-green.svg 1.5x, https://img.shields.io/badge/license-MIT-green.svg 2x"
 data-sizes="auto"
 alt="https://img.shields.io/badge/license-MIT-green.svg"
 title="License: MIT" />&lt;/a>&lt;/p>
&lt;p>&lt;strong>Submit to arXiv without the headache. One command cleans your project, catches rejection-causing errors, and walks you through the upload.&lt;/strong>&lt;/p></description></item></channel></rss>