A selfie of me.
Twitter @mysterysal
Github mysterymachine
Email sal@sisyphus.rocks

Hey, I'm Sal Becker, a Brazilian born programmer and artist. Professionally, I work on full stack web apps and distributed systems. I'm a Clojure and functional wizard. I also like Javascript, and I've been exploring methods of writing it more functionally. I also enjoy educating others and giving talks. I am a gradudate of the Recurse Center's Fall II class of 2015.

I am also a strong believer in human rights. Many of my projects focus on advocacy of feminist, racial, economic, or queer rights. I am an admin at WeAllJS, an intersectional Javascript community.

When I am relaxing, I like playing games, yoga, watching movies and shows, reading comics, drinking, and dancing. I develop art games as my primary hobby, and I distribute them and the tooling I make for free. I collaborate with comics artist KJ Martinet.


Adaptly - Early 2016 to Summer 2017

Priori Legal - Fall 2013 to Fall 2015

Notable Projects

carmen.miranda - Under Active Development

carmen.miranda is a visual novel framework for Clojure. My primarly goal in the framework was to provide a very quick and declarative way to create visual novel style games. The primary challenge is the staggering amount of text (100+ word pages for the game I worked on while building this) I had to input, which required me to build an extremely terse DSL. The library also aids the user with representing and changing their data, aiming to completely separate the declaration of HTML from the declaration of how that HTML can change. It enforces a rigidity with Reagent (Clojure's most popular React wrapper) and requires that the user declares changes in advance using multimethods, to promote an extremely declarative usage of the Reagent rendering library.

virtual-dom - Februrary 2017

Written as a tool to teach people about the language of consent. By having folks use a Clojure DSL to write a context-free language that would give them self care instructions, I hoped to teach folks that the language of consent should be explicit, and well established. It is more of a thought piece than a fully functional tool with all the bells and whistles, but I did iterate on this based off of user feedback to implement some features.

kibe - December 2016

An experimental library I wrote for Clojure that uses a style of monadic dispatch in order to deal with functions with side effects, or to deal with functions that are likely to throw. This library was created as a response to a lot of the struggles I was having with stateful code at Adaptly, but after some review, we decided it was not worth the risk of introducing the new library. This library uses reified Java classes in order to create special callable objects that require an error handler for bad behavior.

malandragem - September 2016

A Clojurescript roguelike framework written in a weekend for a Ludum Dare. It takes a data driven approach to roguelikes, and the library largely works through declarative interfaces. Has a small sample game contained within the codebase.

jobim - Recurse Center, Fall 2, 2015

A declarative, data driven slideshow framework that uses Clojurescript's homoiconic nature to allow presenters to write and run tests against their example code. Tests run live, and jobim integrates well with Figwheel, allowing for rapid development of presentations. jobim relies on a simple slide abstraction that you can extend.

folha - RC 2015, Still Under Development

A library for writing Clojure games in Unity. It aims to abstract a lot of the interop code that one would need to write in order to use Arcadia, and to provide functional or functional-seeming interfaces to Unity, while not letting go of the positive elements of Unity's built in component model system.

Kushana - Recurse Center, Fall 2, 2015

Kushana is a data driven, functional game engine authored in Clojure and Clojurescript. It is intended to be used for lo-fi 3d games, and for protyping networked games. In Kushana, you describe scenes as simple data, and then define middlewares that transform this data. Kushana then allows you to run that code both on the server and client sides. This project, as a proof of concept, is done, but its not fit for real development.

If a Tree Falls in the Forest - September, 2015

Worked with KJ Martinet to produce a short indie horror game for her art show, Abandoned Places, Forgotten Spaces. In the game, you wander around a forest finding the phantoms of dead animals as you hunt for food. It uses gameplay to explore the sudden and pervasive realities of death in nature. The game is in Unity, Arcadia, and Clojure. Featured at the NYC Arcade, Winter of 2015!

She Blinded Me With Science - March, 2015

Programmed a silly shoot 'em up game using Unity, Arcadia, and Clojure for an art show, She Blinded Me With Science: Women in Science Fiction. The game was presented at the show where people could play it live. The game was not released to the public, because it was more of an educational endeavor for the team, and not meant to receive the sort of polish that would warrant a public release.

Monster of the Week - February, 2015

A simple JS app that implements some stuff I learned while taking a Coursera course on Automata theory. It uses a syntax free grammar to generate random X-Files episodes. Was a submission for KJ Martinet's X-Files themed art show.

Skull Beggar - September, 2014

Skull Beggar was built using Ruby on Rails, Angular.js, and Heroku (if you're visiting this app, give Heroku a second to spin up). It's a cute little app that lets you bet on The Binding of Isaac: Rebirth runs. It's got a bunch of nifty features, and was built to be relatively mobile friendly.