Welcome to Pankaj Rawat's Tech Blog 👋

I'm a Software Developer who occasionally writes about various tech topics, including .NET, Azure, IoT, AWS and GenAI. My blog covers my recent learnings and experiences.

Extract text from images using Amazon Bedrock & .NET

In today's digital age, vast amounts of information are exchanged in various formats, including images. However, the text embedded within images is often inaccessible for search engines, text analysis tools, and other digital applications. This limitation has given rise to the need for extracting text from images, a process that involves identifying and recognizing the textual content present within an image file.

Read more...

Building Serverless Conversational Gen AI Application using Amazon Q Business

Amazon Q Business is a conversational assistant powered by generative artificial intelligence (AI) that enhances workforce productivity by answering questions on your data. Amazon Q Business also helps streamline tasks and accelerate problem solving. You can use Amazon Q Business to create and share task automation applications, or perform routine actions like submitting time-off requests and sending meeting invites.

Read more...

Handling Partial Batch Failure When Processing SQS Messages with a Lambda Function

Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications. One common use case for SQS is to process messages from a queue as a batch using a Lambda function. However, in some cases, you may encounter partial batch failure, where some messages in the batch are processed successfully, while others fail. In this case, you need to handle the partial batch failure to ensure that the messages that failed to process are retried, while the messages that succeeded are not processed again.

Read more...

Create custom project template in Visual Studio

You can create your own custom templates for any type of project, such as an Web, API, Console, or class library.

Read more...

Amazon SNS payload-based message filtering

By default, an Amazon SNS topic subscriber receives every message that's published to the topic. To receive only a subset of the messages, a subscriber must assign a filter policy to the topic subscription.

Read more...

How to Deserialize DynamoDb stream JSON to Object in .NET Lambda?

Whenever an application creates, updates, or deletes items in the table, DynamoDB Streams writes a stream record with the primary key attributes of the items that were modified. You can configure the stream so that the stream records capture additional information, such as the "before" and "after" images of modified items.

Read more...

Run .NET Lambda Function Locally Using LocalStack

AWS Toolkit for Visual Studio makes it easier for developers to develop and debug Lambda functions locally but for actual Lambda integration test, we need to deploy Lambda function in AWS account.

Read more...

Amazon SQS local development using LocalStack

Amazon SQS is a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices. Amazon SQS moves data between distributed application components and helps you decouple these components. That means to test your application you will need to connect to the Amazon SQS service each time. For development and testing purposes, you’ll likely want to test locally.

Read more...

Amazon S3 local development using LocalStack

It's always a good practice, before moving your code into cloud, do integration test from local dev environment. Let's say if you don't have AWS account access from your development machine Or you don't want to create resources in AWS account just for integration testing purpose in that situation LocalStack is best choice.

Read more...

Reducing complexity and enhance readability of C# unit tests using AutoFixture

Unit tests allows developers to verify their code to make sure that the code works as expected and to identify and fix bugs at early stage. The goal of unit test is to isolate each part of the program and test them individually. When we write Unit Tests for individual code, we mock all external dependencies. The purpose of mocking is to isolate the code being tested without affecting the behavior or state of external dependencies.

Read more...