You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PersonalWebsite_Static/index.html

36 lines
34 KiB
HTML

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="theme-color" content="#000000"><meta name="description" content="Julie Cover's Personal Website"><link rel="manifest" href="/manifest.json"><link rel="icon" href="/favicon-32.png" sizes="32x32"><link rel="icon" href="/favicon-128.png" sizes="128x128"><link rel="icon" href="/favicon-192.png" sizes="192x192"><link rel="shortcut icon" href="/favicon-196.png" sizes="196x196"><link rel="apple-touch-icon" href="/favicon-152.png" sizes="152x152"><link rel="apple-touch-icon" href="/favicon-167.png" sizes="167x167"><link rel="apple-touch-icon" href="/favicon-180.png" sizes="180x180"><title>Julie Cover</title><script async="" defer="defer" data-website-id="7b846b7f-e368-441b-9663-0436eabec402" src="https://umami.cobular.com/umami.js"></script><link href="/static/css/2.85610714.chunk.css" rel="stylesheet"><link href="/static/css/main.8feef5f1.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><div class="App" data-reactroot=""><main><div id="home"><div id="about-me-parent"><div id="about-me" class="about-me-card"><h1 aria-label="Title">Hi! I'm Julie!</h1><div id="info-parent" aria-label="About Me"><div id="specific-info" aria-label="Facts"><h2> A bit about me:</h2><ul><li><b>Occupation:</b> Student</li><li><b>Location:</b> Southern California</li><li><b>Pronouns</b>: She/Her</li><li>19 and 7/16<!-- --> years old</li><li>not listening to anything right now.</li></ul></div><div id="fun-info" aria-label="Contacts"><h2>Find Me:</h2><ul><li>Email: <button>Click This</button></li><li>Twitter:<!-- --> <a href="https://twitter.com/cobular_" target="_blank" rel="noreferrer" tabindex="0">@cobular_</a></li><li>GitHub:<!-- --> <a href="https://github.com/Cobular" target="_blank" rel="noreferrer" tabindex="0">JakeCover</a></li><li>Telegram:<!-- --> <a href="https://t.me/codular" target="_blank" rel="noreferrer" tabindex="0">@cobular</a></li><li>Elsewhere: Probably @cobular</li></ul></div></div></div></div><div id="project-grid-background" style="padding-bottom:20px"><div id="project-grid-parent" aria-label="My Projects"><div id="project-header" aria-label="Projects Header"><h2>&lt;/&gt; My Projects</h2><p>A gallery of some of my most interesting projects. Look for<!-- --> <span role="img" aria-label="link" class="anticon anticon-link"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span>, click those projects for more information!</p></div><div id="project-grid" aria-label="Projects Grid"><div class="GridSizer"></div><div class="OneWide GridElement" role="gridcell"><a class="Link GridElementInternal" href="https://github.com/codeday/labs-elastic-match" rel="noreferrer" target="_blank" tabindex="0"><div class="title"><h2>ElaticMatch</h2><h3>CodeDay</h3><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><p>A set of tools, including a custom suggestion and weighting system, as well as a custom matching
algorithm that I wrote and used to match around 350 students to the best-fitting mentors in the CodeDay
Labs summer internship program in 2020.</p></div></a></div><div class="OneWide GridElement" role="gridcell"><a class="Link GridElementInternal" href="https://github.com/codeday/johnpeter-discord" rel="noreferrer" target="_blank" tabindex="0"><div class="title"><h2>John Peter</h2><h3>CodeDay</h3><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><p>John Peter is a Discord bot used for moderation and server management for Virtual CodeDay. It has a very
extensive featureset with a number of custom moderation and authentication tools and has been used for
multiple CodeDay events, impacting well over 1,000 students.</p></div></a></div><div class="OneWide GridElement" role="gridcell"><a class="Link GridElementInternal" href="https://github.com/Cobular/distest" rel="noreferrer" target="_blank" tabindex="0"><div class="title"><h2>Distest</h2><h3>Random Projects</h3><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><p>Distest is a testing library I wrote for Discord bots that allows for full integration tests of bots,
improving the discord bot development workflow significantly. As far as I know, it's the only tool
available for this sort of testing. Unfortunately, this has been deprecated in favor of other, more full
featured libraries.</p></div></a></div><div class="OneWide Pic GridElement "><a class="GridElementInternal Link" href="https://event.codeday.org/sandiego" target="_blank" rel="noreferrer" tabindex="0"><div class="image"><img src="/static/media/SanDiego.35f8cc09.svg" alt="CodeDay San Diego Logo"><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><h2>CodeDay San Diego</h2><h3>CodeDay</h3><p>A 24 hour hackathon occurring around the world a few times a year. I volunteered for and then later ran
the San Diego event where I grew to love hackathons and leaned a lot about leadership and event logistics
in the process!</p></div></a></div><div class="FourByOne GridElement"><div class="GridElementInternal"><div class="image"><img src="data:image/png;base64,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" alt="Foresight Sports Logo"></div><div class="description"><h2>Foresight Sports</h2><p>Foresight Sports creates advanced augmented reality sports experiences. I created multiple games using
Unity that took data from their launch monitor technology and translated it into a seamless experience.</p></div></div></div><div class="OneWide Pic GridElement "><a class="GridElementInternal Link" href="https://github.com/Cobular/ScoreSaverExtention" target="_blank" rel="noreferrer" tabindex="0"><div class="image"><img src="/static/media/scoresaver.3f65e348.svg" alt="Scoresaver Logo"><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><h2>ScoreSaver</h2><h3>Random Projects</h3><p>A Chrome extension to help you download BeatSaber songs directly from ScoreSaber. No more searching for
mapper names on BeatSaver, just download the newest ranked songs directly!</p></div></a></div><div class="OneWide GridElement"><div class="GridElementInternal" role="gridcell"><div class="title"><h2>Assorted Discord Bots</h2><h3>Random Projects</h3></div><div class="description"><p>I've made quite a number of discord bots over time! Some of them, like ReplyBot, which added a reply
functionality to Discord years before they finally implemented it first-party, have been obsoleted
nowadays, others like DiscordChannelMirror just do simple things for my own use, and many more have been
lost to time and past me's lack of understanding of the importance of backup. I digress, however I really
do love writing these sorts of applications!</p></div></div></div><div class="Medium GridElement"><div class="GridElementInternal"><div class="image"><img src="/static/media/HashiCorp_Logo_no_text.344aecaa.png" alt="HashiCorp Logo"></div><div class="description"><h2>Hashicorp Stack Sysadmin</h2><h3>CodeDay, Random Projects</h3><p>I've setup and used a stack consisting of Nomad, Consul, and Vault along with Traefik both at CodeDay,
where it runs almost every service we have, as well as at home, where I use it to run over 25 services on
a cluster of old machines. I strongly recommend it as it's a very easy way utilize old hardware, even when
each machine may not be that powerful powerful and not all that complex to get started with at any scale,
from one personal server to large corporate backends.</p></div></div></div><div class="OneWide GridElement" role="gridcell"><a class="Link GridElementInternal" href="https://github.com/Cobular/PersonalWebsite_Static" rel="noreferrer" target="_blank" tabindex="0"><div class="title"><h2>Personal Website</h2><h3>Random Projects</h3><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><p>You're looking at it! There's not a whole lot to this, it's just a React site hosted on GitHub Pages,
but I didn't know React before starting on this so I'm pretty proud of it.</p></div></a></div><div class="OneWide GridElement" role="gridcell"><a class="Link GridElementInternal" href="https://github.com/Cobular/NomadJobTemplatesTool" rel="noreferrer" target="_blank" tabindex="0"><div class="title"><h2>Nomad Job Templates Tool</h2><h3>Random Projects</h3><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><p>A little custom tool to allow you to use jinga-esque text substitutions in Nomad jobfiles to help
centralize the definition of service traefik tags. This mainly makes it easier to update and change
networking configuration across many jobs easily.</p></div></a></div><div class="OneWide Pic GridElement "><a class="GridElementInternal Link" href="https://www.shushicate.com/" target="_blank" rel="noreferrer" tabindex="0"><div class="image"><img src="/static/media/kat-site.d60ec831.png" alt="Kat's Logo"><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><h2>Shushicate</h2><h3>Random Projects</h3><p>An art gallery website for my friend, made in svelte. The images are optimized and compressed at
compiletime, creating a few versions and allowing the browser to choose which to display using imageset.
The full resolution image is only sent when selecting an image, keeping the site performant.</p></div></a></div><div class="OneWide GridElement" role="gridcell"><a class="Link GridElementInternal" href="https://github.com/OVRTools" rel="noreferrer" target="_blank" tabindex="0"><div class="title"><h2>OVRTools</h2><h3>Random Projects</h3><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><p>This one's a bit more work in progress than some of the others here. It is a set of tools to help people
develop OpenVR plugins more easily and independently from Unity. It will eventually grow to include
multiple additional input methods and other tools to allow users to interact with other OVR plugins more
easily.</p></div></a></div><a class="Medium GridElement Link" href="https://www.bennu.io/" target="_blank" rel="noreferrer" tabindex="0"><div class="GridElementInternal"><div class="image"><img src="/static/media/bennu.e9020d82.gif" alt="A B logo"><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><h2>Bennu</h2><h3>Work Experience</h3><p>Bennu made various engineering management and performance analysis tools for other software companies.
Here, I mainly implemented the crawler for Jira Server, adding a whole new application we could offer to
customers. I also worked on internal tooling and optimized our test runtime by 50% before the startup
closed from beneath me in the middle of the summer of 2021.</p></div></div></a><div class="OneWide GridElement" role="gridcell"><a class="Link GridElementInternal" href="https://github.com/Cobular/BetterDiscordExtensions/tree/main/plugins/CopyMoji" rel="noreferrer" target="_blank" tabindex="0"><div class="title"><h2>CopyMoji</h2><h3>BetterDiscord</h3><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><p>An extension for the alternate discord client BetterDiscord that changes the functionality of copying
emoji to copy the actual emoji characters rather than their names from the discord client.</p></div></a></div><div class="OneWide GridElement" role="gridcell"><a class="Link GridElementInternal" href="https://Cobular.github.io/WhatsThatNumberExtension/" rel="noreferrer" target="_blank" tabindex="0"><div class="title"><h2>What's That Number</h2><h3>Random Projects</h3><span role="img" aria-label="link" class="anticon anticon-link LinkIcon"><svg viewBox="64 64 896 896" focusable="false" data-icon="link" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"></path></svg></span></div><div class="description"><p>A service that allows for the reversing of arbitrary decimals back to fractions of irrational numbers.
Basically, it's able to reverse 3.1415 to π, but more interestingly reverse 0.385694 to √2 * 3 / 11!
It can't solve all problems and it isn't mathematically provable or anything, but it's optimized to
give you the right answer for most things you'll actually run into and tell you when you've gotten
nothing.</p></div></a></div></div></div></div></div></main></div></div><script>!function(e){function t(t){for(var n,i,a=t[0],c=t[1],l=t[2],f=0,p=[];f<a.length;f++)i=a[f],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(s&&s(t);p.length;)p.shift()();return u.push.apply(u,l||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==o[c]&&(n=!1)}n&&(u.splice(t--,1),e=i(i.s=r[0]))}return e}var n={},o={1:0},u=[];function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[],r=o[e];if(0!==r)if(r)t.push(r[2]);else{var n=new Promise((function(t,n){r=o[e]=[t,n]}));t.push(r[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"dd242330"}[e]+".chunk.js"}(e);var c=new Error;u=function(t){a.onerror=a.onload=null,clearTimeout(l);var r=o[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),u=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,r[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,r){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(r,n,function(t){return e[t]}.bind(null,n));return r},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/",i.oe=function(e){throw console.error(e),e};var a=this["webpackJsonppersonal-website-static"]=this["webpackJsonppersonal-website-static"]||[],c=a.push.bind(a);a.push=t,a=a.slice();for(var l=0;l<a.length;l++)t(a[l]);var s=c;r()}([])</script><script src="/static/js/2.18e12b66.chunk.js"></script><script src="/static/js/main.a7436f4c.chunk.js"></script></body></html>