Engineering

VR first!

VR first!

Is VR going to change the way we consume web content? Virtual reality will alter the way we experience and interact with technology. WebVR has the potential to revolutionize the way we use the web. It allows users to experience VR through a web browser. We can say that the future belongs to immersive experiences.And…

Sudoku: A constraint satisfaction problem

Sudoku: A constraint satisfaction problem

You might be familiar with Sudoku. It is a logical puzzle appearing in the puzzles section of most newspapers. The newspaper is the first place where I encountered this puzzle while I was in school and it took me days to solve my first Sudoku puzzle. Later in college, I learned about Constraint Satisfaction Problems (CSP)…

What we will get in React 17?

What we will get in React 17?

As days go by I get more and more excited about what the React core team is coming up with. I thought I would share the update with fellow devs and share this excitement with all of you: React 16 was about new apis and native components (like hooks, error boundaries and fragments). This time…

Storyshots – a powerful side of Storybook to Visual Test React Components

Storyshots – a powerful side of Storybook to Visual Test React Components

At a consumer-oriented business like Shaadi.com, we like to maintain discipline around our React components, the way they look, feel and behave in the real world for our customers. The benefits of writing functional tests with 90–100% code coverage have now become obvious to us. But I felt functional tests were still not answering an…

React and Finite State Machines

React and Finite State Machines

Finite state machines, generally speaking, are a computation model used to describe a system in terms of the transitions between it’s states. They make it possible to is really easy to visualize your computational model as a graph and make sure that your application isn’t left with unhandled cases or illegal states. Warning: Read the wikipedia page on Finite…

Designing with expectations, not implementations

Designing with expectations, not implementations

If you heard about test driven development (TDD) and wanted to get started somewhere then this is for you. This post represents a summary of the experience I got through implementing TDD as part of our development process at Shaadi. 2 Things to ask yourself before going through this test process When should I write…

Journey from Screen to Screen

Journey from Screen to Screen

You might have seen posts on the internet titled “Only 90s kid will understand”. And you might think that that kind of nostalgia might make sense to only 90s kids. I am talking about stuff like Tape-Recorders, VCRs, Pepsi etc. Well this kind of emotional connect that we have to forgotten artifacts stuff isn’t just limited to…

I was not ready to TDD

I was not ready to TDD

It’s been more than 13 years I’ve spent writing software as an engineer. And I had always felt intimidated by the thought of writing tests before I wrote code that made those tests pass. When I joined the React team at shaadi.com, everyone was already writing tests. But nobody was writing tests first. So I…

Network Calls: Kotlin Coroutine + Retrofit 2

Network Calls: Kotlin Coroutine + Retrofit 2

Concurrency, Consistency, Parallel Processing: multiple names all suggesting the same requirement for simple task for computation of different task all at the same time and ensuring the expected output. A Little Background Lets get into the Android Realm, where asynchronous code is at the core of the Android Development. Every network request should be on…

New Architecture and Advanced features – JUnit5

New Architecture and Advanced features – JUnit5

“Quality is never an accident; it is always the result of intelligent effort.” – John Ruskin To make a product better, reduce error, improve code quality and to create ultimate documentation testing is important. Unit testing is the first and most important step which is the continuous process followed along software development process. This blog…