Startup Jobs Startup Companies Post a Job! Startup Newswire Job Widgets
Search Startup Jobs
Funding20M-50M USD
IndustryWeb 2.0, Consumer, Database, Semantic Web, Infrastructure
View full company profile
Other Openings
Company News
Community updates: SF meetup, 10 Million Topics! Freebase workshop in New York Freebase community meeting on Some new features

Senior C Programmer - Database Implementation

at Metaweb in San Francisco, CA   —   Apr 24, 2014   |  
Metaweb is building a new type of database to support large-scale collaborative web applications.
We have:

- a talented, eclectic team
- a fashionable, lounge-saturated working environment
- some hard problems for you to help us solve.

You need to be good at doing things you've never done before.

To apply, please respond to the following four questions in your cover letter. Brevity is the soul of wit.

1. Programming Languages have changed very little in the past 30 years: OO (Smalltalk) dates from the mid seventies. Closures and continuations (Scheme) were invented in the late seventies. List comprehensions, and other lazy functional constructs date from the early eighties. Is this vocabulary "it" for programming?

2. Have you ever built something you could have bought? If so, what and why?

3. What is your favorite time of day?

4. Imagine a graph that consists of directional links between nodes identified by small non-negative integers < 2**16. We define a "cycle" in the graph as a nonempty set of links that connect a node to itself.

Imagine an application that allows insertion of links, but wants to prevent insertion of links that close cycles in the graph.

For example, starting from an empty graph, inserting links 1 ->2 and 2 -> 3 would succeed; but inserting a third link 3 -> 1 would fail, since it would close the cycle 1 -> 2 -> 3 -> 1. However, inserting a link 1 -> 3 instead would succeed.

In your favorite programming language, declare data structures to represent your graph, and give code for an "insert link" function that fails if a new link would close a cycle. What, roughly, is the space- and time-complexity of your solution?
You have a passion for clean, tractable algorithms, data structures, and interfaces tempered by a pragmatism that allows you to get beautiful things done.
You're a good writer, speaker, and listener - you'll have to explain and justify your designs, and be able to run with other people's ideas and give feedback to them.
It matters what your code looks like. (It matters to us, and we want it to matter to you.) You like it when people look over your shoulder, and you're prepared to give other people feedback on what they're doing as well.
Of course, you're extremely proficient in C, but you don't really mind switching to Python, or Bash, or Lisp. After all, programming is programming.
You've got experience with a number of operating systems, some, but not all, of which were flavors of Unix. In particular, you understand the gritty details of using Unix to implement a large server: networking, memory, disk storage and concurrency.
You need to have a deep understanding of fundamental data structures and algorithms, particularly those that might apply to the storage and retrieval of large amounts semi-structured data.
Want this Job? Apply Now
About Us  |  Privacy Policy   |   Terms & Conditions  |  Contact Us
© 2014 Job Alchemist, Inc. All rights reserved.


Startuply is in beta. Love it? Hate it? Want to suggest new features or report a bug? We'd love to hear from you.