I've been developing software for over 13 years. I started my career as a developer working for a small marketing firm, but have since worked for a few Fortune 500 companies, lead a couple teams of developers and am currently working as a Cloud Architect. I've contributed to the open source community on projects such as Cordova and Laravel. I've also made numerous packages and helped maintain a few. I've worked with Start Ups and sub-teams of big teams within large divisions of companies. I'm a passionate developer who often fills his weekend with extra freelance projects, and code experiments.
Sunsetting of Application Programming Interfaces (APIs) is something young developers rarely think about or talk about, and for that matter in over 10 years of developing software there have only been a handful of times I have had a conversation about this very topic. This creates a challenge because, as software evolves, so do the tools and interfaces that developers...
Debugging is a crucial skill for any developer. Efficient debugging not only helps to identify and fix issues quickly but also contributes to the overall quality and maintainability of code. Let's delve into some key techniques and best practices.Understanding the BasicsAt its core, debugging involves finding and resolving defects or problems within a program. It's essential to approach debugging systematically...
User interface design, simply referred to as UI design, is a multidimensional aspect of software development that focuses on the creation of effective, enjoyable, and seamless experiences between users and their digital devices. An excellent UI design fosters better user engagement, increases user satisfaction, and leads to a higher conversion rate. It is integral to a wide array of products,...
As software continues to eat the world, reliability has transformed from being an optional attribute to a fundamental expectation for any application. Reliability Engineering is no longer a niche discipline but a cornerstone of developing resilient and dependable systems. Modern day developers especially those at smaller organizations are expected to not only churn out features but also ensure that those...
Technical skills and expertise in coding might be a prerequisite, but they aren't the only aspects that contribute to professional growth in a developer's career. Alongside these hard skills, software developers also need to hone various soft skills to succeed in their careers. These are a few of my observations from the last ten years regarding soft skills that developers...
Stripe has come out as a significant game changer in tech-based financial transactions. It provides developers with tools to create revenue-generating systems using its robust API. Stripe comes with a myriad of features for businesses to utilize, and in this article, we delve into the reasons why it stands out as an exemplary platform for developers.Simplified IntegrationWhether you are developing...
Beyond the more easily spotted functional specifications that dictate what a system or application should do, there are the less conspicuous, yet equally important, non-functional requirements (NFRs). Yet, I would bet many developers who are not part of larger organizations with SAFe practices almost never document NFRs.First, let's cover the basics, non-functional requirements dictate not what a system does, but...
Enterprise software engineering, or ESE, is a field within computer science that's primarily concerned with creating and managing business solutions at scale. It's multi-disciplinary. It brings together knowledge in software engineering, data management, business processes, and information systems into a cohesive whole to construct software for large-scale enterprise systems.So why the emphasis on large-scale systems? The vast volume of transactions...
When discussing modern software development practices, it's hard not to mention Continuous Integration (CI) and Continuous Deployment (CD). A decade ago, there were only a few vocal groups of this practice but today it's a common topic of discussion. They have revolutionized the ways in which developers write, test, and deploy their code, making the entire process more efficient, streamlined,...
Keeping up with the pace of technological innovation is one of the most significant challenges that every software developer faces. The rapid advancement of tools, libraries, languages, and techniques demands a mindset of continuous learning. This concept, which encourages perpetual acquisition and application of knowledge and skills, is becoming increasingly crucial for developers to stay relevant and competitive in this...