On March 31st - April 1st, 2018 volunteers from IT companies will join to help local NGOs by de...28 February 2018
Symphony – Why So Special?
At Symphony Solutions we have removed all possible barriers created by the traditional organization and embraced the organic principles and a high-degree of self-management. We believe that this kind of organization is the optimal environment to attract and retain the best talents, fully develop them and leverage their potential. As a result, we have achieved the highest retention of employees possible in our industry (currently there’s less than 3% unwanted turnover).
We have a unique employee selection process where colleagues choose colleagues. Such approach eliminates possible conflicts and ensures honest and transparent relationship with clients and within the team. Symphony Solutions is a company that strives to be the Best Price/Performance and the easiest to do business with.
Our customer is a world-leading supplier of online and in-venue based sports betting and gaming solutions. It is this level of performance, combined with an inherent culture of innovation that has seen the development of the industry’s first omni-channel gaming solution.
Reporting to a Senior Software Developer, the Middle Software Developer will be working alongside other Software Developers, Project Managers, QA/Software Testers, Software Architects in order to shape and implement the technology and product deliverables that will drive forward this strategic initiative.
A Software Developer will be expected to both lead and mentor less experienced developers, actively contributing to their day-to-day activities and training needs.
There will be a mixture of small, but strategically significant projects, and also large scale complex programmes of work, all delivered in an Agile format with direction from Product Management, but with delivery via a tightly contained team focused on quality deliverables across the platform.
- At least 1.6 years' experience developing commercial Enterprise Java applications;
- Ideally 1 year of demonstrable experience in developing on distributed, high-volume, highly available, complex transactional systems;
- Experience in developing web applications using at least one popular web framework (JSF, Drupal, GWT, Spring MVC etc.);
- An understanding of the actor model;
- General understanding of the use of Docker, Ansible, Maven, Jenkins, Sonar and Git (BitBucket);
- An understanding of TDD and / or BDD principles;
- A good understanding of relational databases, SQL and ORM technologies (JPA2, Hibernate etc.);
- Ability to document technical solutions in a variety of formats and to constructively share knowledge with team members;
- Ability to learn new technologies quickly;
- Excellent verbal and written communication skills, including presentations to peer groups;
- Excellent teamwork skills within a scrum team environment;
- Able to deal with changing priorities within a large programme;
- Able to take direction from senior team members including, BA’s QA’s and software architects
- A Bachelor's degree in a traditional science subject, ideally computer science, engineering or information systems from a well regarded university
- Some experience of Akka, Kafka, Scala and Cassandra;
- Some understanding of large distributed systems and concepts such as caching, sharding, consistent hashing, interprocess communications and brokering;
- Hands-on experience in developing microservices using at least one popular framework (Netflix OSS, Spring Cloud, Play etc.);
- Some experience in Domain Driven Design, the actor model, event-sourcing and CQRS;
- Some Knowledge in Python (maybe PHP) and PostgreSQL or MySQL would be beneficial;
- Domain knowledge is not required, but having worked on major eCommerce or any significant widely distributed system would be an advantage
- Development of new features and functionality for products and services, including the production of unit tests as and where required;
- Will be asked to participate in reviews for products of the projects they are assigned to;
- Ensuring code quality is maintained at a high level for products and services delivered by the team the Software Developer is working with;
- Ensuring that products and services adhere to agreed user stories provided by product owners and business analysts;
- Maintenance of relevant technical sections of the internal Knowledge Base;
- Understanding of solutions architecture and design, including KPI definition;
- Ability to input into planning sessions for sprint planning and sprint retrospectives;
- Support the Senior Software Developer to ensure continuous quality improvement in the sprint team
- Escalate issues in areas of material improvement, notably around performance, security and scalability;
- Understand development team processes and where they should be aligned with technical processes prevalent in the wider company;
- Develop a clear understanding of the overall system architecture and design components, in the context of meeting product requirements;
- Knowledge of Agile development processes and scrum roles and responsibilities;
- Contribute to scrum meetings and escalate issues as appropriate to the Senior Software Developer
- Friendly and highly professional teams;
- Competitive salary and compensation package;
- Career and professional growth;
- Regular (twice a year) performance reviews;
- Paid English classes;
- Low hierarchy and open communication