Blog>>Deep dive

BLOG / Deep dive

Thumbnail of an article about Golang code refactoring: Best practices and a practical use case
SOFTWARE DEVELOPMENT

Golang code refactoring: Best practices and a practical use case

Anyone working as a software engineer has experienced diving into existing code written by another person or team. Despite many articles, courses, and blog posts that emphasize the need to write clean and tested code, the reality never really lives up to the idealistic picture presented to us. Inexperience and deadlines, among many other reasons, can leave code repositories with suboptimal documentation, resulting in a constant need for refactoring and a growing to-do list. In this blog post, I would like to invite you to take a peek at the ongoing development of one such repository my team has inherited.
Thumbnail of an article about Network devices benchmarking methodology — RFC 2544 performance testing
QUALITY ASSURANCE
NETWORKS

Network devices benchmarking methodology — RFC 2544 performance testing

Networking devices are complex and characterizing their performance is not easy. One must not judge performance based only on the number and type of ports. On the other hand, the performance figures that can be found in marketing materials may not be conclusive. Therefore, some while ago, the effort was made to create a unified benchmarking methodology to produce reliable, repeatable and comparable results. In this short article we’ll describe the basic performance metrics of networking devices and the methodology used to measure them.
Thumbnail of an article about Enhancing the user experience with end user experience monitoring (EUEM)
OBSERVABILITY

Enhancing the user experience with end user experience monitoring (EUEM)

In today's digital landscape, where user satisfaction is paramount, organizations strive to deliver seamless and optimized experiences to their end users. End user experience monitoring (EUEM) plays a pivotal role in achieving this goal. Unlike application performance monitoring or network performance monitoring, EUEM focuses specifically on measuring and improving the user experience. In this article, we will explore the concept of EUEM, discuss its advantages, highlight the potential long-term benefits, and delve into the specific metrics, visualization, and tools used in EUEM.
Thumbnail of an article about Projects in Remix: best practices and lessons learned
SOFTWARE DEVELOPMENT

Projects in Remix: best practices and lessons learned

Remix is a popular React framework, often used for its ease and speed of development for web applications. However, just like any technology, it has its shortcomings. They are not visible at first sight - you might come across them only once you’ve started a project using this technology. In this article, an experienced developer shares his mistakes to avoid and best practices to follow while working on web applications in Remix. Remix is a React-based frontend framework curated by React ecosystem veterans.
Thumbnail of an article about Navigating the module maze: history of JavaScript module systems
SOFTWARE DEVELOPMENT

Navigating the module maze: history of JavaScript module systems

JavaScript was designed to handle uncomplicated scripting tasks that we know from everyday life - handling events, updating content, etc. However, nowadays we write huge and complex apps in JS. This distinction between initial design and current usage is a root cause of a lot of frustration in the JS community. Let’s look at one of these causes of frustration and confusion: modules. Modules were one of those topics which I've never felt like I fully grasped. I knew about ESM and CJS, the differences between them, and some history.
Thumbnail of an article about Python Nornir for simplifying network automation: code examples
NETWORKS

Python Nornir for simplifying network automation: code examples

Manual management and configuration can quickly become overwhelming and time-consuming. Whether we talk about deploying configurations, running commands across devices, or collecting and analysing traffic data, there is always a need to automate repetitive tasks, improve network scalability, and enhance overall efficiency. Let’s imagine someone is facing the daunting task of updating login banners on numerous Cisco devices or gathering essential data through a single show command. Many engineers can wonder about the most efficient methods to accomplish these objectives.
Thumbnail of an article about CSS vs. SCSS variables — main differences and use cases
SOFTWARE DEVELOPMENT

CSS vs. SCSS variables — main differences and use cases

This isn't going to be an article about the latest hot new feature. Both CSS and SCSS variables have been around for a long time. SCSS introduced variables in version 2.0 of SASS, released in 2010, and in CSS you’ve been able to use them since CSS3, all the way back in 1999. That being said, these are still powerful tools that can be used to complement each other. Let's talk about the similarities, differences and possible use cases. CSS stands for Cascading Style Sheets. It is a scripting language used to design and style web pages.
Thumbnail of an article about Network Interface Card (NIC) Testing — the optimal environment setup
QUALITY ASSURANCE
NETWORKS

Network Interface Card (NIC) Testing — the optimal environment setup

As we can see in Ethernet Alliance’s 2023 Roadmap, we can now use link speeds up to 400Gb/s. Speeds 800Gb/s and 1.6Tb/s are “in development” and 3.2Tb/s is marked as a “possible future speed” for the 2030s. Compared to 10Mb/s in the 1980s, now we have devices functioning 40,000 times faster! With such acceleration, Jules Verne’s “Around the World in Eighty Days” would be called “Around the World in 2.88 Minutes”. The goal you need to achieve during test environment preparation is that the tested network interface card (also called a NIC, network interface controller, or network adapter) will be a bottleneck in the hardware configuration.
Thumbnail of an article about Bazel build system: build containerized applications faster
SOFTWARE DEVELOPMENT

Bazel build system: build containerized applications faster

For the last nine months, I’ve been working on a large migration of multiple interconnected software projects from the CMake to the Bazel build system. While doing so, I’ve learned about Bazel’s capability for building and publishing container images. Bazel is a multi-language build system with a strong focus on hermeticity, which means that when given the same source code, Bazel will produce the same build artifacts, even on different machines (if properly configured). This property allows you to set up a remote cache for the artifacts that you can share between your developers and continuous integration (CI) system to significantly speed up your workflow.
Thumbnail of an article about  GitOps vs. DevOps — what is the difference?
OPERATIONS
NETWORKS

GitOps vs. DevOps — what is the difference?

The world of software development is constantly evolving, with new approaches and methodologies emerging to improve the efficiency and effectiveness of the development process. Two of the most popular methodologies are GitOps and DevOps. While they share some similarities, there are also some key differences between them. DevOps is a methodology that emphasizes collaboration and communication between development and operations teams. The goal is to streamline the development process, reduce time to market, and ensure high-quality software.
arrow
12...456...1516

Get your project estimate

For businesses that need support in their software or network engineering projects, please fill in the form and we’ll get back to you within one business day.

For businesses that need support in their software or network engineering projects, please fill in the form and we’ll get back to you within one business day.

We guarantee 100% privacy.

Trusted by leaders:

Cisco Systems
Palo Alto Services
Equinix
Jupiter Networks
Nutanix