Job Description :
– Lead the strategy for developing Retail Store Productivity Solutions using cutting edge hardware and software technology solutions .Help identify and evolve valuable features that need to be developed and used .Suggest improvements to processes and methodologies to speed up delivery.Question requirements and challenge where necessary.
– Identify the value of tasks & always work on the highest priority items. Consistently lead the delivery of valuable features.Establish and maintain the right team and processes to continually deliver quality solutions.Build consensus within the team on the approach to the solution
Technology Understanding :
– In-depth understanding of the ability to understand the interaction between devices, operating systems and software
– Understand the roadmap of Technologies like Android Kotlin
– Ability to understand and integrate with Enterprise Services and Solutions
– Understand how to leverage Networks and Wireless Infrastructure to optimize data transmission over the network. Programming
– Demonstrate in-depth knowledge of IDE, language and toolset in the language of choice.
– Implement a project representative of their teams’ from scratch without assistance.
– Demonstrate excellent understanding of language & framework and a good working knowledge of the abstraction layer underneath
– Profile and optimize code
– Understand threads, threading model and concurrent programming
– Comfortably test drive any feature/comfortable with TDD cycle
– Demonstrate a good knowledge of other programming languages & paradigms and when to apply them
– Comfortably debug/find complex problems.
– Identify and apply appropriate design patterns to problems
– Comfortably develop large features
– Understand Idempotence
– Understand boy scout principle, leaves code in a better state than when arrived
– Demonstrate a good understanding of cohesion, SOLID and how to apply
– Understand the importance of domain model and can coherently model a problem domain within a given context
– Anticipate medium term (3-6 month) vectors of change and designs and abstracts accordingly
– Understand and appreciate the simplicity and the value of removing code
– Understand design patterns such as CQRS and eventual consistency
– Understand how to design for performance at all levels.
Development Practice :
– Automate everything by default
– Build a CI/CD pipeline
– Automate security scanning and performance testing as part of the build.
– Demonstrate a good grasp of multiple operating systems
– Demonstrate a good grasp of scripting techniques
– Demonstrate expertise in one database & a good grasp of multiple data storage paradigms and when to apply other technologies
– Understand and can automate PaaS technologies
– Understand when to apply appropriate infrastructure technologies.
– Write secure code by default
– Use tools to perform deep security probes
– Understand server hardening
Software Methodologies :
– Demonstrate expertise in two or more leading software development methodologies
– Adapt and tailor the delivery methodology to reflect the needs of the problem at hand.
– Implement improvements to software delivery methods within the department
Behaviours & Collaboration :
– Demonstrate a methodical, self-organized and action-oriented approach
– Be a good listener, sensitive and empathetic to the needs of the team
– Be responsive and help remove impediments for the team in a timely manner
– Manage dependencies
– Organize with good written and verbal communication skills
– Mentor and develop those around them
– Manage stakeholders
– Take responsibility and be able to justify the decisions made by the team
– Seek help and guidance when appropriate
– Able to confidently and competently share your knowledge with users, customers, team members and other stakeholders
– Collaborate with own team members
– Comfortably deal with more stakeholders/of increased seniority
– Deliver solutions that have dependencies on more underlying teams/components
– Comfortably lead and mentor teams containing individuals with more experience
– Confidently and competently represent the department with any software delivery related matter
– Collaborate with own team members and wider engineering teams
– Make space for their whole team to innovate
– Stay abreast of industry news from a variety of sources
– Understand how industry developments may affect team