Senior Javascript Engineer

Location: San Francisco SOMA district, CA

Type: Full Time

Min. Experience: Mid Level

JavaScript applications can run anywhere---on desktops, laptops, tablets, and smartphones---and are already rivalling native applications for performance, look, and functionality. When applications run in the browser, then the operating system is irrelevant.

At least, that's the sales pitch. But you’ve been writing JavaScript applications for years so you know that the reality is a little more nuanced than this. You've used a couple of different toolkits and have probably written a few. You understand when to take advantage of CSS animations, when to code a transition using low-level Javascript, and when to go back to the designer to discuss alternative approaches. You’re comfortable working on your own but you like working in a team and understand the importance of solid design, clean code, clear communication, good source control and thorough testing.

Catch is building our reputation around clean, easy-to-use apps for capturing and managing personal information.  Our current Javascript web interface combines Google's Closure tools with our custom PlastronJS event layer to provide users with a fast and smooth interface for managing their personal data.  We're pretty pleased with how far that interface has come, but we need an expert JavaScript developer to help push this to the next level. As it grows and improves, we’re going to be interested in things like ChromeOS support, offline operation, and highly dynamic UIs that make it easy for people to juggle lots of data quickly and intuitively.

We’re a small company based in the SOMA area of San Francisco. We’re just getting started, so there’s lots of opportunity to make your mark and do something truly outstanding.

You get bonus points (and a brownie!) if you know some of the following:

  • Google Closure
  • Mobile browsers
  • Browser extensions and app stores (such as Chrome app store)
  • Browser storage APIs and their limitations
  • Websockets or other real-time communications mechanisms
  • Analytics, tracking user activities

If you’re interested, please email us your cover letter, resume and a solution (in JavaScript, of course), to the following problem:

  • Write a function ‘count(el)’ that takes a DOM element and returns a list of triples that record how often each type of element occurs as a direct child of another type within the subtree. That is, we want to record that elements occured five times within

    elements and twice within


  • As a bonus, create a function ‘buildTree()’ that takes a two-dimensional map like that produced by count() and returns a DOM element so that count(buildTree(count(el))) produces the same results as count(el).
Forward this Position
Recipient email address (one)
Your name
Your email address
Enter a message (optional)
Apply for this Position
* Required fields
First name*
Last name*
Email address*
Phone number*

Attach resume ( .pdf, .doc, .docx ) or paste resume

Paste your resume here or attach resume file

Cover Letter*
LinkedInLinkedIn profile URL:
Website, blog or portfolio:
In 150 characters or fewer, tell us what makes you unique. Try to be creative and say something that will catch our eye!