diff --git a/index.html b/index.html index 6dbcad9..8179c3a 100644 --- a/index.html +++ b/index.html @@ -1,45 +1,72 @@ - Greg Shuflin Developer Portfolio + Greg Shuflin - Software Developer
-

Greg Shuflin

-

Contact me: . +

Greg Shuflin - Software Developer

+

Contact me via + or LinkedIn. -

I maintain a LinkedIn account. - -

I'm a programmer with broad expertise across several different +

About me

+

I'm an industry programmer with broad expertise across several different disciplines of industry software development, particularly network - programming, full-stack web development, and unix system administration. I + programming, full-stack web development, and modern devops. I dabble in 3d graphics, programming language design, and mucking about with microcontrollers on the side, which occasionally comes in handy. I've - shipped code in Python, C, C++, Ruby on Rails, Scala, Elm, Haskell and Rust. + 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 UC Berkeley. + Japanese from the University of California, Berkeley (2007-2012). -

Also if you're hiring for a Rust position I'd love to talk to you. +

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. -

Developer Portfolio

-

These are a few side projects I've worked on +

Open-source work

+ +

As part of my work at Toolchain Labs, I + contribute + to the Pants 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. + +

I wrote a simple Rust command line program for + for highlighting stderr console output, 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 crates.io. + +

My professional Github profile is @gshuflin. I have + used @neunenak as a personal Github profile in the past, + and am in the process of moving my personal code to a self-hosted Gitea + instance. + +

Some personal projects

+

A few side projects I've worked on that I think are particularly interesting. - You can see the source code for these and other projects I'm working - on on my Github profile. -

+
+

Schala

+ +

I've been interested in programming language implementations since my college compilers class, + and interested in type theory ever since I learned about Haskell. + Schala 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. +

+ +

Browser games

-

All of these games are open-source collabrations with +

These are all open-source collabrations with Alex Nisnevich and several other occasional contributors.

  • Untrusted (code) - - a roguelike game written entirely in - Javascript. Every level is unbeatable until the player edits the - source code of the level to make it winnable. + - 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 Alex Nisnevich are the two primary developers. An early version of the game won first place in @@ -49,7 +76,7 @@ Asshole Transit Bureaucrat 2015 - - entry for the Ludum Dare 33 72-hour game jam (theme "you are the monster"), + - entry for the Ludum Dare 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 @@ -72,43 +99,14 @@
-
-

Rust and Haskell projects

-
    -
  • Schala programming langauge meta-interpreter - (code) - - an interpreter for multiple toy programming languages all at once -
  • -
  • - Hilite - - (code), a Rust port of Mike Schiraldi's hilite utility, - which runs an arbitrary command line process and colors that - process' stderr output red. -
  • -
  • Doomsday Algorithm (code) a simple Haskell command-line application that computes the day of the week a given date in the Gregorian calendar falls on -
  • -
-
+
+

Other projects

-
-

Bare-metal programming

-
    -
  • Low-level programming sandbox - (code) - - my sandbox for experimenting with writing toy operating system kernels, in assembly, - Rust and C. Right now this repository is a bit of a mess, I'm (slowly) in the process - of cleaning it up and making the code presentable. -
  • -
- -
-

Computer graphics

- +
    +
  • SNES Assembly language: some experiments in writing + custom ROMs in the assembly language used by the Super Nintendo/Super Famicom/SNES. +
  • +