Purpose
To collaborate with the Product Team in order to understand product requirements and provide technical expertise for all products as required, and to assist in analyzing, designing, testing, and structuring the required solutions to deliver a high-quality working software based on the business needs and standards.
Key Activities
Software Development
Keep abreast of latest software development methodologies in order to be able to provide best-in-class software solutions
Analyze product requirements in order to understand engineering requirements, evaluate technical feasibility, estimate efforts and provide the required solutions in collaboration with Product Team
Assist in building development components and managing the programming of the different solution components in order to transform the requirements into actual working software accurately
Document all coding steps in order to ensure comprehensibility and to facilitate future modifications and maintenance
Investigate and resolve issues and bugs through patches and other means
Collaborate with other colleagues in order to assist each other in code reviews and deliver code review reports accordingly
Perform functional and module testing in order to ensure functionality of delivered solutions
Monitor evaluate and report on product development and recommend improvements where necessary
Assist in user trials and acceptance testing
Governance and Resilience
Follow all relevant policies, procedures, and processes in order for the daily work to be carried out in a controlled and consistent manner
Contribute to the identification of opportunities for continuous improvement of processes, practices, work processes, cost effectiveness, and productivity enhancement
Promote to other employees within the organization the implementation and adherence to policies, procedures, processes, and instructions
Daily Operations
Follow daily operations relating to the job to ensure work continuity
Contribute to preparing timely and accurate reports that concern the line of work to meet the requirements, objectives, and standards
Ensure the satisfaction of both internal and external customers by addressing their needs in a courteous and timely manner
Requirements
Knowledge and Experience
5+ years of experience in developing software, with knowledge of design patterns and algorithms.
Engineering excellence - a proven track record of substantially impacting the development of complex non-trivial systems.
Product focus - ability to internalize a product vision and motivate a team to work towards product goals.
Execution - getting things done mentality. Ability to manage multiple projects at the same time, with high prioritization skills and experience with versioning tools.
You are open-minded about technologies, but particularly proficient in one of the following: Swift, Objective C.
A passion for elegant designs and experience with Android or Windows Phone is a strong plus
We also consider experience with programming in Ruby, Python on Linux to be beneficial.
Fluent in HTTP and Rest API’s.
You are a pragmatic programmer who understands what is needed to get things done.
You are experienced with versioning tools (preferably Git) and have practical knowledge of Web Services, XML and Json.
Education and Certifications
Bachelor’s Degree in IT, Computer Science, MIS, or Software Development is required
Master’s degree in a relevant field is preferred