How Does a CTRM Software Company Actually Function?
This is the fourth article in the series that looks at how a software vendor operates and how it is organised to ensure that customers obtain the very best in support and assistance. The previous articles focused on the Business Analyst, Project Manager and Support role within a CTRM software business. This article moves on to a role the client will rarely interact with, and that is Developers, DEV.
DEV
From the moment a CTRM implementation begins, DEV will work closely with the vendor’s business analysts, ensuring the system is configured correctly with invoice/trade recap templates designed for go-live. Once live, DEV will work on any further enhancements for the next release.
But what exactly does a CTRM DEV team do? As you will see, this role is both a key and important one that, hopefully, this article will address with help from comments and insights from three of Amphora’s DEV team, James Bodkin, (J), Kashyap Pulijala, (K), and Naveen Gottam, (N).
We are also constantly improving our processes and have recently introduced performance testing so that we understand how our APIs react and scale under load.
James Bodkin
Lead API Engineer
Amphora
No two days are ever the same. There are always new challenges and issues to solve.
Dedicating time to understand the product domain and adapting to client customization requirements is also crucial to success.
Kashyap Pulijala
Director of Product Development
Amphora
Understanding the role Describe your role at Amphora highlighting the areas you specialise in?
J: As Head of Application Programming Interface (API), I manage a cross-functional team of developers and automation engineers. Our team inside Amphora is responsible for building the next generation of APIs for our products, allowing our clients to integrate their business processes.
K: I manage a team of software engineers that work on the design and development of new applications, product enhancements, and customizations/optimization requirements across different modules.
N: I am heavily involved in the design, planning, and execution of releases. I also advise on ongoing issues as a domain expert with strong development knowledge.
How does your function impact the quality of Amphora’s offering?
J: By following the software development lifecycle, the team can maintain a high-level of quality for the feature under development. Once the team receives the requirements, we sit down with the product owner to understand, review, and refine the document. Next, we evaluate the different technological choices before choosing the best option.
After the developer has finished coding and implementation of the feature, we automatically run both unit and integration tests, as well as SonarQube- which we use to measure code quality and code coverage. Additionally, each feature is reviewed by another member within the team to check for consistency and quality. Finally, our automation engineers run the end-to-end automation tests.
We are also constantly improving our processes and have recently introduced performance testing so that we understand how our APIs react and scale under load.
K: Development function is the core engineering team that designs and develops software in incremental deliverables for further downstream functions like QA, Dev/Eng Ops. It has multiple quality gate checks including security and other code analysis tools used in CI/CD pipeline that ensures that the quality of the software is maintained to expected standards.
N: The initial analysis of the requirements helps to guide the solution to the correct module and most optimal technology which impacts the quality of the software. To ensure quality, the design requirements must be continually monitored.
What biggest strengths are needed in your position?
J: I’m always thinking about the future direction of the products and evaluating different technological choices that could help us in the future. Additionally, I’m keeping a close eye on the day-to-day development, to ensure that everything is running smoothly.
K: From a technical standpoint having strong system design/architecture design skills, (cloud-native or otherwise), is a primary need and good knowledge on modern design/coding patterns, with team management skills. Dedicating time to understand the product domain and adapting to client customization requirements is also crucial to success.
N: A deep knowledge of the product architecture, analytical skills and next generation technical skills are required along with strong organisational attributes to manage releases with the correct resources.
Which other teams do you work closely with?
J: I’m constantly communicating with the different teams within Amphora as I’m involved in all stages of the development lifecycle. During the planning phase, I work alongside Sales. As part of the implementation and deploy phase, I work with the DevOps, Database and Technical Writers. Finally, during the maintenance phase I work with the Support Team. Additionally, I’m involved with discussions with the client when my technical expertise is needed.
K: I work closely with functions related to project management, QA, business analysts, for different situations and raising risks whilst providing continuous feedback to CTO and CEO.
N: Business Analysts, DevOps, and the QA team.
What in your view are the greatest risks and challenges for supporting a CTRM business?
J: There are always several challenges facing a development team, as the landscape is continually changing. These include keeping pace with innovation, customer experience, data privacy, cybersecurity, and automation.
K: Varying customized workflows and computations is one of the biggest challenges in developing a CTRM product and getting right scalable design to adapt and inject appropriate workflow while reusing core modules is crucial for a successful implementation.
N: The design and development of a scalable CTRM solution for different clients’ commodity base can be challenging with a high focus on data handling and reporting.
Understanding the individual
Do you mostly work alone or in a team? If you manage a team, what style do you use to lead other employees?
J: I manage a team and try to encourage each individual team member to take ownership of their story, from development until it hits production.
K: I work mostly with teams and in an individual capacity when building a Proof Of Concept (POC), or an independent design task. I prefer leading in a collaborative way with constructive timely feedback to the team.
N: I manage a team assigning roles based on their skill set.
What is your biggest achievement in your current role?
J: Improving the performance of APIs from 30 to 5 seconds, although I’m still looking to reduce that further to within a couple hundred milliseconds.
K: I enjoyed working on some of the tasks that resulted in major optimization of the performance of core applications, pricing, derived risk data generation engines.
N: I have evolved from a software developer to lead a design and development team.
What has been your favourite project that you have been part of whilst at Amphora?
J: I’ve been enjoying working on our new logistics API. We’re focusing on building a rich domain model which will make it easier for new developers to pick up the project and faster for all developers to build new features.
K: I have been fortunate to work on some of the transformation tasks of core apps from legacy to domain driven modules and work done on pricing/formula evaluation engine has been a good experience that offered me insight into the product.
N: Leading our current release, 3.7, and managing external integrations.
What do you find exciting about your job?
J: No two days are ever the same. There are always new challenges and issues to solve.
K: It offers me a chance to learn enterprise Fintech domain while also working on the engineering and technology aspects of it.
N: Every day is challenging and new, with new client implementations, or current client’s adapting their current business process.
How long have you worked for Amphora and how is it to be an Amphora employee?
J: I’ve been working at Amphora for just over a year and I’m enjoying being able to talk to different people every day within the organisation.
K: I have been working with Amphora for over 14-years and it has been a good enriching experience from a learning curve and career progress standpoint.
N: I have been working at Amphora for the last 15-years where it has provided me with an environment to improve, learn new skills and take on more responsibility.
What attracts you in supporting CTRM software?
J: I love acquiring new knowledge and working on CTRM software allows me to learn about a different domain - commodities.
K: It is a niche domain with multiple modules and customization/integration requirements are varied and vast in nature. It offers you a good experience to apply your engineering/technical skills to solve multiple requirements by adapting to modern tools and practices.
N: I love the challenge of developing software in the vast market of CTRM.
What advice would you offer anyone considering working in support for a CTRM company?
J: I’m always on the look-out for someone with curiosity. Someone who asks questions, challenges the current choices, and leaves things in a better state than they found it.
K: For anyone considering working in a DEV function, it is crucial to have solid technical skills based on level of experience from programming to enterprise product system design. In addition, it is important to spend time to understand the functional context of tasks/problems being solved to have a smooth ride and growth within CTRM product company.
N: Deep dive into the architecture to create maps between business and design. You should have a long-time commitment in the sector, as CTRM is vast to explore with new age technologies.
ABOUT:
James Bodkin James joined Amphora in 2022 as a Lead API Engineer which evolved into the Head of API. Before joining Amphora, James has worked on projects to build highly scalability applications in the cloud and has 12-years of development experience. James holds a bachelor’s degree in computer science from the University of Birmingham.
Kashyap Pulijala Kashyap joined Amphora as a Software Developer in 2009. He has worked in multiple roles in his career with Amphora and is currently working as Product Development Director managing a team of engineers that work across multiple core modules. He holds a bachelor’s in technology from Indian Institute of Technology (IIT) Guwahati.
Naveen Gottam Naveen has 15 years of experience in designing and implementing software solutions for CTRM. He has a proven ability to lead teams and deliver high-quality software solutions. His expertise is in designing and implementing complex systems using cutting-edge technologies. He received a Bachelor of Technology in Computer Science and Information Technology from Jawaharlal Nehru Technological University.