Product Software Engineer (wk)
Job posting number: #158050 (Ref:R0045302)
Job Description
About the Role:
As a Product Software Engineer, you will build upon your foundational skills to develop and enhance software programs. With a focus on innovation and user satisfaction, you'll collaborate with your team to improve the performance and usability of our products, ensuring they meet the high standards our users expect.
Responsibilities:
• Design, code, test, and debug software applications according to project requirements and coding standards.
• Write and execute unit tests and participate in integration testing to ensure the reliability of software components.
• Identify and fix software defects (bugs) and work on maintenance tasks to improve the overall stability of existing applications.
• Participate in code reviews to ensure code quality, readability, and adherence to best practices.
• Collaborate with team members and cross-functional teams to contribute to the software development life cycle.
• Implement new features and enhancements based on specifications provided by senior team members or product managers.
• Investigate and troubleshoot issues reported by users or identified during testing.
• Optimize code for performance and efficiency without sacrificing readability and maintainability.
• Analyze and understand project requirements, translating them into technical solutions.
• Implement security best practices to protect sensitive data and prevent vulnerabilities.
Skills:
• Software Engineering: The ability to design, develop, and maintain software systems and applications by applying principles and techniques of computer science, engineering, and mathematical analysis. This includes the capacity to understand user requirements, create and test the software, and resolve any software-related issues.
• Software Development: The ability to design, write, test, and implement software programs, applications, and systems. This includes understanding various programming languages, software architecture, and software testing methods. It also involves problem-solving capabilities to fix software issues and improve functionality.
• Programming: The ability to design, write, test, debug, and maintain the instructions, also known as code, that a computer must follow to execute a task. This skill often involves various programming languages such as Python, Java, or C++.
• Problem Solving: The ability to understand a complex situation or issue and devise a solution by defining the problem, identifying potential strategies, and ultimately choosing and implementing the most effective course of action.
• Testing: The skill of evaluating a system or process, often in software or product development. It involves the ability to identify problems, measure effectiveness, and ensure quality or functionality.
• Agile: The ability to swiftly and effectively respond to changes, with an emphasis on continuous improvement and flexibility. In the context of project management, it denotes a methodology that promotes adaptive planning and encourages rapid and flexible responses to changes.
• Source Code Repository: The ability to effectively use a source code repository, a file archive and web hosting facility where a large amount of source code, for software or for web pages, is kept, either publicly or privately. This skill involves the ability to manage and track changes to code, identify and fix issues, merge code from different branches, and collaborate with other developers.
• Relational Database: The ability to design, implement, and manipulate a relational database, a type of database that stores and organizes data in a structured way and where data is logically inter-related. This skill often requires proficiency in SQL, database management systems, and understanding of database design principles.
• APIs: The ability to design, develop, and manage Application Programming Interfaces, which constitute the set of protocols and tools used for building application software. This skill includes the capacity to create and maintain high-quality API documentation, implement API security practices, and understand API testing techniques. Additionally, having this ability means understanding how APIs enable interaction between different software systems, allowing them to communicate with each other.
• Design: The ability to create, conceptualize, sketch, and implement layouts, structures, and plans either for aesthetic or functional purposes. This could be used in various contexts such as architecture, fashion, graphics, interior and more. It involves creativity, problem-solving and strategic thinking.
• Framework: The ability to understand, utilize, design and develop complex structures and systems in various contexts such as programming, project management or business strategy. This ability requires critical thinking, problem-solving skills and attention to details.
Competencies:
• Inclusive Collaboration
• Analytical skills
• Drive to perform
• Accountability
• Functional Expertise
• Operational Excellence