Design, develop and maintain software components making technical decisions about technologies, data structures, algorithms, programmatic solutions, etc. Write clean, scalable and fast performing code according to guidelines and quality standards (SOLID principles, code readability, pattern use, coupling, cyclomatic complexity etc.), including development and maintenance of automated unit tests. Participate as part of development team in sprint planning and review meetings according to Agile principles, analyzing features specifications (user stories) translating them into development tasks and estimating those tasks to build sprint backlog. Contribute to technical debt tracking and improvement plan. Review other developers’ code according to code review mechanisms followed at Telefónica Digital Research and recommend new technologies as well as software libraries (including open source), models and toolsStrong knowledge of: Software technologies: architecture and development Object oriented architectures, data structures, algorithms and concurrent programming Python Twisted & gevent & Django frameworks Asynchronous event-oriented software patterns Finite state machine definition patterns HTTP protocol and REST paradigm Experience in activeMQ REDIS Debug and profiling for performance tuning English language Significant knowledge in the following technologies will be a plus: Java SIP protocol DevOps development practices