greg.everydayimshuflin.com/index.html
2021-10-06 15:32:06 -07:00

140 lines
6.5 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Greg Shuflin - Software Developer</title>
<meta charset='utf-8'/>
<link href="style.css" rel="stylesheet"/>
</head>
<body>
<div id='main'>
<header>
<div>
<h1>Greg Shuflin - Software Developer</h1>
<p>Contact me via <a class="emailLink" href="mailto:greg.shuflin+developerportfolio@protonmail.com">greg.shuflin@protonmail.com</a>
or <a href='https://www.linkedin.com/in/gregshuflin/'>LinkedIn</a>.
<p>Download a copy of <a href="./resume/Greg Shuflin resume.pdf">my resume</a>.
<p>See open-source code I've written:
<ul>
<li> <a href="https://github.com/gshuflin">@gshuflin</a> (professional GitHub account)
<li> <a href="https://github.com/neunenak">@neunenak</a> (personal GitHub account)
<li> <a href="https://gitea.everydayimshuflin.com/greg">gitea.everydayimshuflin.com</a> (self-hosted <a href="https://gitea.com/">Gitea</a> instance).
</ul>
</div>
<div id='selfPhoto'>
<img src='self.jpg' alt='Self-photo' width='240'/>
</div>
</header>
<h2>About me</h2>
<p>I'm a software engineer with broad expertise across several different
disciplines of industry software development, particularly network
programming, full-stack web development, and modern cloud-focused devops/Unix
systems administration. I dabble in 3d graphics, functional programming/type
theory, programming language design, and mucking about with microcontrollers
on the side, and one or another of these skillsets has come in handy before.
<p>I've shipped code in Rust, Python, C, C++, Ruby on Rails, Scala, Elm, and
Haskell. My educational credentials are a BA in Linguistics, Computer
Science and Japanese from the University of California, Berkeley. I used to
have a line here that said "Also if you're hiring for a Rust position I'd
love to talk to you.", but since I now have a position where I spend a lot
of my time writing Rust, I suppose it worked.
<h2>Open-source work</h2>
<p>As part of my work at Toolchain Labs, I
<a href="https://github.com/pantsbuild/pants/commits?author=gshuflin">contribute</a>
to the <a href="https://www.pantsbuild.org/">Pants</a> build system. Much of my work
on this project has involved porting the codebase from a legacy Python execution engine
to a modern and more performant Rust execution engine.
<p>I recently 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.
<p>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>.
<p>My professional Github profile is <a href="https://github.com/gshuflin">@gshuflin</a>. I have
used <a href="https://github.com/neunenak">@neunenak</a> as a personal Github profile in the past, and still use it
for contributing to projects that use Github as their main git repository host. I've moved most of my personal code
to a self-hosted <a href="https://gitea.com">Gitea</a> instance at <a href="https://gitea.everydayimshuflin.com/greg">gitea.everydayimshuflin.com</a>, to
reduce my dependency on cloud services I have no control over.
<h2>Some personal projects</h2>
<p>A few side projects I've worked on
that I think are particularly interesting.
<div>
<h3>Schala</h3>
<p>I've been interested in programming language implementations since my college compilers class,
and interested in type theory ever since I learned about Haskell. <a href="https://gitea.everydayimshuflin.com/greg/schala">
Schala</a> is a Rust framework I've been sporadically working on to give me a place to experiment with multiple programming
language ideas, and also the name of the language I'm using this framework to implement. Schala is intended to be an
expression-based functional-encouraging programming language using ML-style types with Rust-like syntax.
</div>
<div>
<h3>Browser games</h3>
<p> These are all open-source collabrations with
<a href='https://github.com/AlexNisnevich'>Alex Nisnevich</a> and several
other occasional contributors.
<ul>
<li><a href="http://alexnisnevich.github.io/untrusted/">Untrusted</a>
<a href="https://github.com/AlexNisnevich/untrusted" class='codeLink'>(code)</a>
- a Javascript roguelike. Every level is deliberately unbeatable, and
the player must edit the source code of the level in order to progress.
Me and <a href='https://github.com/AlexNisnevich'>Alex Nisnevich</a>
are the two primary developers.
An early version of the game won first place in
the Spring 2013 Berkeley CSUA hackathon.
<li>
<a href="https://github.com/neunenak/assholetransitbureaucrat2015">
Asshole Transit Bureaucrat 2015
</a>
- entry for the <a href="https://ldjam.com/">Ludum Dare</a> 33 72-hour game jam (theme "you are the monster"),
where the player takes on the role of a corrupt public transit bureaucrat
who is paid-off by an evil ride-sharing corporation, and tasked with
making the public bus system worse. Written in
<a href='http://elm-lang.org/'>Elm</a>, a Haskell-like pure functional
language that compiles to Javascript/HTML.
</li>
<li>
<a href='http://alexnisnevich.github.io/kalevala/'>Kalevala</a>
<a href='https://github.com/AlexNisnevich/kalevala' class='codeLink'>
(code)
</a>
- a two-player tile-placing game inspired by the board game
Völuspá by Scott Caputo. The frontend is written in Elm, the backend
is a <a href='https://github.com/neunenak/voluspa-server' class='codeLink'>fairly-simple Haskell server.</a>
</li>
</ul>
</div>
<div>
<h3>Other projects</h3>
<ul>
<li><a href="https://gitea.everydayimshuflin.com/greg/SNES-ASM">SNES Assembly language</a>: some experiments in writing
custom ROMs in the assembly language used by the Super Nintendo/Super Famicom/SNES.
</li>
</ul>
</div>
</body>
</html>