Ben Sima's Resume

Hi! I'm a software engineer currently located in Ohio.

By trade, I work on applications that deal with a lot of data; by vocation I study mathematics and philosophy. I have experience in application architecture, databases, and other data-heavy systems.

Email: ben@bsima.me

Skills

Languages

  • Clojure
  • Common Lisp
  • Haskell
  • Java
  • JavaScript
  • Python
  • Ruby
  • Scheme
  • TypeScript

Technologies

  • Angular
  • Apache HBase
  • Apache Kafka
  • CQRS
  • Debian
  • Docker
  • Git
  • Jenkins CI
  • MacOS
  • MySQL
  • NixOS
  • Numpy
  • Pandas
  • PostgreSQL
  • REST
  • Rails
  • Tensorflow
  • Ubuntu
  • Yesod

Employment

Groq.com, Staff Software Engineer, Infrastructure

2019 - Now

Groq is a hardware company that makes fast chips for advanced ML workflows. On a team of ~8, I manage their infrastructure: internal services, documentation, build tooling, third-party dependencies, CI/CD, a bit of DevOps, lots of testing. I also work on the release process: packaging our Python API and related software into debs and rpms and testing the artifacts with SQA. During crunch time I've also worked on their Pytorch-like ML library in Python. Technology used: Nix, Haskell, Python, bash, Docker, many others.

Hero Projects, Lead Project Engineer

2018 - 2019

Hero is a media company in L.A. On a part-time basis, I'm developing their mobile and web apps, which is like Netflix for comic books. Instead of movies there is a comic book player, which overlays music according to the page of the comic you're on and guides you through the story. This is alpha stage currently, but will go live later in 2019. Written in all Haskell using Miso.

Technology used:

  • Haskell (frontend and backend)
  • CDN
  • REST API
  • PostgreSQL database
  • NixOS

UE Authority, Senior Software Engineer

2018 - 2019

UE.co provides car- and home-insurance sales leads to a country-wide network of salespeople. I was responsible for developing a few data pipelines for use in their next-gen platform. The service would fetch leads from external providers or accept a CSV upload of lead data, scrub the data through half-a-dozen internal services, and deliver the end result to a front-end application which allowed the salesperson to save the list of leads for later. My services were written in Haskell and designed to be highly concurrent, handling something like 60k-70k leads per minute. The bottlenecks ended up being the insert operation into Amazon Redshift, and the third-party APIs.

Technology used:

  • AWS infrastructure
  • Haskell data pipeline backend
  • MySQL and AWS Redshift
  • RESTful API with Swagger docs

Software Engineer, Liaison Technologies

2015 - 2018

I co-designed and implemented a distributed, streaming, immutable, event-sourced cloud database for semi-structured enterprise data, plus a few AI-based microservices for extracting structured intel out of the semi-structured streams of data in our database. The business goal is to flexibly extract intelligible data from customers' data banks. Everything was done in Clojure, on a private cloud infrastructure with Docker containers as deployable microservices.

Technology used:

  • Clojure and Java
  • PostgreSQL, ElasticSearch, ArangoDB
  • Apache Kafka, Apache HBase
  • REST API with Swagger integration
  • event sourcing, command query responsibility segregation (CQRS)
  • schema matching

Software Engineer, Thermo Fisher

2017

I wrote services and UIs for creating and running hardware tests on all of Thermo Fisher's equipment. The application allowed field technicians to collaborate on custom diagnostic tests for each instrument, connect to any instrument on the network, run tests remotely or on-site, etc. The end product is deployed as a Docker container onto mostly Windows machines used by Thermo Fisher technicians.

Technology used:

  • Typescript & AngularJS UI
  • Python backend
  • CouchDB datastore

Software Engineer, WholeLatteLove.com

2015

As a full-stack developer, I was responsible for the DevOps workflow on AWS and legacy servers, setting up and doing deployments, diagnosing and fixing bugs, managing a git workflow between in-office and remote developers, and coding new features on both the frontend and backend.

  • Designed/implemented app-wide notification system.
  • Moved a legacy Ruby on Rails app from a small, unreliable data center to AWS, with continuous integration, testing, & deployment.
  • Updated a large Rails ecommerce engine we depend on (Spree) which required implementing a dozen custom extensions.
  • Developed a data generator to easily replicate our production environment in staging.
  • Created a suite of simulation tests for our legacy order processing systems using the Clojure framework Simulant.

Lead Developer, Nebula Bio

2014 - 2016

With a biomedical engineer partner, I developed an open source, low cost, portable blood analysis platform. Our goal was to be the “Arduino of biotech.” All development was done on GitHub. Unfortunately the project was cut short because protein reagents are expensive and I was a broke college student.

  • Designed a POSIX-compatible driver for a custom potentiostat.
  • Created a custom crowdfunding webapp with a REST API in Clojure, deployed on Heroku.
  • Created a GUI in Python for the driver, and beginning beta testing with crowdfunders/customers.
  • Lead and handle all project management and financial aspects of the project.

Instructor, Thinkful

2014 - 2015

Taught data science and full-stack web development with Python to new and intermediate students. I also helped develop their curriculum by writing tutorials and exercises for each of the courses I taught.

Nebula Sports

2012 - 2013

An RIT-sponsored startup project that lasted for about a year, in which we developed novel headgear padding for athletes. My main role was in guiding the scientific research, while solely managing the fundraising (grants and private investment). In a 4-person team, we developed an algorithm for optimizing our custom padding to a specific position within a specific sport. Patent concerns made us shut down this part of the project. We then prototyped and programmed an accelerometer to be housed inside a helmet and signal to the athlete the severity of an impact. Reebok released their CheckLight product before we finished developing, and so scooped the market. All algorithm programming was done in Matlab.

Freelance Developer

2012 - 2014

As a freelance developer, I created two ecommerce systems in PHP, a ClojureScript front-end website to be used as a landing page, and worked on an e-magazine site for a local Rochester magazine.

Involvement

Meetup presentations

  • A Categorical Theory of Patches. May 3, 2018, Papers We Love San Diego
  • Getting Started with Yesod. April 10, 2018, Haskell Hangout
  • Intro to Easy Deployments with NixOps. March 21, 2018, San Diego DevOps Group

Education

A.B., Philosophy, Rochester Institute of Technology, 2014. Thesis: Wonder and Desire in Romantic Love: Levinas and Irigaray