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

@ -1,29 +1,25 @@
<!DOCTYPE html>
<html lang="en">
<head>
<head>
<title>Greg Shuflin — Software Developer</title>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width'>
<link href="style-mobile.css" rel="stylesheet">
<link rel="icon" type="image/x-icon" href="favicon.png">
</head>
<body>
</head>
<body>
<div class="container">
<header>
<div>
<h1>Greg Shuflin — Software Developer</h1>
</div>
<div class="links">
<h1>Greg Shuflin — Software Developer</h1>
<ul>
<li>Download <a href="./resume/Greg-Shuflin-Resume.pdf">my resume</a></li>
<li>Contact me:
<ul>
<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>Nostr:
<a href="nostr:npub1t4tqw45837fzs0589jqqna0s5wcmzstnsvw2vlrj7934w9l25sgsgnjcsl">
<code>npub1t4tqw45837fzs0589jqqna0s5wcmzstnsvw2vlrj7934w9l25sgsgnjcsl</code>
</a>
</ul>
<li><a href="nostr:npub1t4tqw45837fzs0589jqqna0s5wcmzstnsvw2vlrj7934w9l25sgsgnjcsl">Nostr </a>
<code class="nostrPubkey">npub1t4tqw45837fzs0589jqqna0s5wcmzstnsvw2vlrj7934w9l25sgsgnjcsl</code>
</li>
<!--
<li>
@ -33,10 +29,10 @@
-->
</ul>
</div>
</header>
<div class="photo">
<img src='self.jpg' alt='Self-photo'>
</div>
</header>
<main>
<section>
<h2>About me</h2>
@ -74,42 +70,42 @@
<ul>
<li>As part of my work at Toolchain Labs, I was a <a
href="https://github.com/pantsbuild/pants/commits?author=gshuflin">contributor</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>
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
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
<a href="https://code.everydayimshuflin.com/greg/typst-lepizig-glossing">leipzig-glossing</a>
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
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
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
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
algebraic effect systems.
algebraic effect systems.</li>
<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
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>
</section>
</main>
</body>
</div>
</body>
</html>

View File

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