Position: Software Developer - PHP
Company: Evogence
Experience required: 2y
English level: intermediate

Job Description:
This position is for Lead Software Developer in one of our key platform products. Lead Software Developer creates complex technical architecture solutions to meet the needs of EiOS platform products. Focusing both on evolution product features and balanced architecture growth of the product platform, Lead Software Developer works with Product Managers and VP of Software Engineering to help identify, prioritize and plan application development efforts. Knowledgeable about best practices, the Lead Software Developer will continuously collaborate with other technical leads to develop architecture and strategy. The Lead Software Developer will be instrumental in implementing the application strategy to new and existing platform applications; providing direction, motivation and inspiration to other members of the development team. As a subject matter expert in the application field, he/she resolves problems with existing applications, as well as analyzes and introduces new approaches. The Lead Software Developer coaches and is a mentor to the development staff keeping him/her-self updated on the technology trends and best practices providing support to the operation.

Requirements:
PHP:
Extensive knowledge of PHP versions 5.X through current releases
Specifics of OOP implementation for versions 5.6, 7.x
Extensive practical experience of MVC architecture implementation
Experience in proprietary solutions development without using available internet frameworks
Experience in resource-conscious code writing.
Understanding of PHP interpreter RAM management.
Knowledge of HTTP/S and TCP/IP protocols.
Working experience with WS/WSS protocol.
Experience in creating object API over HTTP and TCP/IP protocols
Ability to plan and implement system data and event logging

Databases:
Solid experience in building projects based on MySQL and PostgreSQL databases
Practical experience in database architecture planning
Practical experience in using various table types and index types
Understanding data integrity and database normalization
Practical experience in developing Stored Routines
Ability to work with large datasets and create aggregate calculations

Front-End Development:
Experience in programming using native JavaScript

Linux:
Extensive Debian/Ubuntu knowledge sufficient for the following tasks:
- processor load analysis
- network load analysis
- investigation of system and TCP/IP server port processes
- top-level analysis of system logs
- top-level analysis of the file system condition and related troubleshooting

Coding and projects:
Ability to review code of any difficulty and quality (written by yourself or others)
Experience in working and migrating / re-writing with legacy code
Ability to quickly find problems by analyzing system and proprietary logs

General requirements:
Practical experience with projects based on client-server architecture
Experience in teamwork for heterogeneous architecture projects
Understanding product version control and product update cycles on multiple client hosts
Code review experience
General understanding of multi-stream solutions

Will be a plus:
Experience working with video streams
Experience with synchronizing media files between the hosts
Experience with the development of MVC frameworks
Experience creating TCP clients and servers using PHP
Knowledge of Python