Platform Engineering

Post Image

DOOH programmatic bidding; Scaling to ~15k requests per second with Java — Part 2

In my previous blog, I discussed the business need for a high-performance bidder, the challenges of implementing such a solution, and the technology stack we used (Java and Vert.x). This blog post builds on the previous one by providing more details on how we diagnosed bottlenecks and made changes to the infrastructure to handle increased traffic.Challenges with increased trafficAfter integrating with the first supplier-side platform (SSP), we quickly began working on integration with the second SSP. We completed the integration, user acceptance...

Read
Post Image

Typescript for better error handling

Photo by Dawid Zawiła on Unsplash There are times when you want to return something other than the normal result of a function call. It’s quite often that we see an exception being thrown in these cases. Exceptions have their place to be used in exceptional situations (like losing network connectivity) but when used in regular code flow, it can cause issues. I experienced this when I was a few years into my career. There was an existing piece of code that would...

Read
Post Image

Using Hashicorp Vault with a Micronaut application in K8s

Managing the secrets of your applications is an integral part of taking an application to production. After all, they contain the keys to your kingdom. Many Java frameworks provide out-of-the-box integration with Vault; in most cases, you do not even need to write any boilerplate code. In this article, I will demonstrate how Micronaut integrates with Vault, what are some of the challenges with this method and how we can overcome these challenges. Micronaut supports integration with vault through this...

Read
Post Image

DOOH programmatic bidding: Scaling to ~15K requests per second with Java — Part 1

We work with Talon Outdoor in the out-of-home advertising (OOH) industry that utilizes billboards, transit stations, shopping centres and other similar places to deliver brand messages to a wide audience in public places. As part of building applications that allow Talon to buy out-of-home media, we built a demand-side platform (DSP) that helps them programmatically purchase digital out-of-home (DOOH) inventory which consists of digital screens placed in public places. A DSP provides a centralized interface for targeting specific audiences and optimizing ad...

Read
Post Image

Test Driven Generation — Use AI as a pair for programming.

Written by Amitb and Vighnesh Pathrikar Test Driven Generation Cycle Have you ever found yourself struggling to refactor your code to adhere to SOLID principles or convert user requirements into code? Did TDD or Test-Driven Development feel slow? Have you ever wished for a tool that could make this process easier and more efficient? Well, look no further! With the latest generative AI solution, ChatGPT, you can now easily refactor your code, convert user requirements into code, and even create tests — all...

Read
Post Image

Building secure systems with PII Data Protection Techniques — Part II

In the previous blog, we discussed the importance of securing PII and sensitive data points captured by enterprises as part of their business apps, analyzed different techniques of securing these data points namely, Encryption and Tokenization, and finally, compared these different techniques. Continuing in this blog series, we will now cover the database-side encryption technique of sensitive data with Spring Boot and Hibernate Technologies. Information on this topic is limited, incomplete and fragmented across different websites, documentation, and blogs. This blog...

Read
Post Image

Building secure systems with PII Data Protection Techniques — Part I

Today, storing a person’s KYC information, credit card/debit card information, or other similar sensitive details to charge for services availed on a platform is commonplace. This entails storing & dealing with Personally Identifiable Information (PII) and sensitive financial information. Hacking of such systems can expose businesses to the following risks: Customer identity theft results in financial losses and damage to an individual’s credit score. Loss of trust and reputation of the enterprise in event of data breach and exposure. Legal...

Read
Post Image

Provision Multi-Region/Multi-Environment Infrastructure with Terraform

Multi-Region/Multi-Environment Deployment Recently I had a challenging problem to solve, where I need to extend a Data Product that serves clients in a single region to clients in another region. Considering different data Laws in different countries I had to provision an entirely new set of infrastructure in the new Region with multiple environments and run the exact same product. Almost all of the blogs and documentation available online gave partial solutions, it either helped in provisioning infrastructure in multiple...

Read
Post Image

All that you need to know about gRPC and Protocol Buffers

Written by Karthik Ruthiravelu Are you building your application with a Microservices architecture? Are there too many microservices in your application and wondering how to make the network calls faster between your inter-service calls? Well, then gRPC is what you are looking for. Let’s see what is gRPC and why gRPC would be the solution for faster inter-service communication and also let's see what are the pros and cons of using gRPC in your next distributed system. gRPC is a...

Read
Post Image

Vuetified .Net MVC

Photo by Clément Hélardot on Unsplash This is a follow up to progressively improving .net MVC with Vuejs to show how it can be done. The screen shot below shows how we can use a mix of razor templates and vuejs in the same page. Above you can see two divs where 2 numbers are being added. One part is being rendered simply in the Razor template where as the other involves passing the 2 values to vuejs which adds them by using an async...

Read