Posts

Use of Sidecars to Microservice Communication

 Recently I attended Analysis Design Architcture conference (https://adaconf.org/) where listened to talk namaed "Future Proof Software Architecture: Microservices". Tha reminded me my experience of using sidecars as part of a microservice architecture in one of my previous projects( Australian Bank). So I decided to write down some of the key points and insights that came out of that experience.  Let's start with understanding why we might want to move beyond traditional API gateways. API gateways traditionally handle everything from TLS termination to authentication, authorization, and traffic routing. They're like the Swiss Army knife of API management - doing lots of things in one place. But here's the catch - as our microservices architectures grow more complex, having all these responsibilities in a central gateway becomes a bottleneck. Enter sidecars - think of them as your microservice's personal assistant. Instead of routing all traffic through a cent

my learning

My Takeaways from 'Why We Sleep' book

Image
I recently got a recommendation to read Matthew Walker's "Why We Sleep: Unlocking the Power of Sleep and Dreams" by a colleague, and I borrowed it from the local library and read. It is a great book and it is the very very interesting book I’ve read this year. It’s completely changed the way I think about sleep and shifted it much higher on my priority list. So I couldn't stop talking about it with my friends > few of them asked me to share some things I learned, so I'm writing below points for anyone to refer. I strongly recommend you to read it.     Key Learnings: What About Memory? Sleep isn't just for rest – it's like a superhero for memory. It helps lock in new stuff you've learnt so you don't forget it the next day. What About Learning? Sleep makes you a learning machine. Rather fascinating how your brain soaks up new skills and knowledge like a proper sponge. What's REM Sleep For? Those wild dreams during REM sleep a

Principles and Tactics for Working with Language Models (like ChatGPT)

Image
Recently I went through https://learn.deeplearning.ai/, and below is my notes I optimised using chatGPT API :) Introduction: Language models like ChatGPT have become increasingly powerful and versatile tools for various applications. To maximize their effectiveness, it's crucial to understand and implement certain principles and tactics. In this blog post, we will explore the key strategies for working with language models to achieve better results. We will also discuss their limitations and offer best practices for prompting, as well as explore exciting use cases and applications. Principle 1: Clear and Specific Instructions When interacting with a language model, clarity is paramount. To obtain accurate and relevant results, follow these guidelines: Provide longer prompts: Detailed prompts offer better context and understanding to the model. Use delimiters: Separate different sections of input

Mocking with Spring

Hi folks, Been diving deep into Spring Testing lately, and today I'm sharing my learnings about mocking in Spring. I've noticed many developers struggle with this, so let's break it down in a simple way. What is Mocking? Mocking is our way of creating objects that simulate the behaviour of real objects during testing. Rather brilliant, eh? When testing complex systems, we don't want to call actual databases or external services - that's where mocking comes in handy. A typical Spring test setup with mocking involves two main components: Mockito - the brilliant mocking framework that Spring plays nicely with Spring Test context - Spring's testing support that lets us write integration tests Terminology: What is @Mock? @Mock creates a mock implementation for the interfaces or classes. It's like having a stunt double for you

My learnings from remote work for 2 years

As I reflect on two years of remote work, I had many challenges and turned out it gave me many perks too. Here are the key takeaways that have shaped my perspective: Building Strong Connections: Remote work demands a deliberate effort in making one-on-one relationships. in absence of casual office interactions, I always tries to have casual chats(Slack/MSteams) with my team members Strategic Meeting Approach: We had team members from different time zones, so we had to move some of our meetings to times to suit everyone - like we had our daily standup in 2.30 PM in my local time Clear and Concise Communication: Mastering the art of concise written communication is paramount. “Communicate well, communicate often” - is a saying my CEO repeats a lot which helped me to over communicate. Over-communication becomes a guiding principle in remote work. Providing comprehensive updates, regular check-ins, and seeking clarifications foster collaboration a

Learn more about