Reaction Commerce

Senior Functional Programmer Excited Data Streams

Reaction Commerce via Remote OK
Development

Jul 28th 2018


Reaction Commerce is seeking a Senior Software Engineer to join our new platform engineering team. As a pioneering member of the core services team at Reaction Commerce your primary focus will be advancement of the Reaction platform where data streams are the source of truth. This is a hands on role. You will write functional code to build microservices and establish patterns that will be used by the rest of the team.

Responsibilities

Here is a list of the type of work that you'll be spending the majority of your time on:

  • Produce clean well documented idiomatic code.
  • Be creative and experiment with new solutions while being pragmatic and committed to code optimization, maintainability, and quality.
  • Design and develop highly scalable, observable, functional microservices from prototype to production.
  • Create intelligent monitors for key metrics to understand service and overall system health.
  • Learn and teach your fellow engineers new technologies and architectures.
  • Be a storyteller and clearly document designs, tradeoffs, and lessons learned from prototyping and your Hammock Time.
  • Improve productivity of the team through code abstractions and custom tooling, like ¬†custom libraries and project templates.

Required qualifications

Here is a list of our hard requirements, which we've worked to keep short. We believe you'll excel in this role if you possess the following:

  • Experience working in a functional programming language, with a preference for declarative implementations and immutability.
  • Strong experience designing web-based APIs in REST or GraphQL.
  • Understanding of systems design, algorithms, and data structures.
  • Demonstrable knowledge of queues, distributed logs, and streaming systems of various types.
  • Experience mentoring high quality teams, and instilling a mindset of engineering excellence (e.g. TDD, pairing, code reviews, design documentation)
  • Experience and knowledge of the JVM and the Java ecosystem in addition to compile to JVM languages.
  • Ability to write clear, effective documentation.

We value your knowledge and skills more than an arbitrary amount of experience using any specific technology or a university degree in a specific field. As a Senior Software Engineer, we expect that you'll have the skills and knowledge that are typically gained working on production applications for many years and studying in a university Computer Science program, but we don't care how you've acquired those skills or how long it took you.

Bonus qualifications

The ideal candidate will have deep experience in a few of these topics

  • A polyglot background with languages that present varied programming paradigms and perspectives.
  • Experience writing libraries or abstractions with declarative interfaces.
  • Prior work using CQRS & event-sourcing.
  • Experience using Kafka, Kafka Streams, Docker, Docker Compose, and GraphQL.
  • Familiarity with relational, document, and key-value store databases and knowledge of common data modeling patterns used in each.
  • Enough devops experience to get your projects deployed to AWS.
  • Interest in programming in Clojure.

Characteristics

As a distributed team building open source software, we understand that being a great software engineer is much more than having a deep technical skillset. Our culture is one of communication, character, cooperation, and competence. We believe that people who have these foundational characteristics will be able to hit the ground running.

  • Motivated, self-starter who can work in a distributed team environment
  • Open-minded mentality
  • Goal oriented personality
  • Empathy for customers, community, and co-workers
  • Tendency to teach others what you know and excitement for sharing knowledge
  • Growth oriented mindset and a desire to be better today than yesterday
  • Desire to deliver an exceptional customer experience
  • Critical thinker who will work to solve the right problem
  • Cooperative attitude and an ability to pair program effectively with other engineers
  • Ability to think holistically for a given project or problem

Details

  • Position: ¬†Full Time
  • Compensation: Salary commensurate with experience, stock options, medical and dental benefits
  • Location: Americas Time zone
  • Hours:
    • ~40-50 hours/week
    • You'll be expected to make team meetings and work at least 5 hours/day that overlap with 9AM-5PM Pacific
Apply for this job