This page is no longer maintained — Please continue to the home page at www.scala-lang.org

[JOB] Middle-tier software developer

No replies
Blair Zajac 2
Joined: 2009-07-10,
User offline. Last seen 42 years 45 weeks ago.

Sony Pictures Imageworks is seeking a strong programmer to join the
middle-tier team. All new large-scale applications are being written in
Scala with a large dose of Python client-side scripting.

About Imageworks
----------------

http://www.imageworks.com/

Sony Pictures Imageworks produces high-end visual effects for movies, such
as the majority of effects for Watchman, the Spider-Man movies and the
upcoming G-Force. The company's pioneering work has been recognized with
numerous awards and nominations, including the Academy Award for Best
Visual Effects for Spider-Man 2.

Imageworks proved its all-CG character animation and production
capabilities with the animated short, The ChubbChubbs! which won an Academy
Award. Surf's Up received an Academy Award nomination for Best Animated
Feature. Imageworks is unique in its ability to provide quality digital
production for live action, all-CG, motion capture and hybrid
live-action/animated films. Imageworks prides itself as a community of
artists supporting the imagination and expression of visual storytellers.

Today, Imageworks is unique in its ability to provide quality digital
production for live action, all-CG, motion capture and hybrid
live-action/animated films. Its community of innovative digital artists and
computer technologists collaborate creatively with filmmakers, helping them
to bring their vision from the storyboard to the theater and delight
audiences around the globe.

About the team
--------------

The middle-tier team is responsible for designing, writing and maintaining
three-tier applications and services used by the entire company.
Imageworks has a render farm with thousands of cores and a terabytes of
storage to manage. Some of the problems and issues the team works on include:

1) How to manage hundreds of terabytes of storage spread over different
classes of storage and efficiently and properly assign the correct type of
storage (e.g. slow and cheap or fast and expensive) to the type of data
that is being stored. The selection of the wrong storage for the asset
type can dramatically reduce the throughput of the entire facility. How to
migrate assets created in one facility, (e.g. Los Angeles, to another
facility (e.g. Albuquerque).

2) How to make the best use of thousands of cores when you have very
disparate jobs that need to run, such as multi-day multi-threaded render
jobs to short jobs that composite images together. How to run all those
jobs without taking out parts of the infrastructure.

3) How to write a distributed multi-site asset management system that can
handle network outages between facilities in different continents (Europe,
Americas and Asia). In other words, how do we create assets and add them
to the asset management system in any facility so that even if that
facility's network connection goes down rendering does not stop, but when
the network comes up, those assets are visible to other facilities.

4) How to use the new distributed databases (e.g., Casandra, CouchDB,
Hadoop, Hypertable) to solve multi-facility, multi-master database problems
that would otherwise require us to purchase expensive SQL licenses, such as
Oracle Enterprise Edition with Replication.

We are interested in self-learners who enjoy developing and using new
technologies to solve design problems and have deployed those solutions in
production environments. Developers who have worked on open-source
projects and enjoy writing high-quality code that the entire facility
depends upon are encouraged to apply.

Contact me at for any questions.

Regards,
Blair Zajac
blair@imageworks.com

Required technologies:

Scala
Java
Python
Writing SQL that is in use in production on one of the following databases:
Oracle, PostgreSQL, MySQL
JDBC
Development using one of the following version control systems: Git,
Mercurial, Subversion
Strong Unix skills: the ability to manage their own Linux distribution or
Mac OS X system from the command line

Desired technologies:

C or C++
ZeroC Ice
Spring Framework or Guice
Google Protocol Buffers
Django

Optional technologies:

Perl
Qt
PyQt

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland