● Design, build and maintain efficient, readable, extensible, reusable, testable, reliable code, while being mindful of performance requirements.
● Create, maintain, and run unit tests for both new and existing code, with a goal of delivering defect-free and well-tested code to QA.
● Work with management to create and adhere to schedules, while maintaining flexibility to adapt to shifting market demands.
● Write and maintain documentation for new and existing features.
● Translate use cases and requirements into functioning front-end code.
● Translate mock-ups and wireframes into functioning front-end code.
● Integrate data storage solutions
● Integrate with third party systems including but not limited to the Navitaire APIs and Payment Gateways
● Ensure the best possible performance, quality, and responsiveness of applications
● Identify bottlenecks and bugs, and devise solutions to mitigate and address these issues
● Help maintain code quality, organisation, and automatization
● Maintain all code within a code repository and versioning tool
● Maintain best practices for implementation and deployment, including roll-back mechanisms
● Keep up-to-date on best practices and new technologies.
● Rapid prototyping, and presenting conceptual design and working prototypes to management.
● Conduct design and code reviews and collaborate to ensure your own code passes review.
● Collaborate on technical architecture and design
● Analyse user needs, design and develop software solutions
● Create user guides for new and existing programs
● Document all programming tasks and procedures
● Perform routine software maintenance
Mentor junior software developers on design patterns, development best practices and algorithms
● Develop and maintain strong working relationships with the system users and decision makers
● Work proactively with all third-party suppliers to develop strong business relationships
● Operate effectively within the existing I.T. team through participation and contribution, and deliver the appropriate training/knowledge transfer to new members of the I.T. team as and when required
● Research, identify and propose potential system enhancements for all systems as the airline expands its operations and in particular research options with Host providers
● Requirement Elicitation and Analysis Skills
● Effective oral, written and interpersonal communications skills
● Strong organizational, multi-tasking, and prioritizing skills
● Design skills with experience in object-oriented methodologies, design patterns, database design, and data modelling.
● Good problem-solving skills.
● Attention to detail.