As a Remote Software Engineer at Paymentology you'll be working in the Engineering team to build enterprise-level, highly scalable, highly secure financial processing systems that power tens of millions of transactions and tie them to web, mobile and API interfaces that make it easy for people to issue, redeem and reconcile prepaid and credit cards all over the world.
In this role you will be responsible for creating, enhancing, and maintaining software applications and systems. You will collaborate 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.
Requirements Analysis:
- Collaborate with product management and tech leads to gather and analyse software requirements, ensuring a clear understanding of project objectives and specifications.
Software Development:
- 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.
Documentation:
- 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.
- Adhere to organisational policies, procedures, and regulatory requirements related to software development, security, and data privacy, ensuring compliance with industry standards and regulations.
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.
What it takes to succeed:
We're looking for people that make stuff work with:
- 3-5 years of experience in software development.
- Knowledge of one or more programming languages commonly used in software development, such as Java, with experience in the Spring Boot framework for building robust and scalable applications.
- Understanding of software engineering principles, data structures, algorithms, object-oriented design concepts, clean code, and SOLID principles
- Familiarity with software development tools and technologies, including integrated development environments (IDEs), version control systems (e.g. Git), and issue tracking systems (e.g. JIRA).
- Understanding of software practices such as Agile development methodologies, code reviews, and continuous integration/continuous deployment (CI/CD) pipelines.
- Skills in unit test and/or Test-Driven Development.
- Experience with multicloud kubernetes environments.
- Experience in leveraging Apache Kafka for building scalable, distributed systems and handling large volumes of data in real-time
- Ability to document requirements and specifications.
- Problem-solving skills.
We are looking for developers...
Who love to write great software
Who are passionate about their craft
Who are willing to learn, as well as coach
Let’s also not forget languages (not the programming kind); As you will work with colleagues located throughout the world, English is our company language so it's important that you be able to communicate at a fluent level, in both spoken and written form.
Flexible hours are a must for our remote team. You’ll need to be able to occasionally shift your work hours to participate into on-call duties and better align with colleagues for the scope of specific projects.