The Software Engineer is responsible for creating, enhancing, and maintaining software applications and systems. This role collaborates with cross-functional teams to comprehend requirements, design solutions, and implement code that conforms to best practices and industry standards. The role may necessitate the capability to work on multiple concurrent projects, proactively review progress, and offer recommendations for process enhancement. Moreover, the Software Engineer must possess robust problem-solving skills, technical expertise, and a dedication to delivering dependable software solutions.
What you get to do::
Collaborate with product management and tech leads to gather and analyse software requirements, ensuring a clear understanding of project objectives and specifications.
Design software solutions and architectures that address functional and non-functional requirements, considering scalability, performance, and security.
Write clean, efficient, and maintainable code using appropriate programming languages and frameworks, following established coding standards and best practices.
Develop and execute comprehensive test plans to validate software functionality, reliability, and performance, including unit tests, integration tests, and end-to-end tests.
Identify and resolve technical issues and bugs throughout the software development lifecycle, employing debugging tools and techniques to ensure the stability of software applications.
Manage source code repositories using version control systems (e.g. Git), ensuring proper branching, merging, and documentation of changes.
Implement unambiguous tasks with limited direction, breaking down portions of projects and contributing to task estimation. Follow standard issue-tracking workflows and processes, facilitated by JIRA.
Seek oversight when necessary to validate approaches and escalate roadblocks as needed.
Proactively review progress and evaluate results on assigned technical projects, comparing them against plans and specifications.
Make adjustments and recommendations based on results to ensure project success.
Provide recommendations to working groups regarding the improvement of specific work practices within Paymentology, such as requirements specification, peer review, and coding standards.
Contribute to the enhancement of team processes and documentation.
Resolve straightforward problems by implementing discrete solutions, troubleshooting issues, and addressing immediate causes.
Create and maintain technical documentation, including design documents, user guides, test cases and API documentation, to facilitate knowledge sharing and support future development efforts.
Write technical specification documentation and participate in the planning, and review of design and development activities for concurrent projects.
Ensure alignment with project objectives and specifications.
Adhere to organisational policies, procedures, and regulatory requirements related to software development, security, and data privacy, ensuring compliance with industry standards and regulations.
Contribute to task breakdown, estimation, and improvement of team documentation.
Collaboration and Communication:
Collaborate with engineering teams to develop moderate to complex software applications, leveraging expertise in required languages and technologies.
Work closely with cross-functional teams, including product managers, designers, and quality assurance engineers, to deliver high-quality software solutions on time and within budget.
Work within defined team processes, collaborating effectively with team members and raising concerns when processes break down or fail.
Learning and Development:
Stay updated on emerging technologies, industry trends, and best practices in software engineering.
Take initiative to expand knowledge and skills through training, self-study, and participation in professional development activities.