Software Engineer Summary• As Software Engineer at Playfish you will create chart topping social games for the largest Japanese Mobile Social Gaming networks• You will work as part of a team to develop, launch, maintain and run as a service, a social game with hundreds of thousands of daily active usersJob Description• Write Java code covering all aspects of game production • Create tools and libraries as required and contribute to company-wide shared technology • Work with Systems Operations Engineers to ensure all aspects of the game will scale • Work in an Agile and dynamic environment, taking technical ownership of features and quickly identifying any technical problems with a design or improvements that could be made • Be results driven and feature focused to deliver timely, high quality and above all, fun game-play code• Be a positive member of our team, help to build a great culture for our Japan team, give feedback on games in development and take part in other activities in the company as neededCandidate Requirements• Expert knowledge of core Java • Solid understanding of algorithms, physics and mathematics • Strong understanding of multi-threaded programming in Java • Understanding of service-oriented architecture • Experience developing low-latency, highly scalable, highly available distributed server systems in Java, preferably without a J2EE application server • Strong understanding of RDBMSes and SQL, particularly MySQL • Knowledge of version control and build systems such as Subversion, Ant, Maven and Git • Understanding of Unix-like systems • Experience of test-driven development and continuous integration • Experience writing maintainable, reusable clean code • Passion for improving legacy code with careful refactoring, supported by tests • Great communication and teamwork skills • Business level Japanese and/or English language ability preferredThe following would also be advantageous: • Good Actionscript knowledge and familiarity with Flash Lite • Experience with templating engines and HTML • Aware of limitations of developing for mobile web platforms in Japan • Knowledge of social network APIs and creating social applications • Familiarity with other programming languages (C++, Ruby, Python, PHP, Erlang, Scala) • Knowledge of Amazon Web Services (EC2, EBS, S3, Cloudfront, SQS, SimpleDB) • Knowledge of non-RDBMS data stores such as BerkeleyDB, S3 & SimpleDB, Bigtable/Hypertable, Dynamo/Voldemort, etc. • Understanding of socket programming and networking protocols • Experience with messaging (e.g. JMS, SQS, AMQP) and event-driven architecture • Good knowledge of design patterns/anti-patterns