Each week, our authors cover subjects from logging to TDD and BDD. Check out what our authors are covering this week in the posts below.

Preventing SQL Injections in Java (and Other Vulnerabilities)

One of the most common types of attack an application can suffer is what we call SQL injections. Since SQL injection attacks are both common and potentially devastating, it’s essential you not only are aware of them but also know how to defend your applications. That’s what this post is about: helping you protect your Java apps against SQL injections. Find out more from Carlos Schults on Sqreen’s blog. 

Node.js Unit Testing: Get Started Quickly With Examples

Node.js unit testing is important to verify the behavior of the smallest units of code in your application. It helps improve the quality of your code and reduces the amount of time and money you spend on bug fixing. Moreover, unit testing helps you find bugs early on in the development life cycle and increases your confidence in the code. Learn more about Node.js from Michiel Mulders on Testim’s blog.

Measure Quality and Coverage: Using SonarQube With JavaScript

The tech industry is currently more competitive than ever. In order to stay competitive, software organizations had to evolve. They had to adopt tools and techniques that allow them to move fast while keeping quality high. In short, that’s what the DevOps movement is all about: bridging the lines between development and operations, leveraging automation to its fullest extent to deliver software as fast as possible without breaking what’s already working well. Find out more from Michiel Mulders on Testim’s blog.

TDD vs BDD: A Developer’s Pocket Reference With Examples

Today we bring yet another testing-related concept for you. Well, we’re bringing two: TDD (Test Driven Development) and BDD (Behavior Driven Development). These are two widely known software development techniques in which automated tests play a central role. But people are often confused with these two concepts. “TDD vs. BDD?” is a question that gets asked a lot. In today’s post, we’re going to give our contribution to this debate. You’ll understand what TDD is, what its workflow looks like, and you’ll also see a brief example in JavaScript. The same is true for BDD. Check it out in this post from Carlos Schults on Testim’s blog.

NGINX Reverse Proxy Metrics to Monitor

NGINX is one of the most popular web servers nowadays, especially for Linux web servers. According to nginx.com, it powers more than 400 million websites. It is, however, probably even more commonly used as a reverse proxy. Since it acts as a go-between for your application and your users, it’s important to properly monitor NGINX metrics. Learn how to do so from Dawid Ziolkowski on Hayden James’s blog.

Guide to Log Management in a Microservices Architecture

What’s the best way to find the root cause of almost any software issue? Read the logs, of course! But in a microservices architecture, this isn’t as straightforward as you may think. For example, if you have 20 different containers, which one would you check first? How do you quickly find the appropriate logs? How do you avoid wasting your time reading irrelevant logs? Dawid Ziolkowski can answer these questions for you on Loggly’s blog.

Quick Guide to Kubectl Logs and Monitoring Metrics

Kubernetes helps you simplify and automate infrastructure operations, but it’s a pretty complicated tool on its own. It’s a distributed system consisting of many components. To truly understand what’s happening under the hood, you need to gather log messages and metrics from all these components. On top of this, you have the applications running on your Kubernetes cluster, which also produce logs and metrics. You need a well-designed monitoring solution to gather and understand all these different data sources. For basic debugging or quick troubleshooting, however, Kubernetes offers its own built-in “monitoring solution.” With the help of kubectl, you can read logs and see basic metrics. Learn more from Dawid Ziolkowski on Loggly’s blog.