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, 2019

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, 2019

Basics 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, 2017

Should 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, 2016

Automated 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, 2016

Unit, 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, 2016

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, 2016

Top 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, 2016

The 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, 2016

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, 2016

exception-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, 2016

codereviews

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, 2022

Effective 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, 2016

What 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, 2016

programming

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, 2022

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, 2016

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, 2016

Effective 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, 2016

Software 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, 2016

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, 2016

Good 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, 2016

Software 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, 2016

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, 2016

Do 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, 2016

When 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, 2016

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, 2016

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, 2016

What 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, 2016

peopleware

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, 2016

opinion

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, 2017

Committing 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, 2017

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, 2016

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, 2016

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, 2016

Software 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, 2016

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, 2016

Good 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, 2016

Software 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, 2016

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, 2016

Do 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, 2016

When 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, 2016

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, 2016

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, 2016

management

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, 2022

Committing 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, 2017

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, 2017

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, 2016

security

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, 2017

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, 2016

cryptography

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, 2016

work-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, 2016

git

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, 2016

Git 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, 2016

What'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, 2016

autopsy

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, 2016

When 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, 2016

== 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, 2019

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, 2017

Basics 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, 2017

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, 2017

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, 2017

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, 2017

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, 2016

Remote 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, 2016

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, 2016

The 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, 2016

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, 2016

When 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, 2016

http

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, 2017

RESTful - 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, 2016

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, 2016

What 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, 2016

rest

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, 2019

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, 2017

RESTful - 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, 2016

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, 2016

What 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, 2016

technical-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, 2021

Tech 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, 2020

Technical 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, 2020

Do 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, 2016

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, 2021

Tutorial 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, 2020

Basics 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, 2017

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, 2017

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, 2016

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, 2016

sticky

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, 2016

startup

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, 2016

singletons

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, 2016

testing

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, 2017

Should 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, 2016

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, 2016

Automated 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, 2016

Unit, 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, 2016

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, 2016

overengineering

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, 2016

ide

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, 2016

intellij

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, 2016

eclipse

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, 2016

computer-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, 2016

ci-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, 2021

How 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, 2021

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, 2021

Continuous 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, 2016

serverless

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, 2016

aws

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, 2017

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, 2017

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, 2016

lambda

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, 2016

funny

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, 2016

idempotent

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, 2016

server-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, 2016

photoshop

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, 2016

leadership

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, 2017

machine-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, 2017

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, 2017

Review 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, 2017

ai

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

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, 2017

Review 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, 2017

htop

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, 2017

linux

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, 2019

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, 2017

process-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, 2017

yagni

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, 2017

What 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, 2017

kmeans

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, 2017

neural-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, 2017

dynamodb

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, 2017

sns

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, 2017

garbage-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, 2019

Basics 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, 2017

cache

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, 2022

Caching 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, 2017

containers

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, 2019

docker

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, 2019

networking

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, 2019

microservices

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, 2019

springboot

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, 2019

jetty

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, 2019

tomcat

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, 2019

javascript

== 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, 2019

graphql

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, 2019

survey

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, 2020

feature-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, 2021

How 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, 2021

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, 2021

Tutorial 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, 2020

genai

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

agi

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

semanticsearch

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