Software Dev Intern Projects – 2011

Palantir Technologies Interns, 2011 As we roll into the peak of internship season, it seems like a worthwhile time to talk about just what it is that interns do in their time at Palantir: our software engineering interns are full members of the development team from the day they arrive. During their time with us, [...]

Continue reading »

How to Rock a Systems Design Interview

Comic courtesy of XKCD, via Creative Commons License Note: this third installment in our series on doing your best in interviews. Previously: “How to Rock an Algorithms Interview” and “The Coding Interview”. One interview that candidates often struggle with is the systems design interview. Even if you know your algorithms and write clean code, that [...]

Continue reading »

Inside Horizon: interactive analysis at cloud scale

Late last year, we were honored to be invited to talk at Reflections|Projections, ACM@UIUC’s annual student-run computing conference. We decided to bring a talk about Horizon, our system for doing aggregate analysis and filtering across very large amounts of data. The video of the talk was posted a few weeks back on the conference website. [...]

Continue reading »

Decorator Pattern: Implementing decorators using forwarding classes

A forwarding class is an abstract base class which makes it easier to implement decorators for a particular interface. A forwarding class simply forwards all calls it receives to some delegate; a decorator can then be implemented by extending the forwarding class and overriding the relevant methods. Here’s an example implementation of a forwarding class [...]

Continue reading »

Palantir: search with a twist (part two: realtime indexing and security)

[A number of weeks ago, we published a post on the search technology used by Palantir. That post covered raising the memory efficiency of a couple of operations. This is part two of that series.] The most familiar use of search engines is to index documents made available on the Internet via the hypertext transfer [...]

Continue reading »

Palantir Finance Applied to Log4J Data

In a previous post, Eric W. covered how we analyze polled system health information. Now we’ll look at pushed information, in the form of logging events.

We had two problems to solve: how to store structured data with a logging message, and how to analyze the collected data.

Analysis is the easy part: just use Palantir! More details below the fold.

Continue reading »

Palantir: search with a twist (part one: memory efficiency)

A Palantir cluster seamlessly integrates many pieces of proven technology. One of them is our customized version of the venerable Java search engine, Lucene. Search engine technology tends to be optimized for the common use case of indexing web documents (or similar information architectures) where you have a few search terms in each query and [...]

Continue reading »

Palantir Config Server: lining up the ducks

At Palantir, we build distributed software. When deployed at a customer site, our platform consists of several servers running on, and distributed across, a cluster of machines. When I first joined the company, deploying and managing our platform was tedious and time consuming. Need to install servers? One by one, login to the machines where [...]

Continue reading »

Palantir Monitoring Server: where build beats buy

Distributed systems are complex. Getting them right is hard, and when things don’t go right, it can be difficult to understand what went wrong. In an environment like ours, a good monitoring system isn’t just nice to have; it’s a critical component necessary for understanding behavior and diagnosing problems. We had three primary goals for [...]

Continue reading »