Back-End Engineer

Location: San Francisco SOMA district, CA

Type: Full Time

Min. Experience: Mid Level

Catch.com is a leading developer of note-taking and geo-tagging apps in the Google Android Market with over 7 million active installs on Android powered smartphones and tablets. Our apps also work on iPad, iPhone, and the web.

As a Back-End Engineer, you'll be responsible for the beating heart of Catch:  The sync engine that supports one-half million users a month.   Today, the core API service uses Python Twisted to integrate MongoDB, S3, GCM, and APNS to provide immediate sync and seamless data replication across our users' varied devices.  We also have a separate WSGI-based server that handles authentication, payment, and other lower-volume web services.

Initially, you'll be responsible for maintaining the existing system, including a variety of core changes to better support our growing user base.  Beyond that, you'll have the opportunity to help design and implement an entirely new back-end built on cutting-edge distributed concepts.

We are seeking someone adept with some or all of the following technologies:

  • Python, C, and Java experience
  • Python Twisted or other async frameworks
  • TDD and CI experience
  • MongoDB or other NoSQL storage approaches
  • JSON, XML, and other standard data-transfer methods
  • Experience with Amazon S3
  • Knowledge of OpenID, OAuth2, SAML and similar security protocols
  • Solid understanding of basic cryptography
  • Scaling server throughput using sharding, load-balancing, reverse proxy caches, message queueing, etc.

A few things that would help make your resume stand out:

  • Mobile experience is a plus
  • Javascript knowledge a plus
  • Distributed systems experience a plus
  • Some sys admin background is helpful for triaging production issues
  • Log file analysis and performance profiling
  • BSCS or better

If you think you're up to the challenge, send your resume and cover letter to jobs@catch.com.

In your cover letter, explain why you would choose an async framework for some problems and a threaded framework for others. (Hint: we use both, so we clearly think each one is appropriate for different types of problems.)

Forward this Position
Recipient email address (one)
Your name
Your email address
Enter a message (optional)

How to Apply

To be considered for this position, send your resume to aschobel@catch.com. Be sure to include the job title in the subject.