Leadership & perspective

Chief Technology Officer · India

2026-05-21 edition

Raghav Tzeqenri

I build insurance technology whose origin, assumptions and continuing obligations can be explained after the release team has moved on.

Section · Areas of practice

Make the hidden engineering choice available for review

01

Keeping a release reconstructible after its authors move on

A working deployment is useful evidence about operation, but it does not by itself prove that the organisation retains everything needed to construct the release again. My 2020 review found seventeen of eighty-three artefacts unreproducible from retained materials. Twelve were reconstructed and five retired after approved replacement, at ₹91 lakh cost and with two features delayed. I work across engineering, service ownership and procurement to identify the inputs and permissions on which a repeatable build depends. The capability is not a promise that reconstruction alone makes software secure or correct. It is the ability to separate a demonstrated build path from an assumption about one, retain responsibility for its dependencies, and make the consequence of missing material visible before an emergency requires another person to recover the process.

02

Giving competing work an explicit claim on capacity

Interactive insurance work and analytical processing can both be important while needing different completion windows. In twenty-four controlled paired runs, a revised allocation improved quotation-response latency while lengthening the analytics batch. I kept the slower batch and added annual expense beside the faster interactive result. This capability begins by asking receiving teams what timing they actually require and which trade-offs they can accept. It does not allow engineering to determine pricing assumptions or actuarial conclusions. Nor does a controlled benchmark become a universal service promise. The contribution is to make resource priority a conscious operating decision, with workload conditions, recurring cost and the effect on the less-favoured process recorded together, so that a faster screen does not conceal work displaced elsewhere in the enterprise.

03

Preserving meaning when a field or a clock looks precise

A numerical value can be exact while its interpretation remains incomplete. Twenty-four of 360 synthetic property records lacked an explicit area unit, and the original implementation treated that absence as square metres. A revised path retained ten records for clarification instead of guessing. Event ordering posed a different semantic problem: clock skew reversed fourteen of 230 synthetic event pairs. Source-defined sequence handling corrected most, with two left for reconciliation. I ask engineers to preserve the authority behind a value or order rather than infer it from the convenience of a representation. The skill is to expose the unresolved question in a form its owner can answer. It does not confer authority over coverage, business-effective dates or claims chronology merely because the system can sort a number or timestamp.

04

Making software permission part of the engineering account

A component's availability is not a complete account of permission for a particular use. In a review of ninety-seven libraries, eleven had incomplete licence evidence; qualified review later approved seven for the intended use and four were replaced. I helped engineering supply the component versions, intended uses and integration context needed for that review, while legal colleagues retained interpretation. This capability avoids two shortcuts: assuming that an available download grants every permission, or declaring an infringement because an internal record is incomplete. The outcome includes maintenance and replacement effort as well as the review decision. It asks the team to preserve the evidence supporting its use of a dependency, and to revisit that account when the version, distribution arrangement or intended use changes.

How I lead

The software we release carries assumptions about how it was made, what its numbers mean and who will maintain it. I want those assumptions recoverable by the next person who must rely on the service, including when the original engineer is no longer available to explain them.

At scale

The responsibility, in figures

64

Engineering employees

Five heads; twelve contractors outside this employee count

₹18.4 cr

Annual operating authority

₹6.2 crore change investment separately approved; finance owns classification

36 years

Engineering career

Entered July 1990; CTO appointment January 2021

In practice

Decisions and their consequences

Case 01

The release worked, but seventeen builds could not be reconstructed

In 2020 I endorsed a release-assurance account because the software had deployed and its operating checks passed. We later asked a different question: could another engineer reconstruct the deployed artefacts from the source, instructions and dependencies we had retained? Of eighty-three artefacts examined, sixty-six were reproducible and seventeen were not. Historical instructions and a vendor plugin were absent from the usable build account. The original engineers knew parts of the process, but their recollection was not a dependable organisational capability.

The delivery lead proposed keeping the existing binaries and treating reconstruction as a future maintenance task. I had accepted the earlier assurance, so it would have been convenient to agree. Instead, I supported a funded correction with service owners deciding which artefacts still needed to exist. We did not rebuild everything merely to preserve the original population. Twelve were reconstructed, and five were retired only after approved replacements. The retirement decision required a service transition; deleting a difficult build from an inventory would not have resolved the obligation it supported.

The programme cost ₹91 lakh. Two planned features moved four weeks later because the engineers needed for the correction also held knowledge required by those features. I included that displacement in the account rather than call the work an invisible improvement to engineering hygiene. The completed population was twelve reconstructed artefacts plus five retired after replacement, not seventeen reconstructed builds.

We found no basis in this exercise to declare the seventeen malicious, vulnerable or responsible for a production failure. The problem was the unsupported claim that a successful deployment demonstrated control of construction. Reproducibility also does not by itself prove functional correctness or security. It answers one necessary question about how the software came to exist.

I now ask for the reconstructible release account before accepting deployment success as a broader assurance. The next engineer should not have to locate the original author, recover an unavailable plugin or guess which undocumented step made the binary work. My responsibility was to change the evidence behind my endorsement, not simply request a more confident presentation of the same result.

Case 02

A faster quotation path made the analytics window longer

In 2022 interactive quotation work and a scheduled analytics batch competed for shared processing capacity. The platform team could improve one by giving it a stronger claim on resources, but the receiving teams had different expectations about completion. Quotation colleagues wanted responsive screens during their operating day. The analytics team wanted its processing window preserved. Neither requirement disappeared because the other team could describe a more visible delay.

We agreed a controlled comparison using the same snapshot, workload pattern and twenty-four paired peak-condition runs. Under the original arrangement, the quotation path's 95th-percentile response time was 4.8 seconds and the defined analytics batch took ten hours. A revised allocation brought the quotation measure to 1.6 seconds while the batch took 13.5 hours. I asked both receiving teams to review those results together. A report showing only the faster interactive path would have concealed the cost imposed on the other work.

The change required ₹64 lakh of implementation expense and ₹18 lakh additional annual operating expense. We accepted the longer analytical window after its accountable owner examined the working schedule and the decisions depending on it. The extra annual cost did not buy an improvement in every measure. It supported a chosen priority arrangement whose slower consequence remained explicit. Insurance pricing and actuarial judgements stayed with the responsible professionals; engineering did not alter their assumptions to make a benchmark easier to satisfy.

The comparison concerned twenty-four controlled paired runs. It did not establish a universal production response time, promise that every future batch would finish in 13.5 hours or prove greater analytical accuracy. Different volumes, competing workloads and processing definitions could change the result. We retained the conditions so that a later capacity decision could compare like work rather than reuse an attractive number without its context.

My decision was to make the priority visible and jointly understood. I would agree the receiving teams' useful completion windows earlier next time. That would let us compare several allocations before a technical demonstration creates pressure to endorse the fastest-looking one, and it would make the cost of displaced work part of the original proposal.

Case 03

The missing area unit could not be supplied by a convenient default

A 2023 review used 360 synthetic property records to test an integration that passed area values into an insurance workflow. Three hundred and thirty-six records carried an explicit unit; twenty-four did not. The existing path silently interpreted an absent unit as square metres. That made the integration appear complete, but it gave an engineering convention authority over a fact that the input had not supplied. A numerical value alone could not establish the meaning of the measurement.

The integration lead proposed retaining the default and adding a note to the interface specification. I asked for the unresolved state to remain visible to the appropriate source owner. We introduced explicit unit references and required an authorised clarification where the incoming record did not support interpretation. Where a conversion was appropriate, it had to begin with a known unit and an approved handling rule. The change was not permission for engineers to infer a property's dimensions from a plausible-looking number.

Six weeks of work cost ₹76 lakh. On review of the same 360 synthetic records, 350 had a resolved unit account and ten remained pending clarification. We did not describe all 360 as completed by excluding those ten or giving them the most common unit. The remaining records required a defined unresolved route, with receiving colleagues able to see why the value could not yet support the intended processing.

This was a constructed integration exercise. It did not establish that actual policies had been mispriced, that a property was underinsured or that a coverage decision was invalid. Insurance specialists retained those judgements. The technical finding was that an absent measurement qualifier had been replaced by an assumption without sufficient authority.

The practical cost was additional handling and a less convenient interface. Some work stopped for clarification instead of producing an immediate answer. I accepted that cost because the fast answer concealed a missing fact. In a future design I would ask for examples with absent and conflicting units during the initial agreement, before a default becomes embedded in downstream expectations and a populated field is mistaken for a fully understood measurement.

Case 04

An incomplete licence account required review, not a verdict

In 2024 we reviewed ninety-seven software libraries used in a defined platform estate. Eighty-six had an approved account of their licences and intended use; eleven had incomplete supporting evidence. The engineering team had obtained the components through familiar channels, and some colleagues treated their availability as sufficient permission. Others wanted to remove all eleven immediately. Neither response distinguished a missing internal account from the legal meaning of the actual component terms.

I supported a structured review with qualified legal colleagues. Engineering supplied versions, sources, intended uses and integration context, and procurement helped recover relevant records. I did not ask developers to declare a legal conclusion from a package label. Nor did I allow the absence of a complete internal record to become a public allegation that a supplier or author had acted improperly. The question was whether our intended use had a defensible permission account and what work was necessary where it did not.

Seven of the eleven were subsequently approved for the specified use after review. Four were replaced. The programme cost ₹42 lakh and occupied six weeks, including engineering work and acceptance of the replacement paths. The final account therefore comprised the original eighty-six, seven resolved through review and four replacements. We did not relabel the four as retrospectively approved merely because the replacement programme finished.

The decision required coordination beyond a one-time inventory. A different version, distribution arrangement or intended use could change the relevant conditions. We assigned responsibility for keeping the component account current, with legal interpretation remaining with qualified advisers. The review was not a declaration that every part of the enterprise had been audited or that future dependency changes would automatically be permissible.

The lesson for my engineering leadership was to make permission evidence part of the dependency's practical life. A library can be technically useful while its intended use still needs examination. The responsible response is neither complacency nor an unsupported accusation. It is to recover the facts, obtain the appropriate judgement and fund the technical change where the resulting decision requires one.

Case 05

Clock order did not establish which event caused the next

In 2025 we examined an event-processing path using 230 synthetic pairs with defined causal relationships. The service sorted messages by timestamps from different systems. Under deliberately introduced clock skew, fourteen pairs appeared in the reverse order while 216 retained the expected order. The sorted list looked precise, but its precision did not establish causality. Two machines reporting time independently could not supply a shared ordering authority merely because their fields used the same format.

The platform lead suggested increasing clock-synchronisation frequency and retaining the existing sort as the principal rule. Better clock operation was useful, but it did not answer the whole question. I supported source-defined sequence handling within the relevant event stream, with an explicit reconciliation path when the evidence did not support the expected relationship. We asked the responsible process owners to state which relationships the technical path actually needed to preserve rather than assume every event in the enterprise required one universal order.

The change cost ₹58 lakh and added three weeks to the release schedule. Retesting the same 230 pairs produced 228 passes and two held for reconciliation. The two remained unresolved within the tested scope; they were not counted as correct because the service had stopped them from proceeding. The account distinguished the ability to detect an uncertain sequence from evidence that the sequence had been successfully resolved.

No actual claims chronology, policy-effective date or customer outcome was inferred from this synthetic exercise. A technical event stream does not decide the legal or business meaning of a date, and engineering did not acquire authority to alter an insurance record's effective state. The result concerned a defined causal relationship inside a processing path, not a universal clock for the enterprise.

I would ask the causal-order question before selecting the timestamp representation next time. That would make the required authority visible early and reduce the temptation to treat a sortable field as a complete answer. The useful engineering improvement was a more honest sequence account, including the two pairs still needing another authorised step, rather than a claim that every event could now be placed in perfect order.