Skip to main content

VirtusLab's ArticlesRSS

Data Engineering|Aug 26, 2021

Pandas-stubs — how we enhanced pandas with type annotations

VirtusLab created the pandas‑stubs library to enhance pandas with type information, enabling stronger type‑safety in pandas‑dependent projects. It emerged from challenges integrating pandas and pyspark, where missing stubs led to API conflicts and unchecked code.

Pandas-stubs — how we enhanced pandas with type annotations cover
Data Engineering|Aug 20, 2021

Table schemas in data pipelines Spark: How to handle large, nested & growing ones

In this post, we describe how we built a pipeline for the type of “incoming data” situation, and how we came up with a good solution in the end.

Table_schemas_in_data_pipelines_Spark_How_to_handle_large,_nested_&_growing_ones_image-min.jpg
Backend Engineering|Jun 14, 2021

Keep your CI/CD infrastructure alive with Jenkins Operator

Jenkins Kubernetes Operator can help you avoid unexpected downtime in CI/CD and opens doors for doing canary or blue/green deployment.

Keep_your_CICD_infrastructure_alive_with_Jenkins_Operator_image-min.jpg
Frontend Engineering|Mar 22, 2021

Multi-Context Content Delivery - An Enterprise headless content delivery

There has come a time in every company when applications have developed to such an extent that a common content management solution is needed. It’s crucial to choose a proper one, which fits current requirements, but also will be ready for future growth.

Multi-Context_Content_Delivery_An_Enterprise_headless_content_delivery_image-min.jpg
Cloud Engineering|Feb 17, 2021

Migrating a gigantic financial system to 20,000 pods in the cloud

Two developers recount their cloud migration of a massive, monolithic financial system—covering everything from Docker image overhaul to multi-cluster Kubernetes scaling—with emphasis on automation, security, and resilience. The article highlights tackling challenges like bulky container images, slow storage, DNS issues, and logging costs while running up to 20,000 pods.

Migrating a gigantic financial system cover
Frontend Engineering|Dec 21, 2020

Creating IntelliJ plugin with WebView

VirtusLab explains how to build an IntelliJ plugin using JCEF WebView to render HTML‑based UIs inside the IDE, providing modern Chromium performance. The example walks through plugin.xml, service classes, custom resource handlers and Gradle setup using Scala.

Creating IntelliJ plugin with WebView cover
Cloud Engineering|Nov 20, 2020

Cloud transformation with adoption of inner sourcing at scale

This blog post covers mostly a summary of the significant amount of time spent with the team to help the company drive its large-scale Azure cloud transformation.

Cloud_transformation_with_adoption_of_inner_sourcing_at_scale_image
Cloud Engineering|Jun 16, 2020

Preventing Fraud and Fighting Account Takeovers with Kafka Streams [reference architecture]

The below article describes the solution architecture we created for risk detection that provides results in real-time and at scale. Together with ksqlDB, features in the Kafka Streams framework help engineers focus on delivering real business value.

data-min
Frontend Engineering|Nov 7, 2019

Private fields, public worries

The author explores JavaScript’s proposed private class fields, focusing on the unconventional # syntax and its implications. He questions whether this new hard-privacy approach complicates the language more than it benefits developers.

Private fields public worries cover
Backend Engineering|Jul 17, 2019

Implementing a server for the Language Server Protocol

In this article, we explain how to implement a Language Server Protocol server to decouple code presentation from language logic, using Metals and Scala. It walks through adding a simple document highlight feature. 

Implementing a server for the Language Server Protocol cover
Backend Engineering|Jan 30, 2019

On the missing package private — or why Java is better than Kotlin in this regard

Kotlin lacks Java’s package-private visibility, exposing everything by default unless explicitly marked, which can bloat APIs and hinder encapsulation. The author praises Java’s manifest-based modular exports for making visibility decisions more conscious and centralized.

On the missing package private cover
Scala|Nov 21, 2018

OOP vs. FP. The pursuit of extensibility part #1

VirtusLab compares object‑oriented and functional programming through the Expression Problem, showing how each paradigm handles extensibility differently. The article highlights how FP easily adds new operations, while OOP easily adds new data forms.

OOP vs FP cover