seralize my thoughts into posts

Archive for June, 2013

Can you Solve the Puzzle ?

As I posted before I’m  Looking for an outstanding Software Engineer. Interested ? try solve this puzzle, and contact me via twitter or drop your CV via mail – yonatan [at] outbrain [dot] com.


Provide an alternate implementation of the following class,  Thunk, that uses no conditional logic. For extra credit, make it thread-safe.

abstract class Thunk {
  private boolean evaluated;
  private T value;
  public T get() {
    if (!evaluated) {
      value = compute();
      evaluated = true;
    return value;
  abstract protected T compute();

If you thought about something like this, try to find a more elegant solution.

abstract class Thunk<T> {
  private T value;
  public T get() {
    try {
    } catch (NullPointerException e) {
      value = compute();
    return value;
  abstract protected T compute();

Looking for an outstanding Software Engineer

Outbrain is hiring and I’m looking for the next awesome developer.

Are you the next candidate?

  1. Want to build distributed high scale system together with awesome web-based applications ?

  2. Want your code to have a direct effect on the business performance ?

  3. Want to reach millions of Internet users all over the world ?

  4. Get tired of too many Broken Windows ?

  5. Want to exchange a long release cycle, with a single deploy button ?

  6. Waterfall – is something you see only while hiking ?

  7. Care what happens to your code after it’s been committed ?

  8. Want to be part of a professional team with high standards and great atmosphere ?

  9. Want to join a successful mature startup with a unique DNA ?

  10. Think that Continuous Deployment is the best thing happened to humanity since sliced bread?

Less than 7 points:

I share your grief

– 9 points:

consider running

sudo apt-get upgrade system

and contact me

10 points (and beyond):

Great. So, we are looking for an outstanding software engineer who is passionate about quality and bringing value to our users. You will be part of a small, intimate, dynamic, hands-on team that takes pride in high coding standards and modern development practices.

Each member of our development team is an athlete / all-around-player. You should be able to build a product end-to-end, from the careful mastery of the front end / client side to the efficient and maintainable design of the back-end / server-side.


  • Intelligent and self-motivated
  • Gets things done! (on time, with quality)
  • Strong communication and problem-solving skills
  • BS or MS in computer science or related field
  • 3+ years experience in Java and web development
  • HTML / JS  / CSS
  • MySQL, Hibernate
  • JUnit

Nice to Haves:

  • Experienced in developing in Linux environment
  • Experience with agile, TDD and continuous integration
  • Spring
  • Tomcat and Jetty
  • Selenium, Jasmine
  • AngularJS

Development practices:

  • Continuous Deployment
  • Continuous Integration

Extra points: Blogger, open source contributor.

contact me via  or twitter or drop your CV via mail – yonatan [at] outbrain [dot] com

%d bloggers like this: