Full-stack product engineer · Rails + React Native

I build production software that has to be right.

For nearly seven years I've built and owned production systems end to end. Right now that's the software behind real-estate showings, used by more than 150,000 US agents.

Gurugram, India Remote React Native (Meta) contributor
01

A fix I'm proud of

react/react-native · pull/57298 Landed

Skip a dropped node in PropsAnimatedNode.updateView instead of crashing · I wrote it, Meta shipped it

An animation could crash the app on Android while a screen was closing. If you navigated away mid-animation, a node could get removed while an update for it was still running. On the next frame the code went looking for that node and threw. My fix checks first and skips the node if it's gone. The same method already did this when the view was missing, and iOS had handled it that way for years.

@@ PropsAnimatedNode.updateView() @@
for (entry in propNodeMapping) {
- val node = requireNotNull(nodesManager.getNodeById(entry.value))
+ val node = nodesManager.getNodeById(entry.value)
+ // node was already removed while closing. nothing to write this frame.
+ if (node == null) continue
// ...apply the animated prop value
}
closes issue #37267 (long-standing Android crash) reviewed & imported by Meta read the commit →
02

What I build now

Current focus · client product

A platform at real-estate scale

At BigBinary I work on a showings and messaging platform for MLS Aligned end to end, Rails and React Native. The rules change constantly and the system still has to be right, so I spend as much time on the workflow as on the code.

  • Used across a US network of listing services
  • More than 150,000 real-estate agents
  • A regulated workflow with real money behind it
Neeto · BigBinary's SaaS suite

Work other teams build on

Neeto is BigBinary's own set of SaaS products. I've shipped features across it in Rails and React Native, and I help maintain its open-source component libraries.

  • Contributor to neeto-ui-rn and neeto-ui
  • Used in more than 20 shipped products
  • Code other teams ship on top of
03

How I work

Learn the business first

The code is rarely the hard part. The hard part is knowing what "correct" means in a workflow you didn't grow up in. So I go learn it, and then I write.

Keep the contracts honest

The backend and the app drift apart the second you stop watching them. I keep the contract between them explicit, so the system survives the next change.

Make AI you can trust

An AI feature that only works in the demo is worse than no feature. The part that decides whether people keep using it is what happens when the model gets it wrong.

Ruby on Rails React Native Ruby JavaScript iOS Android Redux PostgreSQL PostGIS Sidekiq Redis OpenSearch AWS S3 OAuth2 REST APIs
04

Writing