What we talked about
Sayan Bhattacharya is Head of Engineering at LINK and the creator of LinkToAny.com, a platform that helps businesses migrate from legacy systems to the cloud and connect their critical tools. With a decade of experience building full-stack systems across retail, supply chain, and marketplace platforms, Sayan specializes in solving the complex challenges of data migration and system integration.
Show notes
Sayan Bhattacharya has migrated over 3 billion events across retail, restaurant, and accounting systems, and the hardest part is never the technical transfer, it’s the review process that happens after. His platform LinkToAny sits at the intersection of legacy and modern systems, and he’s using AI to compress weeks of human reconciliation work down to days through a conversational agent that asks the questions a skilled analyst would.
What we covered
- LinkToAny’s core job is moving data between systems that were never designed to talk to each other: point of sale, e-commerce, accounting, CRM, loyalty, and inventory. A typical retail merchant runs five different systems, each with its own data format and validation rules, creating fragmentation that forces staff to manually reconcile records and feed data across platforms every day.
- Large-scale data migrations at LINK don’t happen in a single cutover. For a merchant running 80 stores, the team does an initial migration, gives the customer time to review and validate, then runs an incremental sync on the day before go-live to capture everything that changed in between. The process can take three to four months for large datasets.
- AI has cut that activation time from weeks to days. A file agent reads export files and intelligently identifies product structures, for example, recognizing that “Nike Red Shirt L” has a parent product, a color variant, and a size variant, without anyone mapping it manually. A chat interface then asks targeted questions, such as whether to transform a state name spelled out in full to its two-letter postal code, so humans only weigh in on the ambiguous cases.
- On distributed team management, Sayan runs a globally distributed engineering team with the CTO in Auckland, the CEO in California, support in Toronto, and engineers in India and Europe. Their solution was to eliminate most meetings, break into small pods with individual standups, and front-load every feature with a detailed planning session where the engineer writes out API contracts before a single line of code is written.
- For hiring, Sayan looks for ownership as the primary signal over technical skill alone. Out of thousands of candidates interviewed over his career, he estimates only around 5-10% made the cut, and among those hires he still found some where ownership was lacking three or four months in. His current interview process includes EQ questions to understand how a candidate responds under pressure.
- His advice on using AI in engineering teams: standardize on one tool across the whole team to maintain a single memory graph and consistent workflow, define explicit rules for what the agent can and cannot do (such as a 300-line file limit), and never allow the agent to read files containing secrets like AWS credentials, regardless of enterprise data-handling assurances.
About Sayan
Sayan Bhattacharya is Head of Engineering at LINK and the builder behind LinkToAny.com, a data integration and migration platform serving retail, restaurant, and accounting sectors. He has spent a decade building full-stack systems across retail, supply chain, and marketplace platforms and leads a small globally distributed engineering team focused on leverage over headcount.
- LinkedIn: https://www.linkedin.com/in/tinnker14
Episode 144 of the PreVetted Podcast.
Full transcript
Federico Ramallo (00:00) Welcome back to the PreVetted podcast where we spotlight extraordinary people and remarkable talent reshaping our world. Today I am joined by Sayan Bachacharya, Head of Engineering at Link and the builder behind LinkAny.com Sayan is on a mission to become
Sayan Bhattacharya (00:14) Yeah.
Federico Ramallo (00:22) the connective tissue of modern business operation helping companies migrate off legacy systems, move to the cloud and make their critical tools like commerce, accounting, CRMs and inventory actually talk to each other. He has spent a decade building full stack system across retail supply chain and marketplace platforms and now leads a small global distributed team with an outsize focus on leverage over headcount.
So, Sayan, welcome to the show.
Sayan Bhattacharya (00:53) Thank you, Federico. Thank you for having me on the podcast. Really excited to be here.
Federico Ramallo (00:59) I’m excited to have you here as well. So for people meeting you for the first time, can you tell us a little bit more about what you’re doing, what you’re building?
Sayan Bhattacharya (01:10) Right, right, definitely.
So if I have to explain what I do exactly, you can imagine that I live at the intersection between future and legacy systems. So that’s where the platform that I’m currently building is actually residing on. And that effectively means that we are the whole and sole engine that moves data between these systems, be it for any migration use case, where we basically say that you’re trying to digitize your entire business, say wanting to move to a new system, or maybe you want
to integrate to a bunch of new systems, right? Because if you think of any business that we cater to, like a typical retail business or something, right? I mean, you can imagine that they are just not using one system. I mean, they have a point of sale system at the store. They are using e-commerce for their online store, right? They are using a different loyalty app. They are using a different accounting system, a different CRM. So link to any basically, or like the platform that I build right now is basically
connecting these platforms and ensuring that even these systems that were not designed to talk to each other is actually talking to each other in the most efficient and scalable way. So that’s what I do currently. And prior to this, I’ve also worked on operational research and optimization research applications for enterprises that involved.
applications like route optimization, then you can imagine workforce assignment and multiple other problems where basically it used to have an integration aspect as well, where basically you connect to the enterprise data source and you actually get the data and run some optimization models on top of it using some.
like Gurobi, OR tools or something like that, right? And then you give them a deterministic approach of how they should go about solving a problem. So yeah, so like that’s what I’ve been doing. I’ve been doing a lot of this stuff. You can imagine like dealing with legacy systems, API, SOAP, and since AI came in, so I’m working a lot of…
Federico Ramallo (02:49) Right.
Sayan Bhattacharya (03:04) I’m working on a lot of new things with AI. So yeah, I mean adding AI to our product as well, researching on new stuff. yeah, quite interesting I would say as of now at this juncture with everything that’s going on in the world right now. So yeah, I hope that answers your question.
Federico Ramallo (03:21) Yeah, I think it does. mean, it’s very interesting how much it became more and more important for this new AI world, data migration and data transformation, because now AI can process data differently than we’re used to, right? So now we have the opportunity to do better integrations.
that were not possible before,
Sayan Bhattacharya (03:48) Right.
Right, so AI is playing a huge role and maybe I’ll explain it more in detail later. But overall you can imagine that we are leveraging AI to its fullest in each and every component of our platform, wherever we can, because a lot of times these integrations and migrations tend to be having some kind of human in the loop, right? And there’s a lot of manual process that actually goes on also, right? When you think about integration, because there’s a reconciliation aspect in my
I mean, you might have different types of systems dealing with data differently, right? So it requires certain back and forth communication between the human and
team or the onboarding team and the end retailer. So that actually I feel that AI is able to solve at the moment because it is able to take those decisions based on the data that it sees. So that’s where I think AI is definitely adding to the entire quorum of things.
Federico Ramallo (04:45) Right. And tell us a bit more about link to any and what relationship it has with link.
Sayan Bhattacharya (04:52) Right. So link to any link are the same thing. link to any is the trademark that, sorry, link is the trademark and link to any is the domain name and you can go by that.
link exclamation is the trademark that we have basically. So you can imagine link to any is basically an infrastructure layer for any business. Right. So any business that is still running on spreadsheets and maybe on duct tapes are not our end customers, right, who are trying to move out of that, who are trying to digitize their system or basically moving to a new system, trying out a new system or thinking the data around. that is our end customers. You can imagine
that we sit in the middle of these businesses, right? Which help these businesses operate efficiently because currently if you think like if there’s no integrated way of operating, then people spend manual hours, right? On reconciliation, on feeding data manually, on fixing data, right? So just to give an example, like we have integrations between POS accounting, POS loyalty.
POS e-commerce, is basically responsible for inventory updates. So just to give an example, so POS accounting, I mean, the use cases basically, it’s a very boring and mundane process, but still you need to do it. I mean, you still need to log your sale in the book of accounts at the end of the day. You need to tell the accountant that, there’s much cash I have in the…
registered this much is left right and things like that and things get really messy when you have so many sales going on multiple stores I mean, it’s not easy to manage operationally in like reality, right? So that’s where we come in we bring in the operational efficiency for any business to move data around so that there’s less manual intervention we have also started to bring in AI in terms of
how integrations also can be created because previously few things we used to offer template, templatized integrations where
Okay, you connect post to accounting, then with AI now, since we realize, right, that with every merchant has a different use case, right? I mean, they all would want a post accounting integration, but some would want it to work in a different way because their inherent process is entirely different than the other. So with AI, mean, I think we are able to cater that extra 5 % because say that we were previously able to cater 90%, 85%. Now with AI, we are able to cater that extra 5%.
to 7 % because of the customizations that they are able to apply, right, while setting up the integration or something like that. So yeah, like, so if I have to talk about it, so like link 20 basically moves data around to ensure that there’s efficiency in the business and there’s less manual intervention needed in order to get things done.
and just focus on business, right? Not focus on spreadsheets, data, managing, cataloging, and things like that.
Federico Ramallo (07:38) Right.
Right, right, which brings my next question about what does it mean for a business to have a fragmented operation and why is that so costly?
Sayan Bhattacharya (07:57) So fragmentation I would say is pretty common, right? Because say that you are a typical retail business, right? You are using five different systems. Not every system will allow you to capture the same data in the same way, right? Say that you’re trying to create a customer inside of an e-commerce like VooCom or Shopify, right? You will have, Shopify or VooCom will have different set of form validations compared to maybe say a different point of sale system, right? Or something else. So every system
varies so the data that is effectively captured is very different right and
Having it in one place in a proper format gives the business the right know-how to take proper decisions, I would say. Because say that if you have data spread out across five different systems, it becomes very hard at scale to reconcile and judge or take a decision based on that data point. So that’s where LinkedIn 20 comes in, where it basically helps you get data into one single source. And that single source of truth actually acts as a point which
distributes all the data, right? So say that you are using point of sale only or maybe the e-commerce to run your operations, everything is being synced and your entire operations are getting managed through LinkedIn, right? You have a post to e-commerce integration, you have a post to loyalty, where like the in-store redemption happens inside of the store through LinkedIn, right? And things like that. just giving an example, but like fragmentation is definitely a problem. like that’s where basically I think having LinkedIn,
particular business operations solves the entire plethora of problems I would say but yeah.
Federico Ramallo (09:26) Right, right. I mean, I’ve seen companies that have independent software systems that they are their own island, right? And they have the integration issue, right? Because what one system knows, the other doesn’t, and you have chaos with that, right? And data integrity. I’ve seen companies have a…
a lot of projects, they have a singles centralized truth of data, which has its own problems as well, because now you have to do sync back and forth to everything else, right? And then I’ve seen companies trying the whole integrated CRM knows all, does everything, right? And in my opinion, it’s like a duck, it flies, it swims, it walks.
but it doesn’t do any of those things right. I mean, it’s not the best on any. So I think that your approach of building link to any allows you to have specialized software for each role, but then integration between them.
Sayan Bhattacharya (10:29) Yes, yes, correct, correct. So that’s where we chime in, basically. You’re absolutely correct. Because…
When say you’re having two systems where one system say the boss is saying one thing, the e-commerce is saying another thing, it becomes a definite problem, right? Because someone placed an order on your e-commerce, they are waiting for their order. It is not getting processed at any cost, right? Or maybe say that you order a restaurant via Doe Dash or maybe Uber Eats, right? So that doesn’t reach the kitchen on time. And unlike…
E-commerce orders, right? Restaurant orders are very time sensitive. It needs to be delivered then and there, right? So there cannot be any loss of information or any delay of information as well, right? So a lot of complexities are there because we also cater in the restaurant space. So, yeah.
Federico Ramallo (11:17) Right. So how do you approach a large-scale data migration?
Sayan Bhattacharya (11:23) large scale data migration correct. So just so you know, mean, as linked at link to any right, I mean, we have migrated over
I don’t know, last time I checked it was close to 3 billion events, right? 3 billion. So it’s a lot of events that we have migrated till now across retail, restaurant, accounting. We have done that. And large scale data migration usually is a very challenging thing because especially in B2B, I mean, you just can’t afford disruption, right? Even if you say that you’re doing a data migration, you can’t just migrate.
migrate away on one day because you have so many data points. You have, say that I’m typically taking a retail point of sale example, or like any system as a matter of fact. They all will have customers and if they need, and if there’s a need to migrate, they will only migrate if there’s large data, right? If they have at least 100, 200 products, 300 customers, hundreds of
right because that’s something problematic to feed in manually right so that’s where our solution comes into picture and the way it usually happens and the way we have usually seen it is like there are two types of solutions to it one is where basically you can imagine that the system from where they’re migrating is actually sun setting or they have stopped supporting right and they are basically locked out right
So at that time they want to do everything in one go, right? But say that there are systems where basically they are not locked out and they have some time. Then they would want to take it slow, right? And the way it usually works is that it usually happens through, I mean, you can imagine that it sometimes takes three to four months also for a merchant or a retailer to go live because they want to go through the data, they want to check the data, they want to see if the products, the catalogs are set
properly after the migration is done and depending on the size of data the retailer might be busy. mean there are n number of operational nuances that come along the way right. mean even if practically you have completed or the tool has finished the migration properly but finishing it taking it to the complete line is actually what is time taking because it involves a lot of review process and all. I believe that’s where AI is actually helping us at the moment right to shorten that.
time to activation right in especially large data scale migrations because we required human in the loop now it does but it has drastically reduced to a great extent i would say it is more of a chat interface and
Federico Ramallo (13:37) Right.
Sayan Bhattacharya (13:46) You can imagine that currently, I mean, if I have to talk about our process, like how do we manage, say, migrating, say, 10 million rows of data, right, for a large scale merchant running 80 store outlet in the US, maybe. Say for that, maybe it takes a month. So we do the first round of migration using customers’ products, maybe, and say sales. And then we give them the store or whatever account they have used, right, or they just check the data and then they are able to
basically to the reconciliation the day want to go live. So say that today is 8th of April, they want to go live on May 1st, so they will migrate everything till today and on April 30th they will rerun the tool to migrate the remaining incremental data after they have validated the initial set. So that’s how usually merchants or our onboarding team or the customers onboarding team use the solution at the moment.
So to handle large scale data migration, it’s not in one go. It’s properly phased out without bringing the existing.
Federico Ramallo (14:45) Right. So.
So you’re using the agent to catalog the data, categorize the data.
and you’re also using it to raise questions to the user, to a human on.
I have these potential data, and I think it should go this way. Do you agree, disagree, why? And make that as a conversation.
Sayan Bhattacharya (15:17) Correct.
So I’m not too sure how many of you have used Cloud Code, but if you have used Cloud Code, then you may have seen that Cloud Code asks you questions, right? Like say that you prompted something, right? That, I want to build this thing or I want to do this thing. It will ask you certain questions after understanding your prompt, right? So you can imagine that kind of workflow is there. And just to talk about this cataloging aspect, right? So cataloging is a very important thing because when you go to a property
set up ecommerce to run especially it happens in ecommerce because ecommerce it’s more customer facing so there’s a unique problem of product and variants in ecommerce so you can imagine Nike red shirt medium right so Nike red shirt large right so things like that
Federico Ramallo (16:01) Yeah, you have a multi-dimensional
problem there.
Sayan Bhattacharya (16:05) Correct, correct. So we have our different.
file agent, right, which is able to read that file and catalog it properly. So it can actually, it can intelligently identify that, okay, Nike shirt is the product, red is the color variant and L is the size variant, right? So, and it plays a very important role because imagine doing it manually for, I don’t know, maybe hundreds of thousands of products that you have in Apple Store, right? Only because the system A that you have your data in and now you’re
system B requires this particular format, so you need to do it manually, right? So imagine the kind of effort, I can imagine the kind of effort five years back it used to go, I mean, someone doing it manually for hundreds of thousands of.
Federico Ramallo (16:40) Right.
Sayan Bhattacharya (16:48) because in retail apparel, it’s a pretty common use case. In electronics also, a store may, we will have 50,000 plus products, SKUs, right? Unique SKUs. A large store. Similarly, gift shops. They have huge SKUs, jewelry shops, things like that. So, yeah. Yeah.
Federico Ramallo (17:07) Bye.
That’s interesting. Yeah, I I was using Chachi PT before and you would sell something, prompt, and it would just do something. 90%, 80 % of the time was kind of what you wanted, right? After you kind of train it. I recently migrated to cloud. At first I found it annoying that, you know, I’m giving you an instruction, you know, please do it. And it’s asking me questions. What do you really want?
What do you mean by this, right? So I had a little bit of a hard time dealing with that change of workflow, right? Because I give you the prompt, go do it. And now you’re asking me questions about it,
Sayan Bhattacharya (17:49) Good.
Right. But I would say from my personal experience, Claude has been a game changer. I mean, with respect to whatever, because I’ve spent, I don’t know, thousands of dollars of tokens, right? API tokens, codecs, both GPT. So yeah, but Claude is.
Federico Ramallo (18:09) I mean, the more I use it, the more I appreciate it. you know, there was a transition moment that, you know, it was friction for me. But I think that with going back to migrations, right, I think that asking questions makes sense. The other thing I’ve seen happening, at least in my experience with migration, finding the patterns. I mean, I used to do migration CTL without, you know,
Sayan Bhattacharya (18:12) Definitely.
Yeah.
Federico Ramallo (18:34) without the agents before. there’s always an edge case that you can do, the way that I approach it is kind of iterated, right? Like what use cases are the most common? I cover those and then I work towards the edge cases, right? Until I’m satisfied, right? And if it’s just a small edge case, I could even go and manually make the changes on the data to complete the transformation, right?
Sayan Bhattacharya (18:53) Thanks.
Federico Ramallo (19:03) or just put an if for those little edge cases. if I can do pattern recognition using regular expressions for some data transformation or text transformation or things like that, I would prefer to do that over just trying to cover all of them at the same time because it’s difficult. So I can see how having an agent that can ask you questions and guide you towards this process becomes much more interesting.
Sayan Bhattacharya (19:29) Right, so just to give an example, I mean was thinking that what kind of example I can give quickly. So just to give an example, I mean you can imagine that say that you’re using it, you’re having a file export from a system A, you’re migrating into system B and say that the customer shipping address, shipping address is maybe say California, C-A-L-I-F-O-R-N-I-D, right? And when you migrate into system B, it accepts C-A, right? The code, the province code basically.
state code. So the agent will intelligently ask you that, we noticed this in your file. Now do you want us to transform that into or map it to the relevant US zip code, right, or the zip name, right? So, and similarly, I mean, it asks you a bunch of questions, but I’m just giving an example, like the kind of question it also asks.
Federico Ramallo (20:15) Right.
Right. That’s amazing because data sanitization, which is what you’re describing, I used to do it by having these temporary fields here and there, you know, because some, know, we didn’t have the luxury of an agent that could kind of intuitively understand the data and be able to figure out what you needed to do. So sometimes we have these, you know, intermittent, you know, fields.
until the user goes to the record and then we sanitize the data. Sometimes we could run it as a batch process, sometimes we couldn’t. It was interesting to see how that happened. I can see how having an agent in that process, wow, that’s a game changer.
Sayan Bhattacharya (21:03) Yeah, it has definitely reduced the time we used to take to activate emergent or the onboarding things usually take. It definitely come down to would say days, not in weeks, to get the first thing out of the park, the first phase.
Federico Ramallo (21:16) So you work on different industries, right? Retail, supply chain, marketplace platforms. What patterns do you see that shows up across all industries?
Sayan Bhattacharya (21:30) So if you have to talk about it, so the main problem is still there. Integration and the data problem is there across all these industries.
Data is still a problem because even if you’re an enterprise, you have everything in your SAP or maybe Oracle and then you have a separate data warehouse from which is being used by other applications to pull in data or something like that. In a typical small medium enterprise like a retail store or maybe a retailer or a merchant, they use multiple different systems. So integration and data are still most, I would say, challenging.
thing which they have to face because irrespective of whichever domain or industry you in, you are having that issue.
because you are using multiple systems and there is not one single system which does it all right because all of them are designed to do one thing and they all do one thing properly they are not meant to do everything a POS is never meant to do accounting it may have certain accounting set up feels like okay this product has this GL code or whatever like that but it will not have accounting capabilities an accounting system will have accounting capabilities so
these are different systems and across all supply chain everything I mean everywhere there a typical business is not sticking to one system multiple systems are always there and the combination of different systems always vary right it may be three systems, may be four systems, it may be five systems I mean and
Not everyone has the same combination of systems also. mean, some might use combination A, some might use B for accounting. So it becomes a very challenging thing. And say when they want to migrate just one system out of those five, then they have to change the entire integration strategy across all five.
So, yeah, that’s the main problem that I’ve seen the most challenging thing. And another thing is the change management effectively when you’re trying to bring in something new, say that you’re trying to introduce a new platform or a new tool, which will effectively increase the operational efficiency of your organization. It becomes very hard for people to adapt, right? Because they are used to that mundane old process of dealing with spreadsheets and all. So they are more…
comfortable doing that that’s what I’ve seen at least with enterprises where there’s less of rush I would say right so so yeah so that’s the most
challenging thing.
Federico Ramallo (23:54) So how do you decide where should be the source of truth?
Sayan Bhattacharya (24:00) The source of truth effectively is being decided by the merchant. So our platform is capable enough, so say that it is connecting two systems, but definitely it comes with a certain limitation because say system A doesn’t allow you to do certain API calls or certain methods, you won’t be able to support that. But source of truth basically depends on the merchant. So say that one of the integrations we have between point of sale and e-commerce, the merchant actually decides that, which is my source of truth.
for inventory, which is my social proof for customers products, right? Because what happens is that when these two systems talk and when say there’s a same data, say that there’s a same customer called Shayan Bhattacharya that is there in both the systems, say system A allows you to create duplicate customers, right? System B doesn’t allow you to. So that needs to be a manual.
Federico Ramallo (24:31) Bye.
Sayan Bhattacharya (24:47) intervention by the end customers who’s actually going in there and fixing it, right? And maybe changing the name or fixing the existing data. So like that’s how it usually works. And single source of truth usually after they decide that, right? The way we do it programmatically or in the platform is we decide on the last right. The system that did the last right is actually the single source of truth. It is not defined.
So usually in integrations, the way we create it using the platform is that our team, our analysts create those integrations. We create those templates and serve it to the merchants or the end customers. But if the merchants or the end customers want it in certain way, then we can definitely tweak the platform. mean, the configuration of that integration to make it in a specific way for a particular customer. So yeah.
Federico Ramallo (25:35) That’s very interesting.
Sayan Bhattacharya (25:35) But it
is predominantly defined by us, you can imagine. But if the merchant wants, then they can change it if they want. Yeah.
Federico Ramallo (25:45) So, changing topics a little bit, your team is small and globally distributed. How do you keep quality and speed high with a lean team?
Sayan Bhattacharya (25:56) So that has been the most challenging part, right? Because our CTO is based out of Auckland, our CEO is based out of California. We have a team, support team in Toronto, engineering teamers in India, well as few people, few consultants are also there in Europe. So it’s a nightmare, I would say, when you have to schedule calls with all of the stakeholders who are-
especially the product engineering calls, it is usually at a pretty weird time for either of anyone, right? So it’s pretty weird. But effectively what we have realized is that increasing head count doesn’t work always. mean, say that you have a given problem to work on, you just can’t keep on adding people to…
get to it faster right and that’s how software is built I mean
The thing that we have realized over a period of time is that software is built with ownership and very focused vision of the entire product. And people who are able to own it. So everyone in the team currently is an individual contributor and also an owner. So we try to instill and when we interview also, it’s very important for us to…
get an understanding of how good a person is from a contribution or ownership standpoint, if you think about it. It’s not only about doing something, it’s also about owning up to things, right? It’s also about thinking that, okay, I’m accountable for this, right? I’m owning this track. So that kind of ownership is actually very important for a small team and…
We try to minimize the number of calls we have. I mean, is very minimum, I would say, like when we initially started, we used to have too many calls, but then we realized that we have to trim it down to.
fewer calls as possible because it is not just efficient. If needed, then people can connect individually, spending everyone’s time on a standup doesn’t really make sense. So we had to break it down into different teams, having different standups, different pods, you can imagine. And then, yeah, and then.
bi-weekly connect without CTO and something like that. that’s how we have been operating. I it has been pretty efficient. I mean, mostly async and one-on-ones because since everyone is an individual contributor and owner, I mean, not…
And it’s not a big team either, right? Where there are 10 people working on a single service, right? So we have, we definitely have a microservice based architecture, but there are owners of each of those service where there’s a owner and there’s a supplementary guy also supporting it when in the absence of that person, right? So that’s how it has been getting operated. And Slack is pretty common. mean, Slack is something that we use.
Federico Ramallo (28:21) Right.
Sayan Bhattacharya (28:30) at any and we have this flexibility like the way we work is that there’s no flexible, there’s no fixed time I would say apart from the call that we all engineering have, right? It’s, you can imagine that.
It’s a common time, right? It’s just one time in a day where we all connect, rest, everything is flexible. So everyone just as long as they do their work, they are coordinating well, they’re not being a bottleneck for anyone else. They are just free to be anywhere, work at their given pace. So that’s how we have set up the culture as. And it is kind of working well, I would say for us in the team.
Yeah, but it’s really hard to find people who will own. So that’s what I’ve realized over, because I’ve interviewed probably thousands of candidates over a period of so many years, right? I mean, for different types of roles. So.
So that’s what I’ve seen. maybe out of thousand candidates, I’ve ended up hiring only 10 % or 5 % of it, right? Out of which also, I personally feel that maybe 1 % were not that good of a hire. Maybe three months or four months down the line, I realized that, I did not judge it properly, right? Because in a one hour, one and a half hour interaction, you can’t do much, actually. can’t, I mean, I…
I personally felt that it was not correct.
for a few of the highs definitely, but yeah, I think it’s a part of the entire process, right? It’s a hit and miss, but you have to hit it majority of the time. So that’s the only difference.
Federico Ramallo (29:54) Bye.
Yeah, I think that’s how we learn. mean, we learn by making mistakes. I mean, as long as those mistakes are not so expensive, That it breaks a whole company or something, right? But learning from those mistakes and being able to do better the next hire, right? I’m sure you’re better now than when you start your first hire, right?
Sayan Bhattacharya (30:12) Yeah.
Right, right, definitely. So I have definitely, would say like how I was doing interviews maybe seven, eight years back is completely different than how I would take interviews now, right? So there are various different parameters I will judge now versus back then. yeah.
Federico Ramallo (30:34) And what would you wish other engineer managers to know about making hiring decisions and managing distributed teams?
Sayan Bhattacharya (30:45) So for other engineering managers, would say the most important part is because see now with AI coming in, right?
I believe you can just prompt any agent and it will just write code for you, right? But the essence of engineering still stays the same, right? You still need to know what exactly you’re building, how you’re building it, because any of these agents you take, right? I mean, be it Claude or be it GPT or any Kimi or anything, right? If you don’t prompt it well, they all will do a thing that is very generic. Everyone will go and generate a Next.js application, right?
with chat see and things like that so you need to be very clear with your thoughts and even if you are clear with your thoughts steering an agent to make it work for you that doesn’t always work because I’ve seen and with me also and I’ve spoken to a lot of my other friends in India and US they have told me that
Federico Ramallo (31:17) Right.
Sayan Bhattacharya (31:34) Not all the projects that are wipe coded make it to production. Maybe 95 % of the projects that they do, or even I do, it doesn’t go into production. It’s mostly for prototyping or something like that which I’m using.
Federico Ramallo (31:41) Bye.
Sayan Bhattacharya (31:46) So yeah, that’s the thing. So having the technical know-how is very important. And having that grit, mean, see, as an engineering manager, need to, like if you’re hiring for an engineering talent, right, the time you get to understand the candidate or hire is very less, right? You just speak to them for an hour or two and then you have to make a decision on top of that.
So you have to trust your instinct. mean, the person has to be somewhat technical capable, like should have technical capabilities, definitely should have a definite knowledge of what you’re hiring them for. And, but also I feel that sense of, or maybe having grit is very important, right? Because without grit, if you’re hiring people, then they are just another cog in the wheel, right? And it may or may not work out for you. You also need to check out
how they respond to emotional questions or how good their emotional quotient is, right? By asking certain EQ related questions, right? By giving them some situations to understand how they will react, right? Because that will help you understand that how will a person react in the point of distress or something like that or something happens to them, right? Because not everyday, la la land for everyone, So.
Federico Ramallo (32:55) Right.
That’s interesting. And how do you reduce the impact of having people on multiple time zones and getting, when they make assumptions and they work on the wrong direction, right? By the time somebody realizes on the other time zone, It’s a lot of time passed by, right? And that affects the productivity of the whole team, right?
How have you been able to reduce and minimize that impact?
Sayan Bhattacharya (33:30) So.
The way we do it is that we properly plan it. So before writing any piece of code, right? Before say that we have to develop feature A. Say that I usually sit with that engineer or plan it, right? And it starts with as basic as writing the API contracts. You can imagine we go into that much detail where we articulate. So you can imagine that first we explain to the engineer that this is what needs to be done as a feature. The engineer comes up with a plan.
right and then we sit together and make the plan perfect so that it can be executed and there’s no deviation from the plan that has already been planned right so that is how we effectively do it because
Federico Ramallo (34:09) Right.
Sayan Bhattacharya (34:12) That has been the main problem, Our CTO is in Auckland, and he is a big infrastructure security guy. So he would want us to do certain things, and this is something that has been instilled in our team by him. So he has been showing us the right path of actually planning, like how to do proper planning. And yeah, so that’s how we do it. We write it down, break it down into tasks, and then we do it. We used to use Jira, but we have moved to GitLab now.
I would say we used to use Jira but Jira was too much for us to be managing. mean because you need a separate person who knows Jira. mean because to be honest I’ve used Jira for so long but I’m still not familiar. mean fond of Jira I would say that’s why I was not able to get familiar with Jira but GitLab just works for us. So that’s what we use at the moment to create issues.
then we assign it to MRS.
Federico Ramallo (35:08) Right.
Right. Yeah, I I use GitLab, use GitHub, I use Jira as well. yeah, Jira is over complicated. Once you get it, you you have these aha moments throughout learning it, right? But it’s a painful process. But yeah, but I can see how GitLab will be, you know, for a smaller team will be a much better choice, right? ⁓ But particularly Jira can be expensive.
Sayan Bhattacharya (35:21) Yeah.
Yeah.
Federico Ramallo (35:36) can get expensive pretty quickly.
Sayan Bhattacharya (35:38) Yes, yes. Zira is pretty expensive and I really like ClickUp also but ClickUp is more expensive I than Zira but ClickUp is pretty good as well. yeah, these tools are just Yeah, yeah, yeah. So I’m just saying that these tools just bring a lot of process. I mean, it makes sense when you have lot of employees. I mean, I’ve seen and I feel that these bring a process but they also slow you down.
Federico Ramallo (35:44) Yes.
I found it a bit overwhelming. go ahead.
Sayan Bhattacharya (36:02) If you are planning to move fast in a structured way, I mean, I don’t know, it’s just my take on Jira, but yeah, it’s just that my experience with Jira has not been that good. It definitely can work for someone, but for me GitLab or having that pre-planning session before each feature with the developer.
rather than a PM just writing a story and the engineer just spitting out tickets, right, under that issue or whatever I pick, right, is…
Federico Ramallo (36:23) Bye.
Right. I wanted to ask you something, going back a little bit on hiding. I’ve been trying to figure out how much, you know…
How much do you encourage a candidate to use AI to assist on their interview process? How much do prefer not to? And what I’ve seen happening is that when people use agents to augment their work, then it’s harder from the interviewer’s side to discern
it’s their skills or it’s actually the AI, right? Which in, know, if they leverage properly, and as you said, they know what they want to build, it can be a great leverage, right? But if they don’t, the AI covers the lack of knowledge, then it becomes an issue, right?
Sayan Bhattacharya (37:23) Definitely,
So whatever interviews I’ve taken recently over the past six, seven months, because I mean, if you imagine, Claude code has recently grown, right? I mean, for the past, I think last July, August, right? Last year, it was gaining all the popularity because prior to that coding agents were there, like Cursor, Windsor, other tools also, I forgot, Kero was there. They did not do the job that well, right? But still, I mean, if you have to talk about
AI in hiring. I will not, I mean, I don’t personally recommend that people should allow candidates use AI because that doesn’t let you judge the candidates knowledge.
Because the reason why you’re hiring that person is because of their knowledge, not what AI they use, end up using, right? And get the work done. Because if you hire someone who’s using agents and doing the work, then effectively that means that you’re shooting yourself in the foot, right? Because that person doesn’t know what will go wrong, right? And what will go right? What is wrong with the output, right? So it’s very hard because
Even
if you use AI, majority of the time using AI will go into reviews. mean, either you review it or you have another AI reviewing it. But still, you need to review it, because you just can’t ship on.
like ship not unreviewed code into production right because you have you have seen recently a lot of these systems have been crashing right like cloud fair a lot of bad things are also happening because of AI like this light LLM package hack next.js package hack axios package hack recently so yeah and even github like if you think about it github’s uptime has gone below 90 percent
So like previously, like prior to AI, would say industry standard SLA was 99.9999, right? But now major, like the major software creation site, right? GitHub is having less than 90 % of…
uptime which is quite problematic. yeah, AI should be limited. mean, for researching web search, it’s fine, but for writing code or doing anything is a bit problematic because in interviews people often do want to go to Google or search for something. You might forget a syntax, that’s fine. But if you are using an agent to do the entire thing, then that is problematic.
Federico Ramallo (39:46) So how do you think engineering teams, especially distributed engineering teams, should be able to leverage AI tools? What would be your advice to other upcoming engineering leaders that are transitioning from individual contributors to leading a team? What advice would you give them?
Sayan Bhattacharya (40:09) Right, so the main thing is whenever you are going down that AI path, right, you have to stick to one tool because when you have an engineering team using multiple tools, like say that you have five people using Clot, five people using GPT, five people using Kimi, that becomes a problem, right? Because then you’re having to have different workflows or IDE workflows for every set of people. You cannot maintain a single memory graph, right?
So all those become a problem. So first of all, I think as a lead, you should decide on the technology that you and your team will use, which is best suited from a cost perspective, from a productivity perspective for the company. And after that, you define certain rules, right? Because LMs don’t tend to do everything correctly every time. You need to define that, okay, this is what you can do, this is what you cannot do. You cannot create a file which has more than 300 lines, maybe.
Federico Ramallo (41:01) Right.
Sayan Bhattacharya (41:09) to write test, you have to do this, this, this, you have to have all the marked out files properly. So that’s what I think you should do as the first thing, irrespective of if you’re working on a brownfield or a greenfield project, right? So yeah, and after that, you need to set up knowledge graphs, have the memory in centralized place, like use something like OBSDN or something, or maybe…
Federico Ramallo (41:21) Right.
Sayan Bhattacharya (41:29) or there is Cloud Mem also right now. So yeah, irrespective of whatever agent you end up using. So you can stick to that. yeah, and reviews. Reviews are something which is very important. And cleaning up the markdown files, because a lot of times when these agents do their work, they tend to create a lot of markdown files in the repository, which are not needed.
and you tend to push them also, you tend to have them. So you need to maintain a proper knowledge base for the agent to work on so that it utilizes lesser number of tokens also, if you think about it, right? And effectively gets the job done without causing chaos.
Federico Ramallo (42:06) Great.
Sayan Bhattacharya (42:09) And another thing basically I would say is secrets. So say that you have an environment variable.
all your AWS secrets and all. So your workflow should not allow reading those files by the agent. So you need to set up those workflows properly so that that is not bypassed at any cost, right? Like any which way you’ll be using different keys, but still gaining access to AWS or anything secret like that is kind of a problem, right? Because you don’t know what exactly is happening with your data. I mean, even if these cloud companies
end up telling you that, okay, you’re using an enterprise version of this, so you’re not processing your data, but you don’t know in the end.
So yeah, so that’s the overall.
I would
Federico Ramallo (42:54) Amazing. So what advice would you give to young engineers that are looking to start or they’re looking forward to get promoted as an engineer leader, head of engineering, know, kind of following a similar career path as you? What advice would you give them?
Sayan Bhattacharya (43:21) The main advice I would give is have that perseverance, that I would say urge to not stop until that thing doesn’t work. So you have to have that mentality of…
not giving up until you make something work. Just to give an example, and I think it’s almost common with lot of engineers, almost, and I think it’s common with a lot of programmers, especially because a lot of my programmer friends have the same issue, like say that I’m trying to solve something and I’m not able to solve it. I cannot focus on anything else, right? Even after I out, I will be thinking about that one problem.
Suddenly, if you just come up with a solution, then you want to just drop everything and go back and fix it, right? Because that’s how you attain peace of mind as a programmer. So I would say that you have to have that kind of mindset because irrespective of whatever AI agents are able to do, you still need to own it because the organization or the end customer will not hold the whole cloud or GPT accountable, right? It’s you who built it. So you need to know exactly what you’re building and that will not effectively
happened from
Prompting and seeing things turned up right you need to get your hands dirty and the most Boring way of getting hands dirty is building something out by reading documentation the plain old way I mean we reading documentation. I would say it’s still the most underrated thing. I mean I still lack that skill because I tend to just bypass that and to Take some shortcuts, but then okay. I realized half an hour later that okay
because you just can’t rely on Cloud or GPT for any latest information. Just to give an example, if you use coding agents, the main problem you will see is that these coding agents are trained on a data set which is maybe six months old or three months old. So what happens is that when you generate code, it is not generating the latest.
I mean, it is not joining the code with the latest packages, you can imagine, right? So say that it, ⁓ simply three months or two months down the back, there was a vulnerability in the next JS 15 package.
Federico Ramallo (45:08) Right.
Sayan Bhattacharya (45:14) right? So I had wipe coded something and when I deployed it on in our GitLab it was failing because the vulnerability checks were failing right? I did not run it locally but I just assumed that okay Claude will do its job and but it did not right? So if you don’t have these checks there essentially you’re shipping a vulnerable piece of code to your end customers as well right?
So these things cascade in the end. So you have to have the know-how of how systems work. It’s not as simple as you prompt that, build me a Facebook and your Facebook is built, right? So it’s more than that. And I think there’s a lot of hype also going on with AI. But I really want to be grounded at the moment. And it has definitely helped us. I would say that you can go to 0 to 70 faster than before, right?
Federico Ramallo (45:44) Right.
Sayan Bhattacharya (46:00) but that 7200 you still have to steer it manually or you have to do tweaks in order to get through the line. So that is where the main engineering know-how comes into picture. can’t, because I have friends who, have PM friends, product manager friends, who are like, I don’t need a dev now, I have Claude, I can do whatever I want.
Federico Ramallo (46:00) Bye.
Sayan Bhattacharya (46:19) So, and in my last vacation back in January, he was trying to build something and till now he’s nowhere. But I’m not saying out of a…
Federico Ramallo (46:27) Yeah
Sayan Bhattacharya (46:29) to a joke, but I’m just saying that it’s not as simple as you prompt. mean, creating an app for a to-do list is much more different than an application that involves authentication, rate limits, large data, Multi-tenancy, multiple things are actually there when you build out an application. It’s not as simple as prompting and building it out. And every application user base requires different type of components.
Something that works for 100 users may or may not work for 10,000 users in the end, right? You have to have the know-how of how do you take it. You just can’t go and decide when you hit 10,000 users that, how do I scale now, right? You have to have the system ready from ground up. So for that, you need to know. So it’s pretty essential to learn.
Federico Ramallo (46:56) Right.
Yeah, right.
The agents cannot abstract as we do, right? So it’s our job to abstract, provide specificity, to provide clear requirements. And then the agents can do the syntaxes, can fix, can go through HTML, styling, all those things that are time consuming and lower level tasks, yes, that can do. But why?
Why build it a traditional way when you can spend 10 times more trying to automate it, right? Or vibe code it in this case, right? Yeah, yeah, yeah.
Sayan Bhattacharya (47:40) Right. Yeah, actually I was trying to
see initially when we got so we got credits from open initially because of our usage. So I was trying to do a POCO the weekend when I was trying to
create our own issue tracking platform. And then I realized that, it’s just not worth it. I mean, even if you wipe code it, even if you do 80%, 90%, software is not only about building it, taking it to 100%, there are incremental updates that are to be done. You have to maintain it. have to host it, mainly. So it doesn’t really make sense. So yeah, just one of the things that people shouldn’t do, I mean, replacing SaaS with wipe-coded apps.
Federico Ramallo (48:25) Right, it could work, now you own that piece of software and need to maintain it and upgrade it, so it could become a risk.
Sayan Bhattacharya (48:34) Yeah.
Yeah.
Federico Ramallo (48:39) So, Zaya, and I truly appreciate you being here today. We’re running out of time. Any final remarks, any final advice before we wrap it up?
Sayan Bhattacharya (48:49) Nope, think it was pretty nice interacting with you, Federico, and really excited to see how this pans out. And yeah, looking forward to stay connected and hopefully we’ll catch up soon in person in Guadalajara or maybe if you’re in India, then definitely we should be catching up. ⁓ yeah. Yeah.
Federico Ramallo (49:07) Yes, that would be a lot of fun. To meet in person
and hang out, that would be amazing. Here, in Mexico, India, or maybe in the US if we meet for some conference, whatever, it would be so much fun.
Sayan Bhattacharya (49:22) Yep, yep, I’ll let you know if I happen to visit sometime soon, but yeah.
Federico Ramallo (49:29) Sounds great. Sayan, thank you for joining us today.
Sayan Bhattacharya (49:32) Thank you, Vedrikul. Bye.