Continuing

This commit is contained in:
Greg Shuflin 2024-10-18 04:11:27 -07:00
parent 5115117ccd
commit a37d820ab3
2 changed files with 112 additions and 109 deletions

View File

@ -8,22 +8,18 @@
<link rel="icon" type="image/x-icon" href="favicon.png"> <link rel="icon" type="image/x-icon" href="favicon.png">
</head> </head>
<body> <body>
<div class="container">
<header> <header>
<div>
<h1>Greg Shuflin — Software Developer</h1>
</div>
<div class="links"> <div class="links">
<h1>Greg Shuflin — Software Developer</h1>
<ul> <ul>
<li>Download <a href="./resume/Greg-Shuflin-Resume.pdf">my resume</a></li> <li>Download <a href="./resume/Greg-Shuflin-Resume.pdf">my resume</a></li>
<li>Contact me: <li>Contact me:
<ul> <ul>
<li><a class="emailLink" href="mailto:greg.shuflin+developerportfolio@protonmail.com">greg.shuflin@protonmail.com</a></li> <li><a class="emailLink" href="mailto:greg.shuflin+developerportfolio@protonmail.com">greg.shuflin@protonmail.com</a></li>
<li><a href='https://www.linkedin.com/in/gregshuflin/'>LinkedIn</a></li> <li><a href='https://www.linkedin.com/in/gregshuflin/'>LinkedIn</a></li>
<li>Nostr: <li><a href="nostr:npub1t4tqw45837fzs0589jqqna0s5wcmzstnsvw2vlrj7934w9l25sgsgnjcsl">Nostr </a>
<a href="nostr:npub1t4tqw45837fzs0589jqqna0s5wcmzstnsvw2vlrj7934w9l25sgsgnjcsl"> <code class="nostrPubkey">npub1t4tqw45837fzs0589jqqna0s5wcmzstnsvw2vlrj7934w9l25sgsgnjcsl</code>
<code>npub1t4tqw45837fzs0589jqqna0s5wcmzstnsvw2vlrj7934w9l25sgsgnjcsl</code>
</a>
</ul>
</li> </li>
<!-- <!--
<li> <li>
@ -33,10 +29,10 @@
--> -->
</ul> </ul>
</div> </div>
</header>
<div class="photo"> <div class="photo">
<img src='self.jpg' alt='Self-photo'> <img src='self.jpg' alt='Self-photo'>
</div> </div>
</header>
<main> <main>
<section> <section>
<h2>About me</h2> <h2>About me</h2>
@ -74,42 +70,42 @@
<ul> <ul>
<li>As part of my work at Toolchain Labs, I was a <a <li>As part of my work at Toolchain Labs, I was a <a href="https://github.com/pantsbuild/pants/commits?author=gshuflin">contributor</a>
href="https://github.com/pantsbuild/pants/commits?author=gshuflin">contributor</a>
to the <a href="https://www.pantsbuild.org/">Pants</a> build system. to the <a href="https://www.pantsbuild.org/">Pants</a> build system.
Much of my work on this project involved porting the codebase from a Much of my work on this project involved porting the codebase from a
legacy Python execution engine to a modern and more performant Rust legacy Python execution engine to a modern and more performant Rust
execution engine execution engine.</li>
<li>I maintain a <a href="https://github.com/typst/typst">typst</a> package <li>I maintain a <a href="https://github.com/typst/typst">typst</a> package
<a href="https://code.everydayimshuflin.com/greg/typst-lepizig-glossing">leipzig-glossing</a> <a href="https://code.everydayimshuflin.com/greg/typst-lepizig-glossing">leipzig-glossing</a>
for typesetting linguistic interlinear glosses according to the Leipzig Glossing for typesetting linguistic interlinear glosses according to the Leipzig Glossing
Rules. Rules.</li>
<li>I'm a user of and <a href="https://github.com/casey/just/commits?author=neunenak">occasional <li>I'm a user of and <a href="https://github.com/casey/just/commits?author=neunenak">occasional
contributor to</a> the <a href="https://github.com/casey/just">just</a> contributor to</a> the <a href="https://github.com/casey/just">just</a>
command runner, written in Rust. command runner, written in Rust.</li>
<li>A wrote a quick and dirty <a href="https://gitea.everydayimshuflin.com/greg/rust-parser-combinator">parser combinator <li>A wrote a quick and dirty <a href="https://code.everydayimshuflin.com/greg/rust-parser-combinator">parser combinator
library</a> in Rust, mostly as a proof of concept. I'd like to see if I can incorporate some of the library</a> in Rust, mostly as a proof of concept. I'd like to see if I can incorporate some of the
ideas from the paper <a href="https://research.rug.nl/en/publications/efficient-parsing-with-parser-combinators"> ideas from the paper <a href="https://research.rug.nl/en/publications/efficient-parsing-with-parser-combinators">
Efficient parsing with parser combinators</a> to make it faster. Efficient parsing with parser combinators</a> to make it faster.</li>
<li>I contributed a basic <a href="https://github.com/koka-lang/koka/pull/193/commits/ab290a41a4249450d9934a4c23d2b8ed7e98b448">Vim <li>I contributed a basic <a href="https://github.com/koka-lang/koka/pull/193/commits/ab290a41a4249450d9934a4c23d2b8ed7e98b448">Vim
plugin</a> for the <a href="https://koka-lang.github.io/koka/doc/book.html">Koka</a> language, plugin</a> for the <a href="https://koka-lang.github.io/koka/doc/book.html">Koka</a> language,
an research programming language experimenting with the very neat idea of an research programming language experimenting with the very neat idea of
algebraic effect systems. algebraic effect systems.</li>
<li>I wrote a simple Rust command line program for <a href="https://github.com/neunenak/hilite"> <li>I wrote a simple Rust command line program for <a href="https://github.com/neunenak/hilite">
for highlighting stderr console output</a>, inspired by Mike Schiraldi's hilite utility, which for highlighting stderr console output</a>, inspired by Mike Schiraldi's hilite utility, which
I used at Meraki for making the actual errors more obvious in lengthy C++ compiler output. It I used at Meraki for making the actual errors more obvious in lengthy C++ compiler output. It
is published on <a href="https://crates.io/crates/hilite">crates.io</a>. is published on <a href="https://crates.io/crates/hilite">crates.io</a>.</li>
</ul> </ul>
</section> </section>
</main> </main>
</div>
</body> </body>
</html> </html>

View File

@ -1,27 +1,34 @@
* { * {
padding: 0;
margin: 0;
box-sizing: border-box; box-sizing: border-box;
} }
body { body {
padding: 0em 0.5em;
background-color:#2B2B4D; background-color:#2B2B4D;
color: white; color: white;
font-family: "Fira Sans", sans-serif; font-family: "Fira Sans", sans-serif;
font-size: 20px;
line-height: 1.5;
display: flex; display: flex;
flex-wrap: wrap; flex-direction: column;
justify-content: center; align-items: center;
} }
header { .container {
text-align: center; max-width: 961px;
width:100%; display: flex;
flex-direction: column;
align-items: center;
} }
header .links {
width: 80%; h1 {
text-align: start; text-align: center;
padding-left: 10%; margin: 0;
padding-top: 1em; }
code.nostrPubkey {
display: none;
} }
a { a {
@ -42,13 +49,13 @@ a.emailLink {
} }
.photo img { .photo img {
width: 100%; max-width: 100%;
} }
/* Desktop */ /* Desktop */
@media only screen and (min-width: 961px) { @media only screen and (min-width: 961px) {
code.nostrPubkey {
display: revert;
}
} }