Code reusability is the holy grail for software development. You might have heard that developers should write code once and reuse it everywhere. Or, never write the same code twice... and a lot of things on similar lines. But have you ever questioned this? Is redundancy such a bad thing after all? Don't you think these statements are subjective? Applied to specific … [Read more...] about Freedom From Redundancy Is A Trade-off
Programming
Why Do Developers Write Code That Slows Them Down
I've been seeing some "not-so-good" everywhere and that made me wonder - Why do developers write code that slows them down later on? When I started asking this question myself, I started getting various reasons for the not-so-good code. I made a note of these reasons. And today I'll elaborate on each one of those. I guess you will relate to these and feel free to share your … [Read more...] about Why Do Developers Write Code That Slows Them Down
Code Review Best Practices For Software Engineers
Before diving into the best code review practices, I always ask this question - Why do we need a Code Review process? Code review process exists to improve the software development lifecycle (SDL). To improve the software and code that we are writing. This is done by adding an extra layer to the development process where your peers will take a look at the code to … [Read more...] about Code Review Best Practices For Software Engineers
Generate Pseudo Random Numbers With Linear Feedback Shift Register (LFSR)
Recently I was thinking about random numbers. The numbers that all software engineers use in day-to-day life. Have you ever wondered what the heck is random? When do we call something random? Let me tell you at the start that the word "random" that we are used to is not random at all. It's pseudorandom. It's pseudo because it behaves randomly enough but it's not actually … [Read more...] about Generate Pseudo Random Numbers With Linear Feedback Shift Register (LFSR)
Jenkins Pipeline Script Should Not Contain Complex Logic
How are you doing it? Do you have one big pipeline script with all sorts of logic that incorporate everything? Or do you have a lean pipeline where a single stage does one and only one thing well? I've seen many different ways in which companies organize their CI/CD pipelines. And it works for them. But there are a few designs that were really simple to understand and … [Read more...] about Jenkins Pipeline Script Should Not Contain Complex Logic
How To Break A Big Pull Request Into Multiple Smaller PRs?
Have you ever got a chance to review a Pull Request that contains the change across 100 different files? If you have not then you are in a wonderful place. But if you have... then this article is for you and your team. Big PR takes a lot of time, concentration and focus to understand what all parts of the code have changed. This is such a turn-off for the reviewers that … [Read more...] about How To Break A Big Pull Request Into Multiple Smaller PRs?
Let’s Do Iterative Merge Sort After A Hectic Day At Office
Lately, my days are passing in a snap. I'm working more than 10 hours a day without break. And not because someone is forcing me to but because the work is so interesting. Almost everything around me is new and I really can't stop absorbing the essence of it all. Today was one such day. I was quite busy from the start. I don't know how long can I keep up this positive … [Read more...] about Let’s Do Iterative Merge Sort After A Hectic Day At Office
Selection Sort Is A Good Way To Get Started With Algorithms
Lately I have been coming across posts and questions on the forums asking how to learn programming quickly. This question is pretty vague but shows an intent that the person is looking for guidance on how to start on a path to becoming a software developer that would probably become a full-time career. And if that is the case then I would recommend you to start with any … [Read more...] about Selection Sort Is A Good Way To Get Started With Algorithms
Trie Data Structure Implementation | (PUT, GET, DELETE)
What would you do if your professor ask you to come up with a solution for a symbol table that is targeted only for string-based keys which are Faster than Hashing and more Flexible than BSTs? Trie Data Structure is the solution that you will be looking for. Trie is a fast search and miss data structure when it comes to storing key-value pairs where key is a string. This … [Read more...] about Trie Data Structure Implementation | (PUT, GET, DELETE)
Basic Calculator Leetcode Problem Using Object-Oriented Programming In Java
This is a medium difficulty problem in Leetcode. This is medium only if you are talking in terms of algorithm and time complexity. But let's say you have to build a calculator for an enterprise. The calculator that will be extensible, maintainable and optimized at the same time. How would you build such a calculator? Well the first thing would still be coming up with the … [Read more...] about Basic Calculator Leetcode Problem Using Object-Oriented Programming In Java