This person will be responsible for the systems to make sure they are built in a way that best ensures the functional requirements are met whilst also ensure that service qualities (performance, scalability, extensibility) for now and for the future are achievable. Review and improve on existing systems, making use of new technologies and methodologies to seek continual improvement for existing systems. Provide high level guidance and direction on project work, making sure that new projects fit in within chosen architecture. The person will provide technical leadership, advice, and direction for the development and implementations across multiple projects.
Actively contribute during scope definition, requirements analysis, and functional design phase by clarifying vague requirements to make sure they are specific, and goals are clear.
Get an understanding how specific feature requirements fit into the broader system context and clarify any ambiguities.
Prepare a conceptual design consisting of architecture diagrams (UML) and technical specifications of the systems and applications.
Create, define, or choose an application framework for the application recognizing potential reuse in the organization.
Create the component design. Subdivide a complex application during the design phase, into smaller, more manageable pieces.
Ensure that a maximally robust design is developed within the budget constraints and deadlines set forth in the beginning of the project.
Assist developers in selecting how to go about creating prototypes to demonstrate proof-of-concepts.
Ensure that a project fits well with the overall system, other enterprise concerns, industry standards, security standards, as well as established patterns and best practices. Define Hardware, OS and Networking requirements for projects.
Participate in the development of business opportunities within the customer base.
Work with IT Management to ensure system environment meets or exceeds expected requirements for application usage/load.
Provide technical expertise in the diagnosis and resolution of any issues, including solution alternatives during development and be prepared to do some hands-on coding for understanding the intricacies of new and emerging technologies.
Make presentations on emerging technologies to technical teams and clients and advise clients on the use of appropriate technology that satisfies the project requirements while still fulfilling project constraints set forth by business owners.
Assist in determination of quality guidelines/acceptance criteria for system performance and for ensuring that all the high-level requirements have been met.
Enforce development standards and best practices across projects and team members and formulate documentation for standards and best practices.
The ideal candidate for the position should have the following skills and experience:
Experience in technical architecture roles including technology evaluation, design decisions involving architectural considerations and tradeoffs and their impact on a project
Experience with distributed, highly scalable systems and service-oriented architectures
Experience in automating system and application build processes
Experience in server-side development technologies e.g: Java/.NET/Node.js/PHP/Python
Experience in web services or Restful API services implementation Experience in UNIT testing tools
Experience using AWS SAM, Serverless framework to deploy REST APIs using API Gateway, Lambda functions
Experience in Scripting technology (Angular/TypeScript/React.js)
Experience in UNIT testing tools
Experience in IOS/Android frameworks.
Experience in MS SQL server/MYSQL/ Oracle relational database.
Knowledge in database design, SQL, Data security, Data backup.
Knowledge of different architecture design patterns and principles, UML, Data modelling
Knowledge of Interfaces, Classes, Objects, Inheritance, Abstraction, Encapsulation, Data Hiding/Information Hiding, Polymorphism.
Ability to communicate clearly, concisely and accurately, verbally and in writing
Ability to work in a team-oriented, collaborative environment
Should have an ability to switch between macro and micro visions effectively and efficiently, as time demands;
Ability to be analytical
Make decision effectively
Should have an ability to foresee, plan and mitigate any type of risk
Make considerations between technical and business need to offer best compromise
Attention to detail
Ability to quickly learn new skills on emerging technologies
Abstract thinking/foresee various scenarios during implementation
Education and Work Experience:
This individual should have over 14 years of working experience in application design and development.
Bachelor’s degree is required in CS, IT or related scientific discipline.