Tags
java
What are -Xms and -Xms parameters in Java/JVM (Updated up to Java 13)
In short, Xmx specifies the maximum heap size available to an application Xms specifies the minimum heap size available to an applicationThese are Java Virtual Machine (JVM) paramet...
Sep 02, 2019Spring Boot - Replace Tomcat With Jetty As the Embedded Server
Apache Tomcat and Eclipse Jetty are two of the most popular web servers and Java Servlet containers. Tomcat is more widely used compared to Jetty and has significantly more market sha...
Sep 01, 2019Basics of Java Garbage Collection
Knock, knock. Who’s there? …long GC pause… Java. It’s an old joke from the time when Java was new and slow compared to other languages. Over time, Java became a lot fa...
Aug 06, 2017Should You Unit Test Private Methods?
To unit test private methods or not to test, that’s the question. There are two kinds of software developers in this world: those who never subject private methods to unit testing dir...
Nov 19, 2016Automated Tests Help Developers Sleep Better
In Pragmatic Programmer, Andy and Dave wrote: Most developers hate testing. They tend to test gently, subconsciously knowing where thecode will break and avoiding the weak spots. Pra...
Nov 12, 2016Unit, Integration and End-To-End Tests - Finding the Right Balance
This is something I have regrettably noticed in many backend projects that I have worked on. Developers write “unit tests” that in reality are ‘end-to-end’ tests. They test the entire...
Jul 05, 2016Avoid Singletons to Write Testable Code
Often times there is a need to share a single object of a class throughout the code base. For example, we might want to store all online users in one central registry or share a centr...
May 27, 2016Top new Java features in Java 8 and Beyond
In this post, we’ll look at some of the latest features introduced in Java 10. Let’s go.
May 10, 2016The char Type in Java is Broken?
If I may be so brash, it is my opinion that the char type in Java is dangerous and should be avoided if you are going to use Unicode characters. char is used for representing characte...
May 08, 2016Checked vs Unchecked Exceptions in Java. Why it's so Confusing
This blog post is intended for new Java developers. It starts with a historical perspective and a look at what motivated the design and creation of Java’s exception handling mechanism...
Apr 02, 2016exception-handling
Checked vs Unchecked Exceptions in Java. Why it's so Confusing
This blog post is intended for new Java developers. It starts with a historical perspective and a look at what motivated the design and creation of Java’s exception handling mechanism...
Apr 02, 2016codereviews
Code Reviews During Emergencies
It’s 3:40pm on a fine Friday afternoon. You are about to wrap up the main logic for a feature you’ve been working on for a couple of days when you notice you have unread Slack notific...
Jan 01, 2022Effective Coding Standards
Coding standards are a set of guidelines, best practices, programming styles and conventions that developers adhere to when writing source code for a project. All big software compani...
May 22, 2016What Are Code Reviews and How to Do Them Effectively
What is Code Review?Code review is the process or rather an activity in which code written by a developer is inspected by other developers to look for defects and improvements. In oth...
Apr 03, 2016programming
Code Reviews During Emergencies
It’s 3:40pm on a fine Friday afternoon. You are about to wrap up the main logic for a feature you’ve been working on for a couple of days when you notice you have unread Slack notific...
Jan 01, 2022Blameless Postmortems - Examining Failure Without Blame
Let’s face it: failure is inevitable in complex systems. It cares not for the number of tests you ran, code reviews or your monitoring tools. It just happens. And how is failure usual...
Jun 20, 2016Write Less Code
Not too long ago, I sat down to ‘clean up’ a project that I inherited. I was given the reins of the refactoring efforts because the project has had several bugs in production. It was ...
Jun 03, 2016Effective Coding Standards
Coding standards are a set of guidelines, best practices, programming styles and conventions that developers adhere to when writing source code for a project. All big software compani...
May 22, 2016Software Estimates are not Targets
Software estimation is a hard problem. So much so that in 2012, when Woody Zuill tweeted his blog post with the hashtag #NoEstimates, he set the software development community on fire...
May 14, 2016Minimum Viable Product - Lessons for Software Teams
The concept of the minimum viable product or the MVP was popularized by Eric Reis in his book The Lean Startup. He defines it as: The minimum viable product is that version of a new ...
May 07, 2016Good Abstractions Have Fewer Leaks
Abstraction is one of the greatest visionary tools ever invented by human beings to imagine, decipher, and depict the world. - Jerry SaltzAbstraction are all around us. We abstract ...
May 06, 2016Software Rot, Entropy and the Broken Window Theory
“Complexity is the business we are in and complexity is what limits us.” - Fred Brooks, The Mythical Man-MonthSoftware projects go through many modifications over their lifetime. As...
May 02, 2016Do Experienced Programmers Use Google Frequently?
Software developers, especially those who are new to the field, often ask this question or at least wonder whether they are good developers or just good at googling up solutions.“Do e...
Apr 30, 2016Do Not Let Technical Debt Get Out of Control
Technical debt is a useful metaphor for describing the consequences of adding new functionality to a system in a quick and dirty manner to get something out of the door faster. The pr...
Apr 27, 2016When to Rewrite from Scratch - Autopsy of a Failed Software
It was winter of 2012. I was working as a software developer in a small team at a start-up. We had just released the first version of our software to a real corporate customer. The de...
Apr 21, 2016Is it OK to make mistakes at work?
I have not failed. I have just found 10,000 ways that won’t work. -Thomas EdisonSoftware development is an activity that requires serious brain power. And it’s only natural that sof...
Apr 14, 2016Generating Sessions Ids
Session Id’s are unique, short-lived numbers that servers assign to users when they log in (or visit) so they can remember (or track) users for the duration of their sessions. Servers...
Apr 13, 2016What Are Code Reviews and How to Do Them Effectively
What is Code Review?Code review is the process or rather an activity in which code written by a developer is inspected by other developers to look for defects and improvements. In oth...
Apr 03, 2016peopleware
Developing Sense of Ownership in Employees - Let Your People 'Own' It!
To me, management is: about hiring the right people telling them what needs to get done and why, giving them the tools they need and getting out of their way.
Apr 12, 2016opinion
Testers Make Software Teams Highly Productive
To put it mildly, developers are not great at testing their own products. Bias, pride, wrong assumptions, lack of time, switching contexts, all play a role in making developers ineffe...
Feb 17, 2017Committing Teamicide by Micromanagement
What is micromanagement?Micromanagement is a “management style whereby a manager closely observes or controls the work of subordinates or employees”.Micromanagement is bad. It hurts m...
Feb 08, 2017Behind Monty Hall's Closed Doors - Our Limited Minds
There’s a classic brain-teaser in the field of probability that goes like this: Imagine that you’re on a television game show and the host presents you with three closed doors. Behin...
Jun 26, 2016Blameless Postmortems - Examining Failure Without Blame
Let’s face it: failure is inevitable in complex systems. It cares not for the number of tests you ran, code reviews or your monitoring tools. It just happens. And how is failure usual...
Jun 20, 2016Write Less Code
Not too long ago, I sat down to ‘clean up’ a project that I inherited. I was given the reins of the refactoring efforts because the project has had several bugs in production. It was ...
Jun 03, 2016Software Estimates are not Targets
Software estimation is a hard problem. So much so that in 2012, when Woody Zuill tweeted his blog post with the hashtag #NoEstimates, he set the software development community on fire...
May 14, 2016Minimum Viable Product - Lessons for Software Teams
The concept of the minimum viable product or the MVP was popularized by Eric Reis in his book The Lean Startup. He defines it as: The minimum viable product is that version of a new ...
May 07, 2016Good Abstractions Have Fewer Leaks
Abstraction is one of the greatest visionary tools ever invented by human beings to imagine, decipher, and depict the world. - Jerry SaltzAbstraction are all around us. We abstract ...
May 06, 2016Software Rot, Entropy and the Broken Window Theory
“Complexity is the business we are in and complexity is what limits us.” - Fred Brooks, The Mythical Man-MonthSoftware projects go through many modifications over their lifetime. As...
May 02, 2016Do Experienced Programmers Use Google Frequently?
Software developers, especially those who are new to the field, often ask this question or at least wonder whether they are good developers or just good at googling up solutions.“Do e...
Apr 30, 2016Do Not Let Technical Debt Get Out of Control
Technical debt is a useful metaphor for describing the consequences of adding new functionality to a system in a quick and dirty manner to get something out of the door faster. The pr...
Apr 27, 2016When to Rewrite from Scratch - Autopsy of a Failed Software
It was winter of 2012. I was working as a software developer in a small team at a start-up. We had just released the first version of our software to a real corporate customer. The de...
Apr 21, 2016Is it OK to make mistakes at work?
I have not failed. I have just found 10,000 ways that won’t work. -Thomas EdisonSoftware development is an activity that requires serious brain power. And it’s only natural that sof...
Apr 14, 2016Developing Sense of Ownership in Employees - Let Your People 'Own' It!
To me, management is: about hiring the right people telling them what needs to get done and why, giving them the tools they need and getting out of their way.
Apr 12, 2016management
How To Manage Employees Who Are Going Through a Difficult Period
Managing a team member who’s going through a difficult period is challenging scenario for any manager. It is not as uncommon as one might think. Major life events like death of a fami...
Jan 02, 2022Committing Teamicide by Micromanagement
What is micromanagement?Micromanagement is a “management style whereby a manager closely observes or controls the work of subordinates or employees”.Micromanagement is bad. It hurts m...
Feb 08, 2017Leadership vs Management - Leaders Have a Dream, A Vision...
Today is the Martin Luther King Jr. Day - a holiday to celebrate the life and legacy of a great Civil Rights Movement leader. Dr. King was an incredibly effective leader who challenge...
Jan 16, 2017Developing Sense of Ownership in Employees - Let Your People 'Own' It!
To me, management is: about hiring the right people telling them what needs to get done and why, giving them the tools they need and getting out of their way.
Apr 12, 2016security
If Your Site Isn't Using HTTPS, You Are Doing It Wrong
We live in a day and age where we simply cannot take our right to privacy for granted. When we communicate over unprotected channels, we expose our messages to everyone who happens to...
Jan 18, 2017Generating Sessions Ids
Session Id’s are unique, short-lived numbers that servers assign to users when they log in (or visit) so they can remember (or track) users for the duration of their sessions. Servers...
Apr 13, 2016cryptography
Generating Sessions Ids
Session Id’s are unique, short-lived numbers that servers assign to users when they log in (or visit) so they can remember (or track) users for the duration of their sessions. Servers...
Apr 13, 2016work-mistakes
Is it OK to make mistakes at work?
I have not failed. I have just found 10,000 ways that won’t work. -Thomas EdisonSoftware development is an activity that requires serious brain power. And it’s only natural that sof...
Apr 14, 2016git
Git Tips - Undoing Accidental Commits
Here are couple of git undo’s to get yourself out of trouble. Before you use anything from this post, please make a copy of the your working directory and store it somewhere safe. Git...
Nov 13, 2016Git Stash - Saving Your Changes
Let’s say you are in the middle of implementing a new feature. You’re half way through your changes and the code is in a messy state. You get a message that there’s an urgent issue th...
Apr 18, 2016What's the difference between git fetch vs git pull?
Git has two types of repositories: local and remote. The local repository is on your computer and has all the files, commit history etc. Remote repositories are usually hosted on a ce...
Apr 18, 2016autopsy
Blameless Postmortems - Examining Failure Without Blame
Let’s face it: failure is inevitable in complex systems. It cares not for the number of tests you ran, code reviews or your monitoring tools. It just happens. And how is failure usual...
Jun 20, 2016When to Rewrite from Scratch - Autopsy of a Failed Software
It was winter of 2012. I was working as a software developer in a small team at a start-up. We had just released the first version of our software to a real corporate customer. The de...
Apr 21, 2016popular
== vs === in Javascript and Which Should be Used When
In Javascript, we have couple of options for checking equality: == (Double equals operator): Known as the equality or abstract comparison operator === (Triple equals operator): Know...
Oct 12, 2019YAGNI, Cargo Cult and Overengineering - the Planes Won't Land Just Because You Built a Runway in Your Backyard
It was April. Year was probably was 2010. The cold, snowy winter was finally coming to an end and the spring was almost in the air. I was preparing for my final exams. The review lect...
Aug 19, 2017Basics of Java Garbage Collection
Knock, knock. Who’s there? …long GC pause… Java. It’s an old joke from the time when Java was new and slow compared to other languages. Over time, Java became a lot fa...
Aug 06, 2017Cluster Analysis Using K-means Explained
Clustering or cluster analysis is the process of dividing data into groups (clusters) in such a way that objects in the same cluster are more similar to each other than those in other...
Feb 19, 2017Testers Make Software Teams Highly Productive
To put it mildly, developers are not great at testing their own products. Bias, pride, wrong assumptions, lack of time, switching contexts, all play a role in making developers ineffe...
Feb 17, 2017htop Explained Visually
htop is an interactive process viewer and system monitor. It’s one of my favorite linux tools that I use regularly to monitor system resources. If you take top and put it on steroids,...
Jan 20, 2017Blameless Postmortems - Examining Failure Without Blame
Let’s face it: failure is inevitable in complex systems. It cares not for the number of tests you ran, code reviews or your monitoring tools. It just happens. And how is failure usual...
Jun 20, 2016Remote Software Development - Lessons Learned
Previously, I talked about the ill-fated rewrite of our core product. The ‘second system’, although better and faster than its predecessor, was rejected by the customer. But the story...
Jun 12, 2016Write Less Code
Not too long ago, I sat down to ‘clean up’ a project that I inherited. I was given the reins of the refactoring efforts because the project has had several bugs in production. It was ...
Jun 03, 2016The char Type in Java is Broken?
If I may be so brash, it is my opinion that the char type in Java is dangerous and should be avoided if you are going to use Unicode characters. char is used for representing characte...
May 08, 2016Do Experienced Programmers Use Google Frequently?
Software developers, especially those who are new to the field, often ask this question or at least wonder whether they are good developers or just good at googling up solutions.“Do e...
Apr 30, 2016When to Rewrite from Scratch - Autopsy of a Failed Software
It was winter of 2012. I was working as a software developer in a small team at a start-up. We had just released the first version of our software to a real corporate customer. The de...
Apr 21, 2016http
If Your Site Isn't Using HTTPS, You Are Doing It Wrong
We live in a day and age where we simply cannot take our right to privacy for granted. When we communicate over unprotected channels, we expose our messages to everyone who happens to...
Jan 18, 2017RESTful - What Are Idempotent and Safe Methods and How to Use Them?
One of the challenges when designing a REST API is choosing the right HTTP method (GET, PUT, POST etc.) that corresponds with the operation being performed. Some people incorrectly as...
Jul 04, 2016Idempotent and safe HTTP methods - REST API
If you are designing or building REST APIs, you should be aware of two very important properties of HTTP methods: idempotency and safety. These properties are defined in the HTTP spec...
Jun 30, 2016What is HTTP/2?
There are many reasons to feel excited about HTTP/2. It is the first major update of the HTTP protocol in 16 years! It was long overdue as the web dramatically evolved over the years....
Apr 23, 2016rest
GraphQL - A Practical Overview and Hands-On Tutorial
GraphQL is a Query Language for APIs. It provides a fresh and modern approach to fetching (and manipulating) data from APIs when compared to traditional methods such as REST. Its powe...
Oct 13, 2019If Your Site Isn't Using HTTPS, You Are Doing It Wrong
We live in a day and age where we simply cannot take our right to privacy for granted. When we communicate over unprotected channels, we expose our messages to everyone who happens to...
Jan 18, 2017RESTful - What Are Idempotent and Safe Methods and How to Use Them?
One of the challenges when designing a REST API is choosing the right HTTP method (GET, PUT, POST etc.) that corresponds with the operation being performed. Some people incorrectly as...
Jul 04, 2016Idempotent and safe HTTP methods - REST API
If you are designing or building REST APIs, you should be aware of two very important properties of HTTP methods: idempotency and safety. These properties are defined in the HTTP spec...
Jun 30, 2016What is HTTP/2?
There are many reasons to feel excited about HTTP/2. It is the first major update of the HTTP protocol in 16 years! It was long overdue as the web dramatically evolved over the years....
Apr 23, 2016technical-debt
Burnout in Software Development - Survey Results 2021
Burnout is very common in software development. Intense mental focus, heavy workloads, never ending roadmaps, under-staffed teams, unclear targets, and many other factors lead to deve...
Oct 01, 2021Tech Debt Developer Survey Results 2020 - Impact on Retention
Last month, I wrote a blog post called Technical Debt is Soul-crushing. In it, I discussed the effects of tech debt on software developers and how it makes them unhappy. I wrote it be...
Feb 17, 2020Technical Debt is Soul-crushing
Technical debt is incurred when the software or system designers take shortcuts to ship a feature faster, increasing the overall complexity of the system. The goal is to optimize the ...
Jan 25, 2020Do Not Let Technical Debt Get Out of Control
Technical debt is a useful metaphor for describing the consequences of adding new functionality to a system in a quick and dirty manner to get something out of the door faster. The pr...
Apr 27, 2016featured
The Complete Guide to Feature Flags
The term feature flags refers to a set of techniques that allow software developers and teams to change the behavior of their system in production without modifying or even deploying ...
Feb 27, 2021Tutorial on using Feature Flags in Java [Complete Example]
Feature flags (or feature toggles) is a powerful technique used by modern software teams to manage the behavior of their code in production. Gone are the days when production releases...
Nov 22, 2020Basics of Java Garbage Collection
Knock, knock. Who’s there? …long GC pause… Java. It’s an old joke from the time when Java was new and slow compared to other languages. Over time, Java became a lot fa...
Aug 06, 2017Testers Make Software Teams Highly Productive
To put it mildly, developers are not great at testing their own products. Bias, pride, wrong assumptions, lack of time, switching contexts, all play a role in making developers ineffe...
Feb 17, 2017Write Less Code
Not too long ago, I sat down to ‘clean up’ a project that I inherited. I was given the reins of the refactoring efforts because the project has had several bugs in production. It was ...
Jun 03, 2016Do Experienced Programmers Use Google Frequently?
Software developers, especially those who are new to the field, often ask this question or at least wonder whether they are good developers or just good at googling up solutions.“Do e...
Apr 30, 2016sticky
Do Experienced Programmers Use Google Frequently?
Software developers, especially those who are new to the field, often ask this question or at least wonder whether they are good developers or just good at googling up solutions.“Do e...
Apr 30, 2016startup
Minimum Viable Product - Lessons for Software Teams
The concept of the minimum viable product or the MVP was popularized by Eric Reis in his book The Lean Startup. He defines it as: The minimum viable product is that version of a new ...
May 07, 2016singletons
Avoid Singletons to Write Testable Code
Often times there is a need to share a single object of a class throughout the code base. For example, we might want to store all online users in one central registry or share a centr...
May 27, 2016testing
Testers Make Software Teams Highly Productive
To put it mildly, developers are not great at testing their own products. Bias, pride, wrong assumptions, lack of time, switching contexts, all play a role in making developers ineffe...
Feb 17, 2017Should You Unit Test Private Methods?
To unit test private methods or not to test, that’s the question. There are two kinds of software developers in this world: those who never subject private methods to unit testing dir...
Nov 19, 2016Performance Testing Serverside Applications
Performance testing server-side applications is a crucial process to help understand how the application behaves under load. It helps software teams fine-tune their applications to ge...
Nov 16, 2016Automated Tests Help Developers Sleep Better
In Pragmatic Programmer, Andy and Dave wrote: Most developers hate testing. They tend to test gently, subconsciously knowing where thecode will break and avoiding the weak spots. Pra...
Nov 12, 2016Unit, Integration and End-To-End Tests - Finding the Right Balance
This is something I have regrettably noticed in many backend projects that I have worked on. Developers write “unit tests” that in reality are ‘end-to-end’ tests. They test the entire...
Jul 05, 2016Avoid Singletons to Write Testable Code
Often times there is a need to share a single object of a class throughout the code base. For example, we might want to store all online users in one central registry or share a centr...
May 27, 2016overengineering
Write Less Code
Not too long ago, I sat down to ‘clean up’ a project that I inherited. I was given the reins of the refactoring efforts because the project has had several bugs in production. It was ...
Jun 03, 2016ide
IDEs and Productivity
I used to be neutral on the choice and even the use of an IDE for writing code. In university, I learned and used Vim for assignments. When I started my first job, I switched to a pop...
Jun 10, 2016intellij
IDEs and Productivity
I used to be neutral on the choice and even the use of an IDE for writing code. In university, I learned and used Vim for assignments. When I started my first job, I switched to a pop...
Jun 10, 2016eclipse
IDEs and Productivity
I used to be neutral on the choice and even the use of an IDE for writing code. In university, I learned and used Vim for assignments. When I started my first job, I switched to a pop...
Jun 10, 2016computer-science
The Law of Demeter - Writing Shy Code
In all my years of building server-side applications, I have come to believe that the single most important aspect that determines the long term success of these projects isn’t the sp...
Jun 17, 2016ci-cd
How to use Feature Flags in Node.js
Feature flags (or feature toggles) is a powerful technique used by modern software teams to control the behavior of their code and features in production. Feature flags are used for: ...
Sep 12, 2021How to Toggle Features in C# with Feature Flags
This blog post was contributed by Tuan Nguyen, Software Developer at Getty Images.Using feature flags to release new features to customers is a powerful technique. I have been using...
Aug 26, 2021The Complete Guide to Feature Flags
The term feature flags refers to a set of techniques that allow software developers and teams to change the behavior of their system in production without modifying or even deploying ...
Feb 27, 2021Continuous Delivery - Automating the Release Process
For many software developers, release days are stressful events. There’s always some risk that things might go wrong in the process or that a bug would surface in production. At my pr...
Jun 18, 2016serverless
What is Serverless Architecture? AWS Lambda Features (2020)
Serverless is the new buzzword that is quickly gaining momentum and attention.The concept is to be able to run server-side code without worrying about the messy details of provisionin...
Jun 25, 2016aws
Message Batching to Increase Throughput and Reduce Costs
A while ago, I was working on a backend system on the AWS cloud. Individual services in the system communicated by exchanging asynchronous messages with each other using Amazon SQS. D...
Aug 03, 2017Amazon DynamoDB Auto Scaling
Amazon DynamoDB supports Auto Scaling which is a fantastic feature.When enabled, Auto Scaling adjusts read and write capacities of DynamoDB tables (and global secondary indexes) autom...
Jul 29, 2017What is Serverless Architecture? AWS Lambda Features (2020)
Serverless is the new buzzword that is quickly gaining momentum and attention.The concept is to be able to run server-side code without worrying about the messy details of provisionin...
Jun 25, 2016lambda
What is Serverless Architecture? AWS Lambda Features (2020)
Serverless is the new buzzword that is quickly gaining momentum and attention.The concept is to be able to run server-side code without worrying about the messy details of provisionin...
Jun 25, 2016funny
Behind Monty Hall's Closed Doors - Our Limited Minds
There’s a classic brain-teaser in the field of probability that goes like this: Imagine that you’re on a television game show and the host presents you with three closed doors. Behin...
Jun 26, 2016idempotent
Idempotent and safe HTTP methods - REST API
If you are designing or building REST APIs, you should be aware of two very important properties of HTTP methods: idempotency and safety. These properties are defined in the HTTP spec...
Jun 30, 2016server-engineering
Performance Testing Serverside Applications
Performance testing server-side applications is a crucial process to help understand how the application behaves under load. It helps software teams fine-tune their applications to ge...
Nov 16, 2016photoshop
Tutorial - Configuring Photoshop for 2D Pixel Art
I’m a huge fan of retro video games and pixel art. Over the Christmas break, I tried (after a long hiatus) to create some pixel art for a retro-style 2D mobile game I was building in ...
Dec 11, 2016leadership
Leadership vs Management - Leaders Have a Dream, A Vision...
Today is the Martin Luther King Jr. Day - a holiday to celebrate the life and legacy of a great Civil Rights Movement leader. Dr. King was an incredibly effective leader who challenge...
Jan 16, 2017machine-learning
AI Is Not Magic. How Neural Networks Learn
In my previous blog post, I claimed that “AI is not magic.” In this post, my goal is to discuss how neural networks learn, and show that AI isn’t a crystal ball or magic, just science...
Jul 28, 2017Cluster Analysis Using K-means Explained
Clustering or cluster analysis is the process of dividing data into groups (clusters) in such a way that objects in the same cluster are more similar to each other than those in other...
Feb 19, 2017Review of Andrew Ng's Machine Learning Course and Next Steps
Back when I was in college, I enrolled in a couple of introductory AI courses. I quickly got bored: artificial neural networks didn’t sound very practical and the dry mathematics was ...
Jan 19, 2017ai
Semantic Search - Word Embeddings with OpenAI
According to Wikipedia, Semantic Search denotes search with meaning, as distinguished from lexical search where the search engine looks for literal matches of the query words or varia...
Mar 28, 2023AI Is Not Magic. How Neural Networks Learn
In my previous blog post, I claimed that “AI is not magic.” In this post, my goal is to discuss how neural networks learn, and show that AI isn’t a crystal ball or magic, just science...
Jul 28, 2017Review of Andrew Ng's Machine Learning Course and Next Steps
Back when I was in college, I enrolled in a couple of introductory AI courses. I quickly got bored: artificial neural networks didn’t sound very practical and the dry mathematics was ...
Jan 19, 2017htop
htop Explained Visually
htop is an interactive process viewer and system monitor. It’s one of my favorite linux tools that I use regularly to monitor system resources. If you take top and put it on steroids,...
Jan 20, 2017linux
How Docker Works? Under the Hood Look at How Containers Work on Linux
Docker is awesome. It enables software developers to package, ship and run their applications anywhere without having to worry about setup or dependencies. Combined with Kubernetes, i...
Apr 12, 2019htop Explained Visually
htop is an interactive process viewer and system monitor. It’s one of my favorite linux tools that I use regularly to monitor system resources. If you take top and put it on steroids,...
Jan 20, 2017process-monitor
htop Explained Visually
htop is an interactive process viewer and system monitor. It’s one of my favorite linux tools that I use regularly to monitor system resources. If you take top and put it on steroids,...
Jan 20, 2017yagni
YAGNI, Cargo Cult and Overengineering - the Planes Won't Land Just Because You Built a Runway in Your Backyard
It was April. Year was probably was 2010. The cold, snowy winter was finally coming to an end and the spring was almost in the air. I was preparing for my final exams. The review lect...
Aug 19, 2017What Is Yak Shaving? Advice for Software Developers on Staying Focused
Yak shaving is defined as: what you are doing when you’re doing some stupid, fiddly little task that bears no obvious relationship to what you’re supposed to be working on, but yet a...
Feb 13, 2017kmeans
Cluster Analysis Using K-means Explained
Clustering or cluster analysis is the process of dividing data into groups (clusters) in such a way that objects in the same cluster are more similar to each other than those in other...
Feb 19, 2017neural-networks
AI Is Not Magic. How Neural Networks Learn
In my previous blog post, I claimed that “AI is not magic.” In this post, my goal is to discuss how neural networks learn, and show that AI isn’t a crystal ball or magic, just science...
Jul 28, 2017dynamodb
Amazon DynamoDB Auto Scaling
Amazon DynamoDB supports Auto Scaling which is a fantastic feature.When enabled, Auto Scaling adjusts read and write capacities of DynamoDB tables (and global secondary indexes) autom...
Jul 29, 2017sns
Message Batching to Increase Throughput and Reduce Costs
A while ago, I was working on a backend system on the AWS cloud. Individual services in the system communicated by exchanging asynchronous messages with each other using Amazon SQS. D...
Aug 03, 2017garbage-collection
What are -Xms and -Xms parameters in Java/JVM (Updated up to Java 13)
In short, Xmx specifies the maximum heap size available to an application Xms specifies the minimum heap size available to an applicationThese are Java Virtual Machine (JVM) paramet...
Sep 02, 2019Basics of Java Garbage Collection
Knock, knock. Who’s there? …long GC pause… Java. It’s an old joke from the time when Java was new and slow compared to other languages. Over time, Java became a lot fa...
Aug 06, 2017cache
Brief Overview of Caching and Cache Invalidation
Caches are present everywhere: from the lowest to highest levels: There are hardware caches inside your processor cores (L1, L2, L3), Page/Disk cache that our Operating Systems Cac...
Apr 03, 2022Caching Strategies and How to Choose the Right One
👉 Read First: A Brief Overview of CachingCaching is one of the easiest ways to increase system performance. Databases can be slow (yes even the NoSQL ones) and as you already know, sp...
Aug 11, 2017containers
How Docker Works? Under the Hood Look at How Containers Work on Linux
Docker is awesome. It enables software developers to package, ship and run their applications anywhere without having to worry about setup or dependencies. Combined with Kubernetes, i...
Apr 12, 2019docker
How Docker Works? Under the Hood Look at How Containers Work on Linux
Docker is awesome. It enables software developers to package, ship and run their applications anywhere without having to worry about setup or dependencies. Combined with Kubernetes, i...
Apr 12, 2019networking
How Docker Works? Under the Hood Look at How Containers Work on Linux
Docker is awesome. It enables software developers to package, ship and run their applications anywhere without having to worry about setup or dependencies. Combined with Kubernetes, i...
Apr 12, 2019microservices
How Docker Works? Under the Hood Look at How Containers Work on Linux
Docker is awesome. It enables software developers to package, ship and run their applications anywhere without having to worry about setup or dependencies. Combined with Kubernetes, i...
Apr 12, 2019springboot
Spring Boot - Replace Tomcat With Jetty As the Embedded Server
Apache Tomcat and Eclipse Jetty are two of the most popular web servers and Java Servlet containers. Tomcat is more widely used compared to Jetty and has significantly more market sha...
Sep 01, 2019jetty
Spring Boot - Replace Tomcat With Jetty As the Embedded Server
Apache Tomcat and Eclipse Jetty are two of the most popular web servers and Java Servlet containers. Tomcat is more widely used compared to Jetty and has significantly more market sha...
Sep 01, 2019tomcat
Spring Boot - Replace Tomcat With Jetty As the Embedded Server
Apache Tomcat and Eclipse Jetty are two of the most popular web servers and Java Servlet containers. Tomcat is more widely used compared to Jetty and has significantly more market sha...
Sep 01, 2019javascript
== vs === in Javascript and Which Should be Used When
In Javascript, we have couple of options for checking equality: == (Double equals operator): Known as the equality or abstract comparison operator === (Triple equals operator): Know...
Oct 12, 2019graphql
GraphQL - A Practical Overview and Hands-On Tutorial
GraphQL is a Query Language for APIs. It provides a fresh and modern approach to fetching (and manipulating) data from APIs when compared to traditional methods such as REST. Its powe...
Oct 13, 2019survey
COVID-19 - Remote Work Policy by Companies
In response to Coronavirus outbreak (COVID-19), many companies, including Amazon, Apple, Facebook, Google, Salesforce, and more, have been encouraging those workers who can do so ...
Mar 15, 2020feature-flags
How to use Feature Flags in Node.js
Feature flags (or feature toggles) is a powerful technique used by modern software teams to control the behavior of their code and features in production. Feature flags are used for: ...
Sep 12, 2021How to Toggle Features in C# with Feature Flags
This blog post was contributed by Tuan Nguyen, Software Developer at Getty Images.Using feature flags to release new features to customers is a powerful technique. I have been using...
Aug 26, 2021The Complete Guide to Feature Flags
The term feature flags refers to a set of techniques that allow software developers and teams to change the behavior of their system in production without modifying or even deploying ...
Feb 27, 2021Tutorial on using Feature Flags in Java [Complete Example]
Feature flags (or feature toggles) is a powerful technique used by modern software teams to manage the behavior of their code in production. Gone are the days when production releases...
Nov 22, 2020genai
Semantic Search - Word Embeddings with OpenAI
According to Wikipedia, Semantic Search denotes search with meaning, as distinguished from lexical search where the search engine looks for literal matches of the query words or varia...
Mar 28, 2023agi
Semantic Search - Word Embeddings with OpenAI
According to Wikipedia, Semantic Search denotes search with meaning, as distinguished from lexical search where the search engine looks for literal matches of the query words or varia...
Mar 28, 2023semanticsearch
Semantic Search - Word Embeddings with OpenAI
According to Wikipedia, Semantic Search denotes search with meaning, as distinguished from lexical search where the search engine looks for literal matches of the query words or varia...
Mar 28, 2023