Chris Sloop

About Me

Hi! I'm an NYC and Berlin-based software engineer.

I've built things with Node.js, React, Redux, Elixir, Ruby, Rails, GraphQL, and PHP/MySQL.

I'm interested in developing sustainable web applications, robust APIs, playing with emerging technologies, functional programming languages (in particular MLs and Lisps), test-driven development, and responsive web interfaces.

I'm on GitHub and LinkedIn.

See my full resume →

Things I've Made

Wordle With Friends (GitHub, Live)

Multiplayer Wordle clone for Rails 7 / Hotwire
  • Replicates core Wordle functionality and design
  • Enables real-time, websockets-driven multiplayer via Turbo streams
  • LiveView-style hot UI updates powered by Stimulus.js

Slipmat (GitHub)

Discogs clone reimplemented as an SPA using Rails as a JSON API
  • Hand-rolled secure user auth via Omniauth
  • RESTful, namespaced API routes with nested JSON templating
  • Import utility makes use of Discogs API to construct seed data
  • AWS-integrated file upload using Paperclip and Figaro

discogs-shuffle (GitHub, hexdocs)

Discogs SDK for Elixir 1.12
  • Stores Discogs user collections to a local database and enables interaction via Ecto wrappers
  • Contains Ecto mappings for the Discogs User and Artist -> Release -> Record mappings
  • Exhaustively documented, tested and type-speced (via ExDoc, Credo, and Dialyzer)

TikTak (GitHub)

Anonymous forum engine for workspaces
  • BSS-style assets include private messaging, quoting, e-mail auth and password resets
  • Google reCAPTCHA integration for spam control
  • Robust admin options include IP blacklisting, moderation and shadowbanning
  • Full RSpec and Capybara unit / integration test suite

ActiveRecordLite (GitHub)

Ruby ORM built for SQLite
  • Replicates core functionality of ActiveRecord::Base and ActiveRecord::Relation
  • AR::Relation search parameters are stackable and lazily evaluated
  • Implements SQL associations including has_many, belongs_to and has_one: :through

Chess Suite (GitHub)

CLI chess and checkers suite
  • ChessUtils module and class inheritance structure DRY up code
  • Checkers AI depth-first searches move tree to determine best possible move sequence
  • Custom-built CLI parser enables UI with algebraic chess notation

snake.js (GitHub, Live)

Browser-based JS remake of the Nokia classic
  • Implements core gameplay using jQuery events and DOM manipulation
  • Smooth rendering engine only redraws changing portions of the screen
  • Snake AI implements adapted A* algorithm to find apple