Who are we?

We're Spantree, a small and nimble boutique consultancy based mostly in Chicago. We're looking for another smart person to join our team in the West Loop. This candidate should enjoy learning new things and solving hard problems. Ideally, we're looking for a broad-range generalist with deep expertise in at least one area.

We work quite a bit with OSS and we're not shy about jumping into other people's code to figure things out. We constantly hunt for smarter ways to do things, so we're often experimenting with emerging tech with little or no documentation. You should be motivated to submit pull requests and hunt down project committers on Twitter and IRC when you're stuck.

Who are you?

  • A nice person
  • An effective communicator face-to-face, on the phone and over the web
  • A pragmatic engineer that can quickly go from problem to solution to working software
  • A lazy programmer who leverages test, build and deployment automation wherever possible
  • An opinionated teacher of what they know and a humble student of what they don't
  • An altruist who wants to participate in open-source projects

Stuff You Should Know

  • One or more fun languages: Groovy, CoffeeScript, Clojure, Scala, Ruby, Python, etc.
  • One or more boring languages: Java, C++, C#, etc.
  • One or more web frameworks: Grails, Rails, Django, SpringMVC, Play, CakePHP, etc.
  • One or more databases: SQL, NoSQL, NewSQL, we like it all.
  • HTML, CSS, JavaScript and at least one framework: Backbone, jQuery, MooTools, Dojo, ExtJS, Angular.js, etc.
  • Git, or a colorful excuse for not knowing it.
  • The typical software development toolchain: text editors, IDEs, step debuggers, issue trackers, etc.

What do we work on?

Our clients range from small and scrappy startups to large insurance companies. We have about 6 or 7 projects going at any point in time. Historically, most of the stuff we've worked on has not been public-facing: it's either guarded behind the client's firewall, neatly tucked away as a library or jammed into the minds of the developers we've mentored. But we're starting to diversify from "behind-the-scenes" work to more early-stage product development. Our ideal blend is probably 50/50.

Helping people make better decisions is the central theme of most of our projects. This can take the form of a search engine to help people find interesting stuff to do on a Saturday night, a complex workflow management system for evaluating health insurance claims or a matchmaking and scheduling system to help people book face-to-face meetings at conferences.

We're constantly on the lookout for new customers with hard problems to solve; customers on a mission to make life a little easier for their developers, their users and the world.

Our (ever-evolving) tech stack

As mentioned before, we are constantly on the hunt for better ways of doing things. Here's a list of some of the technologies, in no particular order, which we commonly work with. We're not married to them, nor do we claim to be experts on all of them, but we're looking for people interested in them.

Groovy
An awesome little programming language with support for mixed typing that compiles down to Java bytecode
Clojure
Lisp-based functional programming language that compiles to the JVM and JavaScript
Kotlin
A relatively young language on the JVM making
Scala
A versatile language that is quickly becoming known for building powerful data solutions
Spring Boot
An opinionated framework that blends quick prototyping and powerful integrations
Elasticsearch
A RESTful search service that runs on top of Lucene, with rich support for full-text search and deep analytics/aggregations
Docker
Enables portable, lightweight containers for just about anything. Leaves virtualization in the dust
Apache Mesos
A distributed scheduling system that allows you to treat a datacenter as one big computer, distributing batch jobs and long-running processes across a cluster
Kubernetes
A distributed system for automating deployment, scaling, and management of containerized applications
Puppet
A Devops-friendly automated deployment and provisioning toolkit
Amazon Web Services
The ubiquitous cloud platform that powers a fair chunk of the modern web
Google Cloud Platform
A rising competitor to AWS with excellent Kubernetes integration
Drools
A highly-efficient rules engine and complex event processing toolkit, allowing our team to compose complex business logic declaratively and react to changing knowledge over time
Selenium
A powerful tool used to automate browsers for scraping, automation, and testing
Hadoop
A map-reduce oriented distributed processing framework
Apache Spark
A wicked fast, stream-friendly, simpl(er) data processing toolchain
SQL Databases
PostgreSQL, MySQL, DB2 and Oracle mostly
MongoDB
A non-relational document database
Neo4J
A high-performance, transactional graph database supporting highly connected data and complex querying
Redis
A durable distributed caching system
Apache Kafka
Highly performant, persistent and serializable messaging broker originally written by the folks at LinkedIn
RabbitMQ
A high-throughput, language-agnostic messaging system that supports complex routing
Spring Batch
A sane and friendly ETL and batch processing pipeline for the JVM
Reagent
A minimalistic interface between Clojurescript and React.js powering blazing-fast client-side applications
D3.js
A data-driven visualization library for JavaScript
React Native
An innovative framework to build mobile apps that blends rapid prototyping with solid performance
Android
A platform powering Android phones, tablets and embedded systems, providing native support for Java and other JVM languages
iOS
A platform powering iPhones and iPads, providing native support for Objective-C and Swift
Jenkins
A web-based continuous integration tool with a robust plugin ecosystem supporting JVM, Javascript, Ruby, Python and Docker builds among others