Our developers at Progress make our products better than ever for our everyday users.
In celebration of Developer Appreciation Day (September 13), meet one of our excellent developers, Talha Masood, and learn about his day-to-day activities as a Progress OpenEdge developer.
What is your current role at Progress?
Currently, I am fulfilling the dual roles of a product owner for three of our products: Pro 2, Ade and PAS and OEDB Docker images. I am also actively engaged as a Principal Software Engineer working on these products.
In my capacity as a product owner, my responsibilities encompass a variety of tasks. I am involved in feature development and engaging with customers to understand their requirements and concerns. I also take an active role in coding the features intended for implementation across our products.
Prior to my current role, I spent time working in customer support for two and a half years, gaining valuable insights into customer needs and challenges. Subsequently, I transitioned into a development role. It was the culmination of this varied experience that led me to take on my current role as a product owner.
How exciting! You really cover a lot of bases within the OpenEdge product. Can you tell us about your typical day as a Progress OpenEdge developer? What are the key tasks and activities that you engage in regularly?
In my daily role, I primarily focus on addressing bug fixes within our product. Additionally, I engage in refining our product by working on feature requirements and making enhancements. To carry out tasks such as coding and resolving technical issues, I frequently utilize the Progress Developer Studio for OpenEdge (PDSOE). This involves debugging ABL code and subsequently rectifying any identified issues.
When presented with a feature requirement, I take the initiative to compose ABL code in order to enhance the value we provide to our customers or to introduce captivating features to our existing product. I am also responsible for investigating performance-related concerns through debugging processes. In cases where customers report performance issues, I take the necessary actions to address them. This entails analyzing the code to identify performance-degrading elements in the ABL codebase. Subsequent to these findings, I make the required code modifications as part of our development protocol.
After implementing the code changes, I execute code builds. This involves compiling the code and conducting various testing phases, including test gates and test cases. Following these comprehensive tests, I ensure that the updated code is uploaded to the antifactory. Subsequently, the code progresses to a distinct team responsible for packaging and ultimately shipping the product.
How do you approach problem-solving and troubleshooting in your role as an OpenEdge developer?
Whenever a customer issue or problem arises, my approach is to first gain a clear understanding of the situation. To achieve this, I initiate the process by attempting to replicate the reported problem either on my local machine or within a virtual environment. This replication allows me to immerse myself in the issue, gather additional insights and comprehend the challenges faced by our customers.
To enhance my debugging efforts, I utilize the OpenEdge debugger tool, a tool highly valued for its effectiveness in debugging ABL code. This tool facilitates a step-by-step examination of the code, offering insights into the program's execution and variable values at each stage. This comprehensive analysis assists in comprehending the code's journey, aiding in the identification of discrepancies and anomalies.
By meticulously navigating through the code and gaining a deep understanding of its control flow, I often manage to discern the root cause of the issue. Once the root cause is established, I proceed to implement necessary code changes to rectify the problem. Subsequent to this, I repeat the replication steps to ensure that the error no longer persists.
The next stage involves conducting basic testing, including various scenarios to ascertain the effectiveness of the code changes. If the results align with expectations, I proceed with merging the modified code into the development branch. This initiates the subsequent stages of the release process, ultimately ensuring the deployment of a stable solution.
In your opinion, what makes Progress OpenEdge stand out as a development platform? What are its unique strengths or advantages that you appreciate the most in your day-to-day work?
One of the aspects I truly appreciate about Progress OpenEdge is the inherent simplicity of its programming language. Learning the language is remarkably straightforward, thanks to its uncomplicated syntax and logic. In the earlier versions, certain features were absent, but in the most recent iteration, we've gained access to object-oriented ABL. This addition proves invaluable for crafting object-oriented code, allowing us to employ principles such as encapsulation, polymorphism and inheritance.
A notable enhancement is the inclusion of an HTTP client, enabling seamless REST API calls and interactions with various websites through ABL code. This versatility extends further with the integration of ProDataSets, facilitating the smooth transfer of substantial data volumes between applications or via REST calls. We've also incorporated ProDataSets into our Pro2 product.
Our communication strategy involves leveraging REST APIs to connect with Angular, which manages the user interface for Pro2. On the backend, we've leveraged ABL's REST calls to establish connections with both the database and the Angular-based UI. These combined elements truly set Progress OpenEdge apart, elevating its capabilities above those of other languages.
Reflecting on my experiences as a developer, I recall that a decade ago, resources for newcomers to ABL were rather scarce, with limited articles and learning materials available online. However, the current landscape is vastly improved, boasting numerous courses and tools like the ABL Dojo app platform tailored to assist aspiring developers in mastering ABL. This burgeoning wealth of resources actively encourages and supports new learners in embracing the power of ABL.
What advice would you give to developers who are new to working with OpenEdge?
The advice I would offer to new developers is to consider learning ABL. Embracing the novel elements recently introduced to ABL is crucial; this involves mastering both the foundational principles and the latest technological advancements, such as the HTTP Client Pro, Datasets, App Server and Progress Application Server for OpenEdge (PAS for OpenEdge).
These innovations are freshly integrated into the technology and have gained substantial traction among our customers. Exploring these aspects will provide ample learning opportunities. Not only will they contribute to skill enhancement, but they will also facilitate career growth. Moreover, they are instrumental in elevating the performance of the applications developers are engaged with.
Staying current with the ongoing enhancements in the ABL language is a wise strategy. This proactive approach ensures developers are well-equipped to improve their applications, advance their careers and refine their skill set.
Interested in becoming a Progress OpenEdge developer? Learn more about our free training and certification here!
Jessica Malakian
Jessica Malakian is a product marketing specialist at Progress who focuses primarily on Progress OpenEdge. Jessica is a recent college graduate and is excited to begin her professional journey with Progress. Outside of work, Jessica loves reading and writing.