Designing AI-Assisted Pricing Systems at Scale
This post explores architecture decisions for replacing spreadsheet-heavy pricing workflows with an AI-assisted system, including approval loops, safety constraints, and observability.
This post explores architecture decisions for replacing spreadsheet-heavy pricing workflows with an AI-assisted system, including approval loops, safety constraints, and observability.
A practical guide to diagnosing bottlenecks, selecting reliable SLO-aligned optimizations, and tracking long-term improvements across APIs and CI pipelines.
This post outlines prompt and retrieval strategies, evaluation loops, and safety checks that improved enterprise chatbot answer quality from baseline to production-ready levels.

New Beginnings It would have been great if there was a way using which we can actually tell how a person thinks. I am not talking about “what a person thinks” but “how a person thinks”. If this was possible I will try the method on myself. I will probably write a blog about how I think some time later. This blog is totally dedicated new beginnings. I recently won 300 rs gift card after winning a competetion in Amazon (dont judge). I had the oppurtunity of using that so I used it to buy a book, “Approaching (almost) any ML problem”. Now I haven’t read that book yet but it got me thinking that how much I have changed. Aditya from 2 years back would have spend the amount on some absurd gadget. I have started spending money on things which will be useful to me or which can add value to my life in the long run. I am very proud of this change. ...

Differences, Clinical psychology and Happiness The main questions are: How we are different from other people? Why we are different from other people? The main difference in 2 persons are: Personality To measure the personality we use reliability and validity. Harrower-Erickson Multiple Choice Rorschach Test is a test which was used earlier to test personality, although there is no way to test its validity. Inkblot test: Harrower-Erickson Multiple Choice Rorschach Test ...

Emotions and Social Doctorine of Physicalism It states that everything is physical. It is closely related to materialism. Where do complex things come from? Suppose you are walking on a path and your foot gets hurt by a stone, then you might ask the question as to how the stone got there. Then you might get the answer that the stone could have been there since eternity. But suppose you would have found a watch, then the answer would not have been the same as watch is very complex than all other things there. Similarly, we can say the same thing about human organs. This is known as argument from design. ...

Perception, Attention and Memory Perception Our brain percieves things very fast, lot faster then a computer. It all begins with eye, but even then there are too many question. It is believed that brain understands things by these three ways: Perception of brightness Our brain automatically brightens an object in light and darken an object in light. This can create an illusion in some cases. Adelson’s Same Color Illusion - BrainHQ from Posit Science ...

Development Big questions about development Do we start as moral or immoral? Whats the relation between child and adult? How are they related in terms of continuity? How much knowledge are we born with? There are two group of thoughts around this: Empiricism: They believe that we are born empty and we learn along the way Nativism: We are born with existing structure in brain Constructivism: It is a hybrid of above two ...

Skinner theory Why do have unconscious part? Deception: Animals have been at the forefront when it comes to decieving other living beings. When in danger, chimpanzee hairs stands so that it can look bigger. Same happens in humans as well, we try to decieve others into beliveing that we are tougher, smarter, etc. We have developed a lie detection mechanism as well to counter the decieving part. We are better liar if we believe that the lie is true. The best lie is the lie which we tell to ourselves. The sinister or bad decision is better when taken with the help of unconscious part. Skinner theory Skinner worked on behaviourism. Although behaviourism was already there but he bought it to the masses. Some of the key points of behaviourism are: ...

Freud theory There are theories which are specific to some domains of psychology, but theories of Freud and Skinner spans accross many different domains of psychology. Freud theory has a very big scope. Freud is consisdered to be a very hyper personality. He was a cocaine addict. He gave lot of theories, some of which are not rationale. One of his theory is Penis envy which seems false but also true. Its so vague that you can’t prove it false and also cant prove it to be true. If we dont dive into these irrational theories and focus on other interesting rational theories he proposed then he was quite an extraordinary personality. ...

Introduction to psychology Below material was captured as notes, while I was studying Introduction to psychology out of curiosity, a course made available by Yale. Brain Astonishing hypothesis It was given by Francis Crick, who was one of the discoverer of molecular structure of DNA. He said that a person’s mental activities are entirely due to the behaviour of nerve cells, glial cells, and the atoms, ions, and molecules that make them up and influence them. ...

Kotlin Kotlin is a statically typed programming language Officially supported language by Google for android Core features of Kotlin: Concise: Reduces the amount of boilerplate code Safe: Avoid NullPointerException Interoperable: Use existing libraries of Java, Android, etc Tool friendly: Use any existing IDE Hello world! fun main() { println("Hello world!") } Variables ... val a = "Hello" //type inference val a: Double = 23.44 ... val vs var val is value and var is variable val is nothing but a final value(like Java) which can not be reassigned. var can be reassigned. Can not change the type of a var. It is bounded by its defined type. We can use lateinit to initialise var later. ... lateinit var a: String; ... a = "Aditya" ... We can not set a null value to a var. We need to use ? operator. This is due to strong null safety check which comes attached with Kotlin. ... var a: String? = null; ... To get a NPE for a var in Kotlin, we need to use !! operator. It makes sure that we receive NPE if it occurs. ... var a: String? = null ... val size: Int = a?.length!! //throws NPE We have and elvis operator in Kotlin which is similar to conditional operator. (?:) ... var a: String? = null ... val size: Int = a?.length ?: 0 //returns 0 if a.length is null If we need to concatenate a string to another, there is a smart way to do it in kotlin ... var a: String = "Aditya" println(a + "Singh") //prints Aditya Singh println("$a Singh") //prints Aditya Singh ... Arrays We can define array in following ways: val a = arrayOf(1,2,3,4,"Aditya") /* arrayOf() uses vararg underneath which tells that we can have n arguements inside a function. */ val a = arrayOf<Int>(1,2,3,4) /* This will bind our array with Int type. We cant add any other variable of any other type inside it. */ val num = Array(5, {i -> i*1}) //0 1 2 3 4 /* Using Array constructor */ println(a[3]) println(a.get(3)) Collections By default in kotlin list is immutable ... val myList = listOf<String>("Hello","World","Aditya") ... myList.add("India") //cant do that as there is no function add() If we want to add items we need to explicitly define it as mutable. We can use arrayListOf() also in place of mutableListOf(). ... val myList = mutableListOf<String>("Hello","World") ... myList.add("Aditya") Maps are immutable. ... val myMap = mapOf<Int,String>(1 to "Aditya", 2 to "Singh") ... println(myMap[1]) //this will print "Aditya" val myMap = mapOf(1 to "Aditya", "surname" to "Singh") //to use different keys If we want mutable map, we use hash map. ... val myMap = hashMapOf(1 to "Aditya", "surname" to "Singh") ... myMap.set("country", "India") //add a new key value pair myMap["country"] = "India" //we can do something like this as well Loops Foreach loops works with list, array, map. It iterates over the entire set of items and give the output. val myList = listOf<String>("Hello","World","Aditya") myList.forEach(it -> println(it)) //prints all items for loop for (name in listOfNames) { println(name) //print every item in list } for ( x in 0..10) { println(x) //prints all value from 0 to 10 inclusive } for ( x in 0 until 10) { println(x) //prints all value from 0 to 10, excludes 10 } for ( x in 0 until 10 step 3) { println(x) //prints 0 3 6 9 } for ( x in 10 downTo 0 step 3) { println(x) //prints 10 7 4 1 } Keywords in is check inclusiveness When It is similar to switch statement of C++. We dont iterate over all the condition like we do in if-else. ... var a:String = "Aditya" when(a) { "Aditya" -> { println("Aditya") //will print this } "Singh" -> { println("Singh") } else { println("Other") } } ... When can return a value as well. Functions The structure of functions is very similar to C++ or Java. fun functionName(variable: Int): String { return "$variable was passed" } Types of arguements: ...

The most basic in human psychology is “Why do we talk?”. I have always been a shy kid in front of people I don’t know. I have seen my friends talking for hours with their friends, some with their girlfriends. Then I joined Amazon, still struggling to have an informal talk. To undestand why this is happing to me I started looking around and came across this wonderful theory of Transactional analysis by Eric Berne. ...

Is there a scale or value which dictates that its time to give up! I saw this tag of FFT while solving a problem. FFT is fast fourier transform, which helps to multiply polynomial in O(nlogn) time complexity (one of its use case). I read about it in detail and then picked up another problem to implement FFT which would give confidence to solve these kind of problem in future. Its been 2 days and I am still not able to solve the problem. I realised maybe its time to give up on this problem and look for its solution, but on the other hand it feels that I am very close to solving it. I am not able to decide whether to give up or keep pushing myself. Is there an algorithm to know or a parameter to judge, so that we know that its time to give up! ...