Job Opening: Server Software Engineer
Role: Server Software Engineer
Full Time
Dundee, United Kingdom
ChilliWorks believe that mobile social gaming offers some of the most exciting creative and commercial opportunities in gaming today. Our internal backend analytics and social platforms have been developed over several years and currently support millions of connected devices and several successful mobile games.
We’re now looking for Server Software Engineers of all levels to work on the continued development of these platforms in to a standalone Game Backend as a Services (Game BaaS), for both internal and external use.
Our core stack is based on Linux, Apache, MySQL and PHP but we also embrace a modern, microservice based architecture that allows us to develop new features using the most appropriate technology for the problem being solved. If you work with us, you’ll never become trapped working on a single monolithic application with dated technology.
We’re big on code quality, automated testing and automated configuration management using tools like Puppet and Ansible. Our developers are full-stack and encouraged to take ownership of their work all the way in to production. This means that you’ll get a chance to work on everything from front-end development, web services development, synchronous and asynchronous application messaging, in addition to integration with external payment and messaging services such as the Apple Push Notification Service and Google Cloud Messaging service.
As our solutions are currently live and in production, scalability and being able to efficiently handle large volumes of data is also really important to us. You’ll gain exposure to many modern, high availability and performance best practices such as data sharding and partitioning, auto-scaling, distributed work queues and multi-level caching.
You will work on a mixture of improvements to our existing functionality as well as adding new features such as leaderboards, asynchronous multiplayer and real time chat.
Responsibilities:
- Design and implement large, distributed and scalable services for delivering dynamic social gaming functionality for multiple platforms.
- Write secure server and client-side code for supporting the above applications, develop prototypes quickly and create robust high-volume production solutions.
- Assist in the construction of platforms, systems and networking infrastructure using your strong background in distributed systems, network system design, and
- large scale storage systems.
- Planning and reporting project milestones and timescales on a continuous basis to all those involved.
- Respond to QA and technical issues in a timely and professional manner.
Requirements:
- Familiarity with all of the following: Linux, Apache, MySQL and PHP/Java or a related language.
- Experience with relational database design and strong SQL skills
- Experience with version control systems such as Git or Subversion
- Strong understanding of Object Oriented programming techniques, including: Design Patterns, Refactoring, Dependency Injection and the SOLID principles.
- Experience with Unit Testing, preferably using Test Driven Development
- A passion for creating clean, maintainable code
- Knowledge and practical experience of Agile planning methodologies.
Bonus Abilities:
- Experience of working in high-availability, high-load operational environments.
- Detailed understanding of implementing large server applications including networking, memory, storage and concurrency concerns.
- Experience with designing and applying a microservices based architecture, including synchronous and asynchronous inter-application messaging.
- Experience with networking and server technologies for scalability and redundancy.
- Experience working with a variety of network and system monitoring tools: Nagios, Cacti, SNMP.
- Experience with automated configuration management and deployment tools such as Puppet, Chef or Ansible.
- Experience with AWS or similar Cloud based services.
Key Personal Attributes:
- Attention to detail.
- Excellent multi-tasking and leadership skills.
- Excellent teamwork skills, flexibility, and ability to handle multiple tasks.
- A passion for games, ideally social and mobile games.
- The ability to have fun and work hard.
- Comfortable setting, and working to, deadlines.
- Appreciation for being part of a fast-paced startup environment – an interest in working with a small team to create software used by millions of people every day.
- Strong communication and time management skills—the ability to balance high quality work standards against time constraints.
- A relentless passion for creating industry leading products and the highest quality user experiences.
Send your covering letter, CV and portfolio link to (no agencies).