Category Archives: Software Engg

AI-assisted Software Development: Tools & Processes

AI assisted software development

In the rapidly evolving landscape of software development, the integration of artificial intelligence (AI) and generative AI (Gen AI) is not just a luxury but a cornerstone for enhancing software development velocity. This blog delves into the key aspects of Gen AI and AI-assisted software development, presenting actionable takeaways for software leaders, including engineering managers, project managers, product managers, and software engineers. We will look into different tools and related processes that can be enhanced across the entire software development lifecycle. Design & Architect: Crafting the Blueprint Integrate the following tools to speed up the design process while ensuring adherence to best practices, significantly reducing design iteration times. Code & …

Continue reading

Posted in AI, Generative AI, Software Engg, Software Quality. Tagged with , .

Andrew Ng & OpenAI ChatGPT Prompt Engineering Course

openai andrew ng chatgpt prompt engineering for developers

Renowned artificial intelligence (AI) experts, Andrew Ng from DeepLearning.ai and Isa Fulford from OpenAI, have teamed up to offer an exciting new course on prompt engineering, titled “ChatGPT Prompt Engineering for Developers“. The course, which is completely free, aims to help developers better understand the prompts design and implementation for various use cases. The ChatGPT Prompt Engineering course is specifically tailored for developers including data scientists who wish to learn more about designing prompts for different tasks including software development (coding), marketing, creating product reviews & description, writing essay, summarizing text etc. It includes several important topics such as summarizing, inferring, transforming, expanding and chatbot building. These skills are essential …

Continue reading

Posted in AI, Generative AI, Software Engg. Tagged with , .

Top 10 Basic Computer Science Topics to Learn

computer architecture - basic computer topics to learn

Computer science is an expansive field with a variety of areas that are worth exploring. Whether you’re just starting out or already have some experience in computer science, there are certain topics that every aspiring software engineer should understand. This blog post will cover the basic computer science topics that are essential for any software engineer or software programmer to know. Computer Architecture Computer architecture is a course of study that explores the fundamental elements of computer building and design. It’s an important field of study for software engineers to understand, since it provides basic principles and concepts related to hardware and software interactions. Computer architecture courses typically cover a …

Continue reading

Posted in Data Science, Software Engg.

Machine Learning Programming Languages List

machine learning programming languages

If you’re interested in pursuing a career in machine learning, you’ll need to have a firm grasp of at least one programming language. But with so many languages to choose from, which one should you learn? Here are three of the most popular machine learning programming languages, along with a brief overview of each. Python Python is a programming language with many features that make it well suited for machine learning. It has a large and active community of developers who have contributed a wide variety of libraries and tools. Python’s syntax is relatively simple and easy to learn, making it a good choice for people who are new to …

Continue reading

Posted in Machine Learning, Programming, Python, R. Tagged with , .

Code Quality Interview Questions for Software Developers

software code quality interview questions

Code quality concepts must be understood well by software developers to write a good quality code. Also, technical lead and technical architects must understand the code quality (or coding) concepts very well in order to review the code (termed as code review) and ensure that good quality software is delivered to the customer. Pictorially, the following represents some of the experiences that software developers, tech leads or technical architects go through while developing software or reviewing software code quality. Enjoy the pictures :).   Often code quality review of poorly written code results in lot of frustrations among project stakeholders. Thus, it is of utmost important to understand different nuances of writing …

Continue reading

Posted in Interview questions, Software Engg, Software Quality. Tagged with , .

Supplier Relationship Management & Machine Learning / AI

supplier relationship management machine learning

Supplier relationship management (SRM) is the process of managing supplier relationships to develop and maintain a strategic procurement partnership. SRM includes focus areas such as supplier selection, procurement strategy development, procurement negotiation, and performance measurement and improvement. SRM has been around for over 20 years but we are now seeing new technologies such as machine learning come into play. What exactly does advanced analytics such as artificial intelligence (AI) / machine learning (ML) have to do with SRM? And how will AI/ML technologies transform procurement? What are some real-world machine learning use cases related to supplier relationships management? What are a few SRM KPIs/metrics which can be tracked by leveraging …

Continue reading

Posted in Artificial Intelligence, Data Science, Machine Learning, Procurement. Tagged with , , .

Measure Code Quality using Cyclomatic Complexity

The article talks about how McCabe’s cyclomatic complexity could be used to measure several different aspects of code quality. The objective of this article is to help developers quickly assess code quality by looking at the code. However, let’s try and quickly understand what is cyclomatic complexity and how could it be measured? Thanks for reading it further. And, apologies for spelling mistakes. What is Cyclomatic Complexity? Cyclomatic complexity is a measure of code quality that takes into account the number of independent paths through a piece of code. A high cyclomatic complexity indicates that a piece of code is more difficult to understand and maintain, and is, therefore, more …

Continue reading

Posted in Software Quality. Tagged with .

Checklist for Effective Code Review

code review checklist

Are you involved in day-to-day code reviews? Would you like to suggest to your team members a checklist that can be used for code reviews? In this blog post, you will learn about key areas to focus on when doing code reviews. Following is a checklist that one could use while doing code review: Functional Suitability: Understand the requirement/use case/user story and ask whether the code you are reviewing meets the requirement or not. This includes the alternate and exception use case flows to be considered for review. Functional suitability is one aspect of code quality that refers to how well the code meets the needs of the user. In …

Continue reading

Posted in Code Review, Software Quality. Tagged with .

GitFlow Workflow Best Practices & Quiz Questions

Gitflow Workflow - Master, Release, Develop, Feature

In this post, you will learn about some of the best practices in relation to managing your development and production releases using GitFlow Workflow. There will be a master branch which is called as an official repository. Forking a develop branch of the master: To start with, we will fork off another branch of the master which we may call as “develop”. This branch will act as an integration branch for features branches. NOTE: feature in features branches does not represent the features in machine learning. “Develop” branch will act as a parent to the feature branches. This means that developers would fork from “develop” branch and their changes are merged back into “develop” branch. In real-world scenarios, …

Continue reading

Posted in Build Automation, Interview questions, Software Engg. Tagged with , .

Get Started with ElasticSearch and Kibana on Windows

kibana dashboard - Kibana setup

ElasticSearch is a distributed, restful analytics search engine which is used to provide faster search through your data than the traditional databases including RDBMS and NoSQL databases. It works by regularly creating data indices from the data stored in traditional databases and use Lucene library to search through the data. Kibana is the visualization client used to explore, visualize and discover the data. In this post, you would learn about some of the following: Setup ElasticSearch and Kibana on Windows Load Sample Data and play around Setup ElasticSearch and Kibana on Windows Setup ElasticSearch on Windows: Go to the elasticsearch installation page and download the file elasticsearch-6.2.2.zip. Follow the instructions on the page …

Continue reading

Posted in ElasticSearch, Search, Software Engg. Tagged with , , .

Single Responsibility Principle with Java Code Example

single responsibility principle with Java example

Single Responsibility Principle (SRP) is one of the most important object-oriented coding principle which, if followed religiously, can help you write a very good quality code. Here is what SRP states: A block code representing class or method should have just one reason to change In other words, Single Responsibility Principle can be stated as the following: A block of code representing class or a method should do just one thing and do it very well In yet another words, SRP can also be stated as the following: A block of code representing class or method should have just one responsibility or serve just one functionality Pictorially, decide for yourself …

Continue reading

Posted in Maintainability, Reusability, Software Engg, Software Quality. Tagged with , .

Unit Testing Interview Questions – Set 1

interview questions, practice tests on unit testing

This page lists down the practice tests / interview questions and answers for unit testing (general concepts) which applies for all programming languages. Those wanting to test their unit testing knowledge would find this test useful enough. The goal for this practice test is to help you do quick check of your knowledge in unit testing and prepare appropriately. More importantly, when you are preparing for interviews, these practice tests are intended to be handy enough. Those going for freshers / intern interviews in the area of programming language or for developer positions would also find these practice tests / interview questions to be very helpful. Following topics have been covered as part of …

Continue reading

Posted in Interview questions, Unit Testing. Tagged with , .

Software Build & Release Versioning Strategy

The blog represents the software build and release versioning strategy which can be used to tag web or mobile releases with different version numbering schemes as illustrated later. The strategy can as well be used for software versioning. Build/Release Version Numbering Scheme – <major>.<minor>.<patch>.<buildnumber> A release version can be of type <major>.<minor>.<patch>.<buildnumber>. Following is what each of these keywords such as major, minor, patch and buildnumber represents: major: Indicates a significant change in the application which may essentially mean one of the following: The app is re-written The app has changed significantly so much so that backward compatibility with older versions gets broken. Large set of new features At times, …

Continue reading

Posted in DevOps, Operability, Software Engg. Tagged with .

Solution to Permission Denied (Public Key) for Git Clone

Following error occurs while you are trying to clone a git project. I tried cloning a Github demo project in relation with ReactJS and NodeJS using command such as git clone git@github.com:DavidWells/isomorphic-react-example.git. In this blog, we will look into the solution of this github permission denied (public key) issue related with cloning a project using git clone command. Solution to Permission Denied (Public Key) Error Generated a new SSH Key The details can be found on this page, Generating a new SSH key and additing it to the ssh-agent Add the public key to your Github account As shown in the screenshot below, you would be required to add the …

Continue reading

Posted in Operability, Software Engg.

Mocha Unit Tests with Hello World

This blog helps you get started with Mocha and also present steps and sample tests which can be used to get started. Setup Mocha using NPM For installing Mocha globally such that it can be from anywhere, execute following command: For installing with npm, you may be required to install Nodejs. npm is distributed with NodeJS which implies that downloading and installing NodeJS automatically installs npm on your computer. One can get appropriate version of NodeJS from following page, Download NodeJS. Details on npm can be found on this page, NPM. Execute mocha command to make sure it is installed appropriately. Following is the screenshot of output as a result …

Continue reading

Posted in Javascript, Maintainability, Software Quality, Unit Testing. Tagged with .

Top 5 Performance So-called Concerns of Meteor JS

Many working with Meteor JS wonders about performance concerns associated with Meteor JS. This blog points some of those concerns and represents my opinion on why they are invalid concerns. Database as a Bottleneck Inability to handle heavy read-write loads, especially, write load/performance; However, with latest releases of MongoDB, MongoDB is good enough to easily handle very large data requirements of read/write. Following are related details: MongoDB supports different techniques to scale out appropriately based on the read-write requirements. They are as following: Secondary reads (reads from slaves, writes from primary/master). Sharding techniques MongoDB (3.0+) has come up with new storage engine, WiredTiger, which supports document-level concurrency control for write …

Continue reading

Posted in Javascript, Mobility, Performance Engineering, Web. Tagged with , .