Collaborate with internal and external stakeholders; Research, consult, analyse and evaluate system program needs; Design and develop scalable, reliable and maintainable software solutions; Lead the entire software development life cycle; Identifying limitations and deficiencies in existing systems;