Blogs

How to Rock a Developer Phone Interview

We wrote a popular series of posts last year on how to rock Palantir on-site interviews. However, this advice does you no good if you don’t make it past the first hurdle: the phone interview. In this post, I’d like to give you some simple tips to maximize your chances on the phone interview.

Continue reading »

The UI Design Interview

Comic courtesy of XKCD, via Creative Commons License Our frontend engineering candidates go through many of the same types of interviews as our backend candidates, i.e., algo and coding. But because they’ll be building the user-facing parts of our system, we want to make sure candidates have some design chops as well. Hence the UI [...]

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 »

The Coding Interview

Note: this part is part two of our series on doing your best in interviews. Part one: “How to Rock an Algorithms Interview”. Here at Palantir algorithms are important, but code is our lifeblood. We live and die by the quality of the code we ship. It’s no surprise, then, that coding ability is what [...]

Continue reading »

How to Rock an Algorithms Interview

Comic courtesy of XKCD, via Creative Commons License We do a lot of interviewing at Palantir, and let me tell you: it’s hard. I don’t mean that we ask tough questions (although we do). I mean that the task of evaluating a candidate is hard. The problem? Given a whiteboard and one hour, determine whether [...]

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 »

Fun with jMock

Here at Palantir, a lot of our automatic tests are full-chain tests. A backend server is fired up, client code runs against it, and everything runs much like a production environment. This makes intuitive sense because it’s a faithful approximation of how the system will run in the field. However, there are some disadvantages to [...]

Continue reading »

JavaInvoke allows you to spawn additional Java VMs during testing

Here at Palantir we use test-driven development (or TDD for short). Integrated tools like Eclipse and JUnit simplify writing and running unit tests. However, once you need to test a broader swath of functionality, it’s time to write functional, integration, and system tests. While technically not ‘unit testing’, the testing framework that JUnit provides is [...]

Continue reading »

Data Model Change Eventing

One of the early architectural challenges that we faced in building the Palantir Finance product was coming up with a good design for firing events from data models to their listeners. There are many different concepts in our product such as charts, portfolios, and indices which are all maintained by different developers. Initially, each developer [...]

Continue reading »

Model-View-Adapter

I used to think I understood MVC. In undergraduate CS programs, MVC is taught as an off-the-shelf pattern, explained once and then ready for use in the real world. Wikipedia also makes it seem pretty simple: Model–View–Controller (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from [...]

Continue reading »

Showing 1-10 of 20