Breaking Barriers: Ini-Obong Udoh’s Approach to Developing Scalable Applications

In this interview with Sunday Ehigiator, Lead Solutions Architect at Spektra Technologies Limited, Ini-Obong Udoh, speaks on his career trajectory, break into the tech space and his approaches towards developing scalable applications among others

Walk us through your experience as a software engineer and how it has prepared you for your current role?

I began my career as a Systems Integration Engineer, focusing on integrating core systems with third-party applications. When I joined Heritage Bank, I identified numerous opportunities for automation and saw many processes that could be improved.

I designed solutions and created architectural plans but had to rely on software engineers to implement them. Unfortunately, these solutions were not being executed.

I have always been passionate about providing solutions and proactive in my approach. However, I soon realised that my ability to deliver solutions was limited without hands-on software engineering skills. Given my proficiency in scripting languages such as Shell, SQL, and Python, I decided to take the initiative and transition into software engineering.

My background made this shift smoother, enabling me to implement the solutions I envisioned directly. I eventually built solutions that helped reduce the core banking license by 35 per cent, automated basic routine tasks across the bank, led efforts that resulted in a 60 per cent increase in transaction processing speed and spearheaded the technology infrastructure synchronisation with Enterprise Bank in record time, setting an industry benchmark with no downtime and no customer issues related to data migration or merger.

In 2015, I earned the Shining Star Award from Heritage Bank for my dedication and selfless service.

Moving on to First Bank, I managed millions of transactions per second, often encountering concurrency and performance issues. Navigating these challenges and devising solutions provided me with invaluable firsthand experience in building and managing high-traffic systems.

Over the years, I’ve developed a variety of solutions, including workflow applications, payment gateways, wallet systems, core banking, loan solutions, and remittance systems. In my experience, many software systems need better engineering.

Working with core banking systems like Finacle and other enterprise solutions has equipped me to build more robust, highly scalable, and secure systems.

What inspired your passion for developing scalable applications?

As a systems integration engineer, I remember spending days and many nights working in major banks across Nigeria, addressing issues of slow transaction processing and high failure rates. Constantly patching and fixing these applications was time-consuming and exhausting.

Those extensive hours revealed numerous loopholes, inspiring me to design and build more effective systems to correct them. Striving for excellence is a core value of mine, and this was reflected in the quality of my work, as recognised by my colleagues and managers.

In designing my architecture, I prioritised security, performance, and scalability. This approach enhanced customer experiences, required fewer human resources for systems management and maintenance, improved operational efficiency, and reduced overall costs. Additionally, I take pride in achieving over 95% uptime for the systems I’ve worked on.

How did you achieve the industry benchmark at Heritage Bank, and what was the impact on the organisation?

I would say hard work, which is the easy part. But that’s not all there is. It required lots of planning, extensive hours, tenacity and several iterations of simulations. As mentioned earlier, striving for excellence is one of my core values.

What strategies did you use to increase transaction processing speed by 60 per cent?

I addressed the multiple database calls required for validations to enhance transaction processing speed by consolidating them into a single stored procedure, reducing database overhead and increasing processing speed. This also decreased the resources needed for the database server.

Additionally, I implemented load balancing techniques to evenly distribute the workload across multiple servers, preventing bottlenecks and ensuring smoother transaction processing.

A thorough review and refactoring of the existing codebase helped identify and eliminate redundant processes while optimising critical code paths, significantly boosting overall system performance.

Furthermore, introducing asynchronous processing for non-critical tasks allowed the system to handle more transactions simultaneously, improving throughput.

Can you share more about your experience implementing Nigeria’s first Finacle Future Ready Project?

Implementing Nigeria’s first Finacle Future Ready Project was a highly rewarding and challenging experience. As a lead on the project, I oversaw the integration and deployment of Finacle’s advanced banking solutions within one of the country’s major banks. This initiative aimed to modernise the bank’s core banking operations, enhance customer experiences, and improve overall efficiency.

The process was extensive and complex, particularly for a large-scale bank like First Bank. It involved data mapping from the existing system to the new one, identifying dependencies and third-party systems, and conducting thorough data cleansing to ensure that no dirty data was transferred.

Load management, configuration, and re-configuration of the new system were critical, as was ensuring that existing third-party systems would work seamlessly with the new solution.

The process involved several iterations of migration simulations and rigorous systems integration, performance, security, and load testing. These steps ensured a smooth transition and robust system performance post-migration.

One of the primary challenges was ensuring a seamless transition from the legacy systems to the new Finacle platform without disrupting ongoing banking operations.

To achieve this, I led a team to assess the bank’s existing infrastructure and processes comprehensively. We meticulously mapped out the migration strategy, identifying potential risks and developing mitigation plans to address them. Optimising transaction processing speeds was a key focus.

By consolidating multiple database calls into a single stored procedure for transaction validations, we significantly reduced database overhead and increased processing speed. This also led to more efficient resource allocation on the database server.

Implementing load-balancing techniques further ensured an even workload distribution across multiple servers, preventing bottlenecks and enhancing transaction processing efficiency.

In addition to these technical optimisations, we thoroughly reviewed and refactored the bank’s existing codebase. This involved identifying and eliminating redundant processes, optimising critical code paths, and introducing asynchronous processing for non-critical tasks.

These measures collectively boosted the system’s performance, allowing it to handle a higher volume of transactions simultaneously. The new system was highly scalable and featured easy-to-use APIs, seamless integration with third-party systems, and an improved modernised user interface.

Throughout the project, close collaboration with various stakeholders, including bank executives, IT teams, and Finacle experts, was crucial. Regular communication and progress updates helped ensure alignment with the bank’s strategic goals and allowed us to address any issues promptly.

The successful implementation of the Finacle Future Ready Project resulted in a more robust, scalable, and secure banking system. The bank experienced improved operational efficiency, enhanced customer satisfaction, and a significant reduction in system downtime. This project marked a significant milestone in Nigeria’s banking sector and provided me with invaluable experience in managing large-scale technology transformations.

How do you approach leading projects and ensuring high-impact solutions?
Leading projects and ensuring high-impact solutions requires a strategic approach centred on collaboration, thorough planning, and continuous improvement. I define the project scope, objectives, and stakeholder expectations, fostering open communication and alignment.

I leverage team strengths, assign roles based on expertise, and maintain a supportive environment for idea exchange and proactive problem-solving.

Thorough planning includes detailed timelines, milestones, and risk management strategies to anticipate and address challenges effectively. During execution, I prioritise transparency and accountability, monitoring progress closely and making adjustments as needed to ensure efficient goal achievement.

To deliver impactful solutions, I emphasise structured problem-solving, conducting in-depth research and exploring innovative technologies aligned with project goals. Iterative testing and feedback cycles facilitate continual refinement for optimal outcomes.

Post-project evaluation is essential for learning and growth, enabling the team to capture successes and areas for improvement. By fostering a continuous learning and adaptation culture, I strive to deliver projects that positively impact stakeholders and advance organisational objectives.

What does being a “results-driven” software engineer mean to you?


There are many, but I’ll state a few major ones. Being a “results-driven” software engineer means focusing on delivering tangible outcomes and impact in every aspect of my work.

This means delivering code that meets functional requirements and considering the broader implications on system performance, scalability, and user experience. It starts with understanding project goals thoroughly and ensuring that my efforts directly contribute to achieving those objectives.

I prioritise efficiency by adopting best practices, leveraging technology effectively, and proactively addressing potential challenges to ensure smooth project execution. I take ownership of outcomes, ensuring the quality and impact of my work through rigorous testing and iteration until solutions meet or exceed expectations.

Embracing challenges as opportunities for innovation, I strive to consistently deliver measurable value and drive positive results for the organisations I serve.

How do you stay current with the latest advancements in software engineering?

I stay current with the latest advancements in software engineering by regularly reading industry blogs, attending webinars and conferences, participating in online courses, subscribing to specific YouTube channels, listening to podcasts, following industry leaders and engaging with professional communities such as GitHub and Stack Overflow.

Can you describe your experience as an IBM Certified Cloud Developer?

Building applications on IBM Cloud is streamlined and efficient, offering robust platform-as-a-service options like IBM Cloud Foundry and IBM Cloud Kubernetes Service. Developers, myself included, benefit from a comprehensive suite of managed services such as IBM Watson for AI, Cloudant for NoSQL databases, and Cloud Object Storage for scalable data solutions. Security and compliance are prioritised with built-in features like encryption and IAM.

Integration with tools like GitHub and Jenkins supports CI/CD pipelines, enabling rapid deployment and continuous innovation. Overall, IBM Cloud provides me with a robust ecosystem for building, deploying, and managing modern cloud-native applications with ease.

How do you balance technical expertise with leadership and team management responsibilities?

Over time, I have picked up suitable lessons from my managers, laying the foundation for my leadership skills. As a solutions provider, I typically like to code. However, balancing technical expertise with leadership and team management responsibilities involves several vital strategies.

First, I prioritise understanding each team member’s strengths and assigning tasks accordingly, leveraging their expertise while providing mentorship to foster skill development. Clear communication is crucial.

As a leader, I focus strategically on project timelines and milestones, ensuring alignment with broader organisational objectives. This involves setting clear priorities, delegating responsibilities effectively, and continuously monitoring progress to mitigate risks and ensure deliverables meet quality standards.

Furthermore, I lead by example by staying abreast of industry trends and emerging technologies and sharing insights with the team to inspire innovation and continuous learning.

I also facilitate a supportive environment where team members feel empowered to contribute ideas and take ownership of their work, fostering a culture of collaboration and accountability.

What motivated you to participate in the mentoring program with Thrive Agric?

Early in my career, technical learning involved poring over dense books and documents, with limited knowledge sharing among experienced colleagues. Despite its educational value, this lack of collaboration made learning a solitary and sometimes challenging journey.

I realised that building solutions shouldn’t be unnecessarily complicated and that sharing experiences could significantly ease the path for others. I began mentoring younger professionals in my team, believing that passing on knowledge could streamline their professional growth. Joining the mentorship program at Thrive Agric provided a broader platform to extend this support and impact more aspiring professionals.

How do you approach enterprise development and scalability with emerging tech entrepreneurs?

Approaching enterprise development and scalability with emerging tech entrepreneurs involves a strategic blend of guidance, innovation, and practicality.

First, I thoroughly emphasise understanding the entrepreneur’s vision and business goals, ensuring alignment with scalable solutions. Collaboration is critical, fostering an environment where ideas are exchanged freely and I can provide mentorship based on my experiences.

I encourage entrepreneurs to leverage emerging technologies that align with their business needs, emphasising flexibility and scalability in their architecture. This might include cloud computing, microservices architecture, or utilising AI and machine learning for enhanced efficiency and customer insights.

Furthermore, I stress the importance of iterative development and continuous improvement, as well as supporting agile methodologies to adapt quickly to market changes and customer feedback. This approach ensures that solutions evolve efficiently and remain competitive in the rapidly changing tech landscape.

Lastly, I emphasise the significance of scalability planning from the outset, ensuring that systems and processes can accommodate growth without compromising performance or security. By fostering a mindset of innovation, adaptability, and strategic planning, I aim to empower emerging tech entrepreneurs to build sustainable enterprises that thrive in dynamic markets.

Can you share an example of a successful project you led and the challenges you overcame?

An example is the Finacle Future Ready project for Heritage Bank, my second implementation of this kind. A critical oversight emerged despite thorough preparations: the migration strategy was not discussed until shortly before the cutover date.

It became evident that the vendor’s plan differed significantly from the bank’s expectations. Adjusting the strategy posed a challenge, requiring extensive data mapping revisions and simulations.

Drawing on my previous experience, I assembled a small team and initiated a focused effort on developing a new migration approach. Working tirelessly, we created revised mappings and extraction scripts and conducted rigorous testing.

Once confident in our solution, we presented it to the vendor, ensuring the project could proceed within the designated timeframe. This success underscored the importance of effectively leveraging past experiences to navigate unforeseen challenges.

More recently in my current role, I was tasked with implementing the core banking system for the digital banking arm of the business. I initially developed a comprehensive implementation plan, including architecture, required resources, and internal and external dependencies, along with a risk analysis and mitigation strategies.

However, this plan was not approved, and I was given an alternative plan from management. The new plan had several flaws, including regulatory issues and incompatibility with the Nigerian market. Despite these concerns, we had to proceed with it.

Recognising that the management’s plan would likely fail, I decided to work on both the approved plan and our original proposal simultaneously. This approach was time-consuming and exhausting, but I anticipated that we would eventually need to revert to the initial plan.

A few weeks into the implementation, the first iteration review confirmed that the management’s plan was unworkable, causing significant delays. With our license at risk and time running out, I revealed that I had been working on both plans.

We swiftly switched to the original plan, which allowed the project to go live successfully. Management was grateful for my foresight and the successful project completion.

How do you measure the efficiency and reliability of software systems?

Measuring the efficiency and reliability of software systems involves a multi-faceted approach encompassing several key metrics and methodologies. First, efficiency is often quantified through performance metrics such as response times, throughput, and resource utilisation.

Monitoring tools and performance testing frameworks allow for systematic evaluation of how well the system handles varying loads and user interactions. By benchmarking against established targets and industry standards, deviations can be identified, and optimizations prioritised to enhance overall efficiency.

On the other hand, reliability assesses the system’s ability to perform as expected under different conditions and over time consistently. Metrics such as uptime percentage, mean time between failures, and mean time to recover are commonly used to gauge reliability.

Comprehensive testing strategies, including functional testing, stress testing, and fault injection, help uncover potential weaknesses and vulnerabilities impacting system reliability.

Additionally, monitoring real-time data and user feedback provides insights into system performance in production environments, allowing for proactive maintenance and continuous improvement efforts.

A holistic approach to measuring efficiency and reliability involves quantitative metrics and qualitative assessments of user experience and operational impact. Regular reviews and stakeholder feedback sessions help ensure that performance goals align with business objectives and user expectations.

By continuously refining performance benchmarks, enhancing fault tolerance mechanisms, and prioritising user-centric optimizations, software systems can achieve higher levels of efficiency and reliability, thereby delivering more excellent value to stakeholders and end-users alike.

How do you collaborate with cross-functional teams to develop innovative software solutions?

I collaborate with cross-functional teams by fostering open communication, establishing clear objectives, and leveraging each team member’s expertise. We conduct regular meetings to align project goals, share insights, and brainstorm innovative solutions.

By promoting a collaborative environment where diverse perspectives are valued, we ensure that our software solutions effectively meet technical requirements and user needs.

What are some key lessons you’ve learned throughout your career?

Compliance is very crucial especially in the financial space, and cannot be overstated. Cutting corners is always counterproductive and short-lived. Companies that prioritise compliance tend to outlast their counterparts, as it also plays into building trust with partners, regulatory agencies and customers.

Additionally, I’ve learned the importance of prioritising customer feedback over assumptions when developing products. Embracing a fail-fast approach has taught me the value of rapid iteration and continuous improvement.

I’ve come to understand that what was efficient yesterday may not be today, emphasising the need for constant innovation, simplification, and adaptation to evolving trends. Staying proactive and responsive ensures staying ahead in a dynamic industry landscape.

How do you prioritise personal and professional growth?

Prioritising personal and professional growth involves a balanced approach that integrates learning, development, and self-reflection. I allocate time for continuous education through courses, tutorials, workshops, and reading to stay current with industry trends and deepen technical expertise.

Setting clear goals and milestones helps track progress and focus on professional development. For instance, I one day want to own a service company that leverages technology as its core.

Personally, I prioritise well-being through activities like football, healthy eating (my wife makes the best meals), video games and mindfulness that provide rejuvenation and balance. Networking and mentorship are crucial for gaining insights and guidance while seeking challenging projects, allowing skill refinement and career advancement.

Regular self-assessment and feedback enable continuous improvement, ensuring alignment with personal aspirations and professional goals.

Can you describe your experience with cloud development and its applications?


In recent years, there has been a surge in the popularity of cloud computing, with many businesses opting to deploy their workloads in the cloud instead of managing physical data centres.

This shift eliminates the complexities of hardware infrastructure management, enabling businesses to concentrate more on enhancing their core products. While scepticism about cloud adoption persists among some businesses, I firmly believe that the future lies in cloud technologies.

How do you handle data migration and merger challenges in software development?

Handling data migration and merger challenges in software development involves meticulous planning and execution. I begin with a detailed analysis of existing data structures and dependencies to formulate a robust migration plan, focusing on automated tools for efficient data extraction, transformation, and loading.

Collaboration with stakeholders ensures seamless integration and resolution of data conflicts. Continuous monitoring and documentation throughout the process allow for timely adjustments and lessons learned for future optimizations. This methodical approach minimises disruptions and ensures successful outcomes in software projects.

What advice would you give to aspiring software engineers and leaders in the IT industry?

Don’t be motivated by money only, but also by building a solution that impacts people’s lives. The money is good but does not sustain motivation. The job requires patience, tenacity, and a constant willingness to learn, as some days your current knowledge won’t suffice, no matter how much you know.

There have been low moments of course, however, the sense of fulfilment I feel when solving a problem, combined with knowing that the products I build are used by thousands to millions of people, keeps me motivated. Embrace challenges and opportunities for hands-on experience, whether through internships, personal projects, or collaborative initiatives.

Seek mentorship from experienced professionals who can provide guidance and insights into navigating career paths and industry trends. Furthermore, cultivate a problem-solving mindset, focusing on understanding user needs and delivering value-added solutions. Lastly, resilience and adaptability can be cultivated in rapid technological advancements and market changes.

Embrace feedback as a tool for growth, and always strive for excellence in everything you do. Investing in continuous learning, embracing challenges, and fostering robust communication and problem-solving skills, you will attain success and fulfilment in the IT field.

Related Articles