[{"data":1,"prerenderedAt":374},["ShallowReactive",2],{"posts":3,"youtube-videos-v5":132},[4,18,27,40,48,58,67,77,88,98,108,117,125],{"slug":5,"title":6,"excerpt":7,"topic":8,"platform":9,"url":10,"date":11,"dateLabel":12,"year":13,"readTime":14,"cover":15,"content":16,"full":17},"shipping-got-easy-keeping-systems-honest-got-hard","Shipping Got Easy — Keeping Systems Honest Got Hard","A few years ago, the bottleneck on most engineering teams was obvious: building the thing. Continue reading on Medium »","engineering","Medium","https:\u002F\u002Fjainprayush9.medium.com\u002Fshipping-got-easy-keeping-systems-honest-got-hard-baed53ff04ca","2026-07-28T19:52:26.000Z","Jul 28, 2026",2026,"9 min",null,"\u003Cp>A few years ago, the bottleneck on most engineering teams was obvious: building the thing.\u003C\u002Fp>\n\u003Cp>That is less true now. Frameworks, platforms, templates, and AI coding tools made it dramatically cheaper to stand up a feature, a service, a dashboard, or an alert rule. You can go from idea to merged PR faster than most organizations can schedule a design review.\u003C\u002Fp>\n\u003Cp>So the constraint moved. The hard part is no longer “can we ship this?” The hard part is “who keeps this true after we ship it?”\u003C\u002Fp>\n\u003Cfigure class=\"essay-figure\">\u003Cimg src=\"\u002Fimages\u002Fessays\u002Fshipping-got-easy\u002Fhero.jpg\" alt=\"The constraint moved from shipping to ownership\" loading=\"lazy\" \u002F>\u003Cfigcaption>The constraint moved from shipping to ownership\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\u003Cp>If you own a service, an on-call rotation, or the dashboards people open at 2 a.m., this is for you.\u003C\u002Fp>\n\u003Cp>Call it the \u003Cstrong>creation-to-ownership gap\u003C\u002Fstrong>: the widening distance between how easy it is to create something and how little capacity anyone budgets to keep it honest afterward.\u003C\u002Fp>\n\u003Cp>It shows up everywhere creation got cheap, and ownership stayed optional:\u003C\u002Fp>\n\u003Cul>\u003Cli>Feature flags that ship in an afternoon and linger for years\u003C\u002Fli>\u003Cli>Dashboards built during an incident and abandoned afterward\u003C\u002Fli>\u003Cli>Dependencies added in one PR and audited never, until a CVE forces the conversation\u003C\u002Fli>\u003Cli>Alerts added “just in case,” then muted forever\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>Alerting is the sharpest case study, because bad signal does not just waste time. It trains people to stop listening.\u003C\u002Fp>\n\u003Ch2>Why alerts stop meaning anything\u003C\u002Fh2>\n\u003Cp>Every engineering team eventually builds the same thing without meaning to: a monitoring setup that pages people constantly and helps nobody.\u003C\u002Fp>\n\u003Cp>It does not happen on purpose. It happens one well-intentioned alert at a time. A threshold after an incident. A Slack notification “just in case.” A dashboard metric promoted to a page. Each addition feels responsible in isolation. Together, they train your own engineers to stop trusting the alarm.\u003C\u002Fp>\n\u003Cp>That is the real failure mode. Not that alerting is too quiet. That it is too loud, too often, about things that do not matter, until the one time it is loud about something that does, and nobody is listening anymore.\u003C\u002Fp>\n\u003Ch2>The fable everyone knows and nobody applies\u003C\u002Fh2>\n\u003Cp>The boy who cried wolf is not a story about lying. It is a story about \u003Cstrong>signal decay\u003C\u002Fstrong>. Every false alarm does not just fail to help. It actively degrades the value of every future alarm. By the time the real wolf shows up, the villagers have already learned, correctly, that responding costs more than it is worth.\u003C\u002Fp>\n\u003Cp>Most alerting systems run exactly this experiment on their own engineers, every week, without noticing.\u003C\u002Fp>\n\u003Ch2>The two costs nobody puts on a dashboard\u003C\u002Fh2>\n\u003Ch3>1. The direct cost — on-call burnout\u003C\u002Fh3>\n\u003Cp>An engineer who gets paged four times a night, three of which turn out to be nothing, does not sleep less on paper. They sleep less in practice, because the anxiety of an unpredictable pager is its own tax, independent of whether anything was actually wrong. Teams do not usually connect rising attrition or declining on-call morale to alert volume, but it is one of the most direct lines between infrastructure decisions and people decisions in engineering.\u003C\u002Fp>\n\u003Ch3>2. The invisible cost — trust decay\u003C\u002Fh3>\n\u003Cp>This is the more expensive one, and it compounds silently. Once an engineer learns that a specific alert is “usually nothing,” they stop treating it as an event that requires full attention. They glance, dismiss, move on. This is a rational adaptation to a noisy environment. Still, it means that when that same alert fires because something is actually wrong, the response time is identical to when it was nothing. The alert has not failed technically. It has failed as communication, which is all an alert ever really is.\u003C\u002Fp>\n\u003Ch2>Why this gets worse as systems grow\u003C\u002Fh2>\n\u003Cp>A five-service system can afford a slightly noisy alerting setup because a human can hold the whole picture in their head. That stops being true almost immediately as systems scale:\u003C\u002Fp>\n\u003Cul>\u003Cli>More services means more places for thresholds to be set without coordination\u003C\u002Fli>\u003Cli>More integrations mean more third-party status changes get treated as “alerts” by default\u003C\u002Fli>\u003Cli>More dashboards mean more temptation to wire every visible metric to a notification\u003C\u002Fli>\u003Cli>More on-call rotations mean less institutional memory about why a given alert exists at all\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>Nobody sits down and designs a bad alerting system. It accretes, one reasonable-sounding addition at a time, with no equivalent process for subtraction. Nobody’s job is to remove alerts. Everybody’s job, implicitly, is to add them.\u003C\u002Fp>\n\u003Cp>That is the creation-to-ownership gap in miniature. Creation is easy. Subtraction has no owner.\u003C\u002Fp>\n\u003Cp>AI coding tools widen it further. They make it even easier to scaffold another service, another monitor, another “temporary” flag, without anyone adding matching capacity to maintain what just got created. Speed of generation is not the same as capacity to own.\u003C\u002Fp>\n\u003Cp>There is a second trap that looks sophisticated: the \u003Cstrong>passive monitoring trap\u003C\u002Fstrong>. Teams build beautiful dashboards, then assume someone is watching. Nobody is watching on a reliable schedule. Dashboards are opt-in. Pages are interruptive. If critical change only exists on a panel, you have reporting, not response.\u003C\u002Fp>\n\u003Chr \u002F>\n\u003Ch2>What to do instead\u003C\u002Fh2>\n\u003Cp>This is where most “how to set up Grafana\u002FLast9” posts stop at screenshots. The missing half is design that survives a real on-call rotation.\u003C\u002Fp>\n\u003Ch3>The only alert filter that matters\u003C\u002Fh3>\n\u003Cp>Not every signal deserves to interrupt a human.\u003C\u002Fp>\n\u003Cblockquote>\u003Cp>An alert should exist only if a human needs to take a specific action right now, and that action is not already automated.\u003C\u002Fp>\u003C\u002Fblockquote>\n\u003Cp>Run every candidate alert through that test:\u003C\u002Fp>\n\u003Cul>\u003Cli>Informational state changes belong on a dashboard, not a page\u003C\u002Fli>\u003Cli>Scripted responses should be automated, not routed to a person\u003C\u002Fli>\u003Cli>“Useful context” belongs in a log or thread, not a notification\u003C\u002Fli>\u003Cli>Duplicate symptoms of one failure should be one alert, not five\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>The test is not “is this true and worth knowing.” Almost everything is. The test is whether someone must act now, urgently enough to interrupt whatever they were doing.\u003C\u002Fp>\n\u003Cp>If you only take one practical rule from this article, take that filter.\u003C\u002Fp>\n\u003Ch3>Make the alert itself actionable\u003C\u002Fh3>\n\u003Cp>A good alert is a work order, not a riddle. When it fires, the person receiving it should not need to reverse-engineer your intentions at 2 a.m.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Bad:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>ALERT: cpu_usage_percent{service=checkout} &gt; 80 for 5m\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Better:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>Checkout p95 latency is above SLO (currently 1.8s, budget burn high).\nUsers are seeing slow payments.\nOpen the Checkout first-five-minutes dashboard → Latency panel.\nRunbook: https:\u002F\u002F...\u002Fcheckout-latency.\nIf not recovering in 10 minutes, page Payments on-call.\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Every page-worthy alert should include:\u003C\u002Fp>\n\u003Cul>\u003Cli>What broke in plain language (not only a metric name)\u003C\u002Fli>\u003Cli>Why it matters (user impact, SLO risk, blast radius)\u003C\u002Fli>\u003Cli>Where to look first (link to the right dashboard panel, not the homepage)\u003C\u002Fli>\u003Cli>What to do next (runbook \u002F SOP steps)\u003C\u002Fli>\u003Cli>Who else to involve if mitigation stalls (escalation)\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>If your tool supports advanced fields (investigation guide, false-positive notes, severity, references), fill them. Empty rule metadata is how “create alert” becomes creation without ownership.\u003C\u002Fp>\n\u003Cp>Also prefer smarter thresholds where you can. Static lines like CPU &gt; 80 are easy to ship and easy to cry wolf. Prefer symptoms users feel (error rate, latency, freshness, availability) and thresholds tied to history or SLO burn when possible. Threshold alerts, anomaly-style alerts, and trend-change alerts all have a place. Vanity metrics do not.\u003C\u002Fp>\n\u003Ch3>Route to people who can act\u003C\u002Fh3>\n\u003Cp>Alert fatigue is often a routing problem disguised as a volume problem.\u003C\u002Fp>\n\u003Cul>\u003Cli>Send pages only to people empowered to act\u003C\u002Fli>\u003Cli>Keep FYI \u002F deploy \u002F minor blips out of the must-act channel\u003C\u002Fli>\u003Cli>Prefer team-owned routes over “everyone engineering”\u003C\u002Fli>\u003Cli>Deduplicate and thread: one incident, one conversation, updates instead of five identical pings\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>Slack made alerting feel cheap. A noisy Slack channel is still a trust failure. It is just quieter about it. Separate must-act from awareness. Thread instead of repeating. Attach the runbook every time.\u003C\u002Fp>\n\u003Ch3>Build a “first five minutes” dashboard, not a museum\u003C\u002Fh3>\n\u003Cp>Dashboards and alerts get treated as interchangeable, and they are not.\u003C\u002Fp>\n\u003Cul>\u003Cli>\u003Cstrong>Dashboards\u003C\u002Fstrong> answer: how are we doing, on a human schedule?\u003C\u002Fli>\u003Cli>\u003Cstrong>Alerts\u003C\u002Fstrong> answer: does someone need to act right now?\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>A useful service dashboard for on-call usually covers a small, opinionated set of views. Steal this shape even if your tool is Grafana, Kibana, Datadog, or something else:\u003C\u002Fp>\n\u003Cul>\u003Cli>Variables people can change without editing the dashboard (env, service, percentile, time resolution)\u003C\u002Fli>\u003Cli>SLOs \u002F user symptoms (availability, latency, error rate)\u003C\u002Fli>\u003Cli>Server \u002F API view (traffic, errors, hot endpoints)\u003C\u002Fli>\u003Cli>Async\u002Fbackground work if you have queues or cron\u003C\u002Fli>\u003Cli>Client view when you have client-side telemetry\u003C\u002Fli>\u003Cli>System resources (CPU, memory, runtime-specific stats)\u003C\u002Fli>\u003Cli>Dependency health (the thing that usually breaks you at 3 a.m.)\u003C\u002Fli>\u003Cli>Alerts section with only the graphs that actually page, plus links to SOPs\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>Two rules that keep dashboards honest:\u003C\u002Fp>\n\u003Col>\u003Cli>Do not wire every panel into an alert. Pick essential graphs only.\u003C\u002Fli>\u003Cli>Alert configuration should not depend on casual dashboard variables. Alerts need fixed evaluation windows and explicit thresholds.\u003C\u002Fli>\u003C\u002Fol>\n\u003Cp>If a panel does not help in the first five minutes of an incident, it probably does not belong on the primary on-call view. Put archaeology elsewhere.\u003C\u002Fp>\n\u003Ch3>Connect alert → investigation → incident → learning\u003C\u002Fh3>\n\u003Cp>Mature setups do one more thing tutorials often skip: close the loop.\u003C\u002Fp>\n\u003Cp>When a real alert fires, the path should be obvious:\u003C\u002Fp>\n\u003Col>\u003Cli>Alert fires with context and runbook\u003C\u002Fli>\u003Cli>On-call lands on the first-five-minutes dashboard\u003C\u002Fli>\u003Cli>If it is a real incident, declare\u002Fopen an incident channel\u003C\u002Fli>\u003Cli>Capture timeline and owners\u003C\u002Fli>\u003Cli>Afterward, look at detection and response quality (MTTD, MTTR, noisy rules, missing signals)\u003C\u002Fli>\u003C\u002Fol>\n\u003Cp>If alerts never produce learning, the creation-to-ownership gap reopens. You will keep adding rules and never retire the ones that trained people to mute the channel.\u003C\u002Fp>\n\u003Ch2>What to do this week\u003C\u002Fh2>\n\u003Cp>Most teams do not need a new alerting platform. They need an audit.\u003C\u002Fp>\n\u003Cp>For each noisy alert, ask: when this last fired, did a human take a specific action because of it? If the answer is usually no, that is not a tooling problem. It is an unmaintained list of things somebody once thought were important.\u003C\u002Fp>\n\u003Cp>Buying another tool before this audit usually just moves the noise somewhere more expensive.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Practical pass:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\u003Cli>List your top 20 noisiest alerts by fire count\u003C\u002Fli>\u003Cli>For each, check the last three fires: what action was taken?\u003C\u002Fli>\u003Cli>Delete, demote to dashboard-only, or fix the ones with no action\u003C\u002Fli>\u003Cli>Rewrite survivors so they include impact, dashboard link, and runbook\u003C\u002Fli>\u003Cli>Rebuild one service dashboard around the first-five-minutes template above\u003C\u002Fli>\u003Cli>Put a name next to alert + dashboard hygiene for that service for the next quarter\u003C\u002Fli>\u003C\u002Fol>\n\u003Cp>That is more valuable than another panel.\u003C\u002Fp>\n\u003Ch2>This is not only about alerts\u003C\u002Fh2>\n\u003Cp>Alerting is the sharpest example of the creation-to-ownership gap, not the only one. The same pattern shows up in flags nobody removes, dashboards nobody owns, and dependencies nobody audits until something breaks. AI tools accelerate creation without budgeting ownership. If your organization only celebrates shipping, you will keep optimizing the easy side of the ledger.\u003C\u002Fp>\n\u003Cp>The teams that age well treat ownership as first-class work: code, alerts, dashboards, flags, dependencies, runbooks. Not as cleanup for when the roadmap has spare room, because it never does.\u003C\u002Fp>\n\u003Ch2>The real question\u003C\u002Fh2>\n\u003Cp>Every team believes their alerting system tells the truth until they actually check. The uncomfortable audit is not “do we have enough monitoring.” Almost everyone has plenty. It is “when this last fired, did anyone actually do anything about it, or did they just make it stop.”\u003C\u002Fp>\n\u003Cp>If the honest answer is the second one more often than the first, the alerting system is not protecting anyone. It is just training your best engineers to stop listening.\u003C\u002Fp>\n\u003Cp>And the broader question behind that one is the title of this piece: now that shipping is easy, who is responsible for keeping what you shipped honest?\u003C\u002Fp>\n\u003Cblockquote>\u003Cp>How much of your alert volume right now would survive the test: did a human take a specific action because of this?\u003C\u002Fp>\u003C\u002Fblockquote>",true,{"slug":19,"title":20,"excerpt":21,"topic":8,"platform":9,"url":22,"date":23,"dateLabel":24,"year":13,"readTime":25,"cover":15,"content":26,"full":17},"the-hidden-tax-every-engineering-team-is-paying-and-doesnt-talk-about","The Hidden Tax Every Engineering Team Is Paying (And Doesn’t Talk About)","There&#x2019;s a number almost no engineering org tracks: how many collective hours their developers spend staring at a build progress bar every&#x2026; Continue reading on Medium »","https:\u002F\u002Fjainprayush9.medium.com\u002Fthe-hidden-tax-every-engineering-team-is-paying-and-doesnt-talk-about-f58fce33d365","2026-07-27T18:27:21.000Z","Jul 27, 2026","8 min","\u003Cp>There’s a number almost no engineering org tracks: how many collective hours their developers spend staring at a build progress bar every week.\u003C\u002Fp>\n\u003Cp>Not writing code. Not designing systems. Not shipping features. Just… waiting.\u003C\u002Fp>\n\u003Cp>If your team runs 30–40 builds a day, and each one takes 50 minutes instead of 15, you’re not losing 35 minutes. You’re losing 35 minutes multiplied by every engineer, every build, every day, compounding into months of lost engineering time a year. And unlike a production outage, nobody files an incident report for a slow build. It just quietly taxes your velocity forever, until someone decides to fix it.\u003C\u002Fp>\n\u003Cp>Build optimization doesn’t get the attention it deserves because it doesn’t look like a “real” engineering problem. It’s not a new feature. It’s not a scaling milestone. It’s plumbing. But plumbing determines how fast everything else in the house works.\u003C\u002Fp>\n\u003Cfigure class=\"essay-figure\">\u003Cimg src=\"\u002Fimages\u002Fessays\u002Fhidden-tax\u002Fci-cd-loop.jpg\" alt=\"CI\u002FCD is a loop — every slow stage compounds forever\" loading=\"lazy\" \u002F>\u003Cfigcaption>CI\u002FCD is a loop — every slow stage compounds forever\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\u003Ch2>The Two Costs Nobody Puts on a Slide\u003C\u002Fh2>\n\u003Cfigure class=\"essay-figure\">\u003Cimg src=\"\u002Fimages\u002Fessays\u002Fhidden-tax\u002Fcompute.png\" alt=\"Compute is the visible bill — context switching is the invisible one\" loading=\"lazy\" \u002F>\u003Cfigcaption>Compute is the visible bill — context switching is the invisible one\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\u003Ch3>1. The direct cost — compute\u003C\u002Fh3>\n\u003Cp>Every build consumes CPU, memory, and often paid CI minutes. A bloated pipeline running redundant steps, rebuilding unchanged modules, or spinning up oversized runners is literally burning money on infrastructure that produces nothing. At scale (hundreds of builds a day across a growing team), this adds up to a real, visible line item. Companies routinely discover they’re paying for 3–4x more compute than the actual work requires, simply because nobody audited the pipeline since it was first written.\u003C\u002Fp>\n\u003Ch3>2. The invisible cost — context switching\u003C\u002Fh3>\n\u003Cp>This one is more expensive, and almost nobody measures it. When a build takes 40–50+ minutes, developers don’t sit and watch it. They switch tasks, check Slack, open a different ticket, and then pay a “resumption tax” when they come back to reload the mental model of what they were doing. Research on developer flow state consistently shows that switching costs far exceed the wait time itself. A 50-minute build isn’t a 50-minute cost. It’s often far more once you account for how long it takes to get back into deep focus, and how many times that interruption happens in a day.\u003C\u002Fp>\n\u003Cp>Multiply that across a team, across a year, and slow builds become one of the largest hidden drains on engineering productivity, bigger than most teams’ entire “developer experience” budget.\u003C\u002Fp>\n\u003Ch2>Why This Gets Worse as You Scale, Not Better\u003C\u002Fh2>\n\u003Cp>Early on, builds are fast because codebases are small. Nobody notices the problem until it’s already expensive to fix. As a codebase grows:\u003C\u002Fp>\n\u003Cul>\u003Cli>Dependency graphs get tangled, and clean modularization erodes\u003C\u002Fli>\u003Cli>More tests get added without a parallelization strategy\u003C\u002Fli>\u003Cli>CI pipelines accumulate steps nobody remembers the purpose of\u003C\u002Fli>\u003Cli>Caching layers are either missing or invalidated too aggressively to help\u003C\u002Fli>\u003Cli>Generated artifacts creep into version control and become everyone’s problem\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>In a monorepo, this compounds faster. One slow path isn’t one team’s problem. It’s every team’s wait time, every PR, every day. A redundant step in a shared pipeline taxes backend, frontend, and platform engineers alike. A bad cache key or an unbalanced test shard shows up as “CI is slow” for the whole org, not one squad.\u003C\u002Fp>\n\u003Cfigure class=\"essay-figure\">\u003Cimg src=\"\u002Fimages\u002Fessays\u002Fhidden-tax\u002Fmonorepo.jpg\" alt=\"One shared pipeline — every team pays the same tax\" loading=\"lazy\" \u002F>\u003Cfigcaption>One shared pipeline — every team pays the same tax\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\u003Cp>The result is a slow, creeping decline that’s easy to rationalize away one sprint at a time (“it’s just a bit slower this quarter”) until a team wakes up to 40–50 minute builds and wonders how they got there.\u003C\u002Fp>\n\u003Cp>There’s a related trap that looks like progress: throwing more machines at it. Parallelization helps. But parallelizing work you shouldn’t be doing at all has a cost curve that goes the wrong way. You can finish earlier and spend more.\u003C\u002Fp>\n\u003Ch2>What Actually Moves the Needle\u003C\u002Fh2>\n\u003Cp>Not all optimizations are equal. A small set of principles accounts for most of the gains:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Only rebuild what changed.\u003C\u002Fstrong> Incremental builds sound obvious, but a shocking number of pipelines still rebuild the world on every commit because incremental support was never configured, or was configured once and quietly broken.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cache for correctness first, speed second.\u003C\u002Fstrong> Shared caching is where real gains show up. The hard part isn’t turning a cache on. It’s versioning it so it doesn’t lie across branches, toolchains, or parallel writers.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Parallelize the right work, then balance it.\u003C\u002Fstrong> A tangled “everything depends on everything” graph makes parallelization impossible no matter what tooling you buy. And even when you fan out, unbalanced shards leave agents idle while the slowest one owns wall-clock. “Parallel” is not the same as “balanced.”\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Delete ceremony. Decouple prove from ship.\u003C\u002Fstrong> The same lint or type-check often runs in the PR gate and again in the deploy build. Unit tests rarely need a full production packaging step. If your feedback loop waits on work that isn’t required for that job’s purpose, you’re paying a coupling tax.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Stop treating humans as a build step.\u003C\u002Fstrong> Unused dependencies, oversized artifacts, and committed generated output silently slow builds, reviews, and merges. Hygiene is unglamorous and pays for itself repeatedly.\u003C\u002Fp>\n\u003Cp>None of this is exotic. The reason it doesn’t get fixed isn’t lack of solutions. It’s lack of ownership. Build performance sits in the gap between “not really infra’s job” and “not really product engineering’s job,” so it drifts.\u003C\u002Fp>\n\u003Ch2>How to Actually Achieve It\u003C\u002Fh2>\n\u003Cp>Knowing the principles isn’t enough. Order matters, especially in a monorepo where “fix the build” can feel too big to start.\u003C\u002Fp>\n\u003Ch3>1. Instrument before you optimize\u003C\u002Fh3>\n\u003Cp>Break the pipeline into stages and measure wall-clock: dependency restore, compile\u002Fpackage, lint, unit tests (per shard), integration\u002Fe2e, artifact publish. Find the slowest stage and the widest gap between shards. Those two numbers tell you where to go first.\u003C\u002Fp>\n\u003Ch3>2. Draw the dependency graph of the pipeline\u003C\u002Fh3>\n\u003Cp>For every job, ask: does this step need to succeed for this job’s purpose? PR gates need correctness signals. Deploy builds need shippable artifacts. Local loops need the shortest path to “is my change broken?” Anything that appears twice without a reason is a deletion candidate.\u003C\u002Fp>\n\u003Ch3>3. Delete before you parallelize\u003C\u002Fh3>\n\u003Cp>This is the sequence that consistently pays off:\u003C\u002Fp>\n\u003Col>\u003Cli>Remove duplicate gates\u003C\u002Fli>\u003Cli>Decouple test from ship\u003C\u002Fli>\u003Cli>Stop committing generated artifacts\u003C\u002Fli>\u003Cli>Fix cache correctness (version by branch\u002Flockfile\u002Ftoolchain; isolate parallel writers)\u003C\u002Fli>\u003Cli>Replace the slow tool on the hot path\u003C\u002Fli>\u003Cli>Parallelize the bottleneck itself (a single-threaded step on a 16-core box is not fixed by more CI agents)\u003C\u002Fli>\u003Cli>Rebalance shards (idle agents are still cost)\u003C\u002Fli>\u003Cli>Only then buy more machines\u003C\u002Fli>\u003C\u002Fol>\n\u003Cp>If you reverse this order, you often get a faster and more expensive pipeline.\u003C\u002Fp>\n\u003Ch3>4. Ship it as a portfolio, not a hero PR\u003C\u002Fh3>\n\u003Cp>One dramatic change rarely delivers a lasting win. A sequence of small, measured improvements does. Track before\u002Fafter per stage so the org doesn’t forget and reintroduce the fat.\u003C\u002Fp>\n\u003Ch3>5. Assign an owner\u003C\u002Fh3>\n\u003Cp>Someone has to be accountable for pipeline wall-clock and CI cost the way someone owns latency SLOs. Without that, every sprint prefers a product ticket over plumbing, and the tax keeps compounding.\u003C\u002Fp>\n\u003Ch2>How I Did It in a Monorepo\u003C\u002Fh2>\n\u003Cp>I own this story from inside a large production monorepo: many modules, shared libraries, multiple CI paths, and a build that had grown the way monorepo builds usually do, by accretion.\u003C\u002Fp>\n\u003Cp>The starting point looked familiar. Packaging paths that redid far more work than they needed to. A custom asset-processing step that didn’t scale with available cores. Caches that existed but weren’t versioned or isolated safely for parallel workers. Quality checks running twice, once as a PR gate and again in the deploy path. Unit tests gated behind a full production-style build they didn’t need. Test shards that were “parallel” but uneven. Generated artifacts committed to git (on the order of ~150K+ lines), creating noisy diffs, merge conflicts, and a manual rebuild ritual.\u003C\u002Fp>\n\u003Cp>None of that is unique to one language or framework. It’s what happens when a monorepo’s shared pipeline is everyone’s infrastructure and nobody’s roadmap item.\u003C\u002Fp>\n\u003Cp>I worked the sequence above. Made the bottleneck itself parallel instead of only fanning the same slow step across more agents. Cached correctly, not just “on,” with branch-based versioning and per-worker cache directories. Deleted duplicate static analysis and decoupled unit tests from the ship build. Rebalanced uneven test shards so agents finished closer together. Moved generated artifacts into the pipeline and out of git. Replaced a CPU-heavy step on the hot path with a much faster tool. Cleaned the long tail: unused dependencies, LTS upgrades, better dependency caching, sensible test timeouts.\u003C\u002Fp>\n\u003Cp>What didn’t work was also useful. A popular “rewrite the compiler stack for speed” migration looked great on paper but failed the risk\u002Freward test under our framework constraints. Documenting why a trendy optimization doesn’t apply saves the next engineer weeks.\u003C\u002Fp>\n\u003Cp>Results on the paths I owned:\u003C\u002Fp>\n\u003Cul>\u003Cli>~10–15 minutes faster on the first major build path\u003C\u002Fli>\u003Cli>~19–20 minutes faster on the second\u003C\u002Fli>\u003Cli>~32 minutes of wall-clock saved combined\u003C\u002Fli>\u003Cli>~50% cost reduction on those builds, because we removed work, not only parallelized it\u003C\u002Fli>\u003Cli>~150K+ LOC of generated artifacts out of version control\u003C\u002Fli>\u003C\u002Ful>\n\u003Cp>The monorepo lesson that stuck with me: optimizations in a shared pipeline are force multipliers. One deleted step, one correct cache, one balanced shard, and every team that ships through that pipeline inherits the win. That’s also why ownership matters more here than in a single-service repo. If nobody owns the shared path, everybody pays.\u003C\u002Fp>\n\u003Ch2>The Business Case, Not Just the Engineering Case\u003C\u002Fh2>\n\u003Cp>If you’re trying to get this prioritized, don’t pitch it as a developer comfort issue. Pitch it as what it actually is: a cost and velocity issue.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cost:\u003C\u002Fstrong> Reduced CI compute time translates directly into lower cloud spend, often the single easiest infrastructure cost to cut with zero product risk.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Velocity:\u003C\u002Fstrong> Faster feedback loops mean faster iteration, faster bug fixes, and faster time-to-production, which compounds across every team that ships through that pipeline.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Retention:\u003C\u002Fstrong> Developer experience is a real retention lever. Engineers notice when their tools work against them, and “our build is painfully slow” is a recurring theme in exit interviews at companies that never invested here.\u003C\u002Fp>\n\u003Cp>Framed this way, build optimization stops looking like a nice-to-have cleanup task and starts looking like what it is: one of the highest-leverage, lowest-risk investments an engineering org can make. You’re not betting on an unproven feature. You’re removing friction from something every single engineer touches, every single day.\u003C\u002Fp>\n\u003Ch2>The Real Question\u003C\u002Fh2>\n\u003Cp>The question isn’t whether your build pipeline has room to improve. Almost every pipeline does, because nobody budgets time to maintain it the way they budget time to build features. The real question is whether anyone owns it.\u003C\u002Fp>\n\u003Cp>If the honest answer is “not really,” that’s usually the actual problem worth solving first, especially in a monorepo, where the tax is shared, and the ownership gap is largest.\u003C\u002Fp>\n\u003Cp>What’s the slowest part of your build pipeline right now, and has anyone actually looked at why?\u003C\u002Fp>",{"slug":28,"title":29,"excerpt":30,"topic":31,"platform":32,"url":33,"date":34,"dateLabel":35,"year":36,"readTime":37,"cover":38,"content":39,"full":17},"the-philosophy-of-cause-and-its-effect","The Philosophy of “Cause and its Effect”","We are all born into different time zones, environments, and upbringings, but there is one thing that we are all taught in common: the philosophy of good and bad. But we are never taught the philosophy of cause and effec…","life","Substack","https:\u002F\u002Fjainprayush9.substack.com\u002Fp\u002Fthe-philosophy-of-cause-and-its-effect","2025-10-03T13:04:58.000Z","Oct 3, 2025",2025,"1 min","https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!9zjc!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4581f38-c823-48e1-8651-6e24f92a1545_960x960.jpeg","\u003Cdiv class=\"captioned-image-container\">\u003Cfigure>\u003Ca class=\"image-link image2 is-viewable-img\" target=\"_blank\" href=\"https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,f_auto,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg\" data-component-name=\"Image2ToDOM\">\u003Cdiv class=\"image2-inset\">\u003Cpicture>\u003Csource type=\"image\u002Fwebp\" srcset=\"https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg 424w, https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg 848w, https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg 1272w, https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg 1456w\" sizes=\"100vw\">\u003Cimg src=\"https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg\" width=\"256\" height=\"320\" data-attrs=\"{&quot;src&quot;:&quot;https:\u002F\u002Fsubstack-post-media.s3.amazonaws.com\u002Fpublic\u002Fimages\u002Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:320,&quot;width&quot;:256,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}\" class=\"sizing-normal\" alt=\"\" srcset=\"https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg 424w, https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg 848w, https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg 1272w, https:\u002F\u002Fsubstackcdn.com\u002Fimage\u002Ffetch\u002F$s_!Gy75!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep\u002Fhttps%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7e40b9a-4983-4152-b172-b94425858658_256x320.jpeg 1456w\" sizes=\"100vw\" fetchpriority=\"high\">\u003C\u002Fpicture>\u003Cdiv class=\"image-link-expand\">\u003Cdiv class=\"pencraft pc-display-flex pc-gap-8 pc-reset\">\u003Cbutton tabindex=\"0\" type=\"button\" class=\"pencraft pc-reset pencraft icon-container restack-image\">\u003Csvg aria-hidden=\"true\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" stroke-width=\"1.5\" stroke=\"var(--color-fg-primary)\" stroke-linecap=\"round\" stroke-linejoin=\"round\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\u003Cg>\u003Cpath d=\"M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882\">\u003C\u002Fpath>\u003C\u002Fg>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003Cbutton tabindex=\"0\" type=\"button\" class=\"pencraft pc-reset pencraft icon-container view-image\">\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-maximize2 lucide-maximize-2\">\u003Cpolyline points=\"15 3 21 3 21 9\">\u003C\u002Fpolyline>\u003Cpolyline points=\"9 21 3 21 3 15\">\u003C\u002Fpolyline>\u003Cline x1=\"21\" x2=\"14\" y1=\"3\" y2=\"10\">\u003C\u002Fline>\u003Cline x1=\"3\" x2=\"10\" y1=\"21\" y2=\"14\">\u003C\u002Fline>\u003C\u002Fsvg>\u003C\u002Fbutton>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Ffigure>\u003C\u002Fdiv>\u003Cp>We are all born into different time zones, environments, and upbringings, but there is one thing that we are all taught in common: the philosophy of good and bad. But we are never taught the philosophy of cause and effect. What I feel is that all certainty in our relationships with the world rests on the acknowledgment of cause and its effect. Ours is a world of cause and its effect. Other phenomena cause every phenomenon and give rise to another phenomenon.\u003C\u002Fp>\u003Cp>Certain things happen in our lives, and we question ourselves that &#8220;Why does this happen to me? &#8220;But that specific cause is the sum-total of the circumstances whose interaction gave rise to that effect, and that will lead to another effect.\u003C\u002Fp>\u003Cp>What I feel good about the philosophy of good and bad is that when good deeds are done, they make us feel confident and empowered, and if something bad is done, it leads to regret about the thing. But the best part about the philosophy of cause and its effect is that we know we are the cause, and so have to bear its effect. That gives us the strength and power to face any problem and makes us feel confident.\u003C\u002Fp>\u003Ch3>\u003Cem>\u003Cstrong>&#8220;Shallow men believe in luck or in circumstances. Strong men believe in cause and its effect.&#8221; ~ Emerson\u003C\u002Fstrong>\u003C\u002Fem>\u003C\u002Fh3>\u003Cdiv>\u003Chr>\u003C\u002Fdiv>\u003Cp>\u003C\u002Fp>\u003Cdiv class=\"subscription-widget-wrap-editor\" data-attrs=\"{&quot;url&quot;:&quot;https:\u002F\u002Fjainprayush9.substack.com\u002Fsubscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}\" data-component-name=\"SubscribeWidgetToDOM\">\u003Cdiv class=\"subscription-widget show-subscribe\">\u003Cdiv class=\"preamble\">\u003Cp class=\"cta-caption\">Thanks for reading Prayush&#8217;s Substack! Subscribe for free to receive new posts and support my work.\u003C\u002Fp>\u003C\u002Fdiv>\u003Cform class=\"subscription-widget-subscribe\">\u003Cinput type=\"email\" class=\"email-input\" name=\"email\" placeholder=\"Type your email&#8230;\" tabindex=\"-1\">\u003Cinput type=\"submit\" class=\"button primary\" value=\"Subscribe\">\u003Cdiv class=\"fake-input-wrapper\">\u003Cdiv class=\"fake-input\">\u003C\u002Fdiv>\u003Cdiv class=\"fake-button\">\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fform>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cp>Feel free to reach out and follow me on these social media platforms &#8212; \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjainprayush9\u002F\">LinkedIn\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUClTaK5iNKLPdY9uYMq5sTEg\">YouTube\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fjainprayush9\">Twitter\u003C\u002Fa>, and \u003Ca href=\"https:\u002F\u002Fwww.instagram.com\u002Fjainprayush9\">Instagram\u003C\u002Fa>.\u003C\u002Fp>",{"slug":41,"title":42,"excerpt":43,"topic":8,"platform":9,"url":44,"date":45,"dateLabel":46,"year":36,"readTime":37,"cover":15,"content":47,"full":17},"realizations-you-have-after-5-years-of-coding","Realizations you have after 5+ years of coding","1\u002F Most problems are not technical. The code is usually the easy part. Miscommunication, unclear specs, and changing requirements cause&#x2026; Continue reading on Medium »","https:\u002F\u002Fjainprayush9.medium.com\u002Frealizations-you-have-after-5-years-of-coding-6a3d69f5ff6d","2025-06-29T10:34:13.000Z","Jun 29, 2025","\u003Cfigure class=\"essay-figure\">\u003Cimg src=\"\u002Fimages\u002Fessays\u002Frealizations\u002Fthink-code.png\" alt=\"Think, then code\" loading=\"lazy\" \u002F>\u003Cfigcaption>Think, then code\u003C\u002Ffigcaption>\u003C\u002Ffigure>\n\u003Cp>\u003Cstrong>1\u002F Most problems are not technical.\u003C\u002Fstrong>   The code is usually the easy part. Miscommunication, unclear specs, and changing requirements cause most of the delays.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>2\u002F “It works” is not the same as “it’s done.”\u003C\u002Fstrong>   Working code isn’t always reliable, maintainable, or scalable. The second version is usually better.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>3\u002F Reading code is harder than writing it.\u003C\u002Fstrong>   Clean code isn’t just for others. It’s for your future self, who won’t remember why you did what you did.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>4\u002F You’ll never know everything.\u003C\u002Fstrong>   There’s always a new framework, language, or tool. Learning how to learn is more valuable than trying to master it all. Master the ability to learn, not just the tools themselves.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>5\u002F Tests are not optional.\u003C\u002Fstrong>   Good tests are like insurance. Even small projects benefit from tests. The time you save debugging later is worth the effort upfront.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>6\u002F Technical debt is not always bad.\u003C\u002Fstrong>   Sometimes you need to ship. The key is knowing which shortcuts are reversible and which aren’t.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>7\u002F Good code is simple code.\u003C\u002Fstrong>   Complex solutions often feel smart in the moment but become painful later. Simplicity wins long-term.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>8\u002F Collaboration beats heroism.\u003C\u002Fstrong>   The best engineers aren’t the ones who work alone all night. They’re the ones who elevate the team.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>9\u002F Imposter syndrome never fully goes away.\u003C\u002Fstrong>   Even experienced devs feel it. The difference is, you learn to work through it.\u003C\u002Fp>",{"slug":49,"title":50,"excerpt":51,"topic":31,"platform":9,"url":52,"date":53,"dateLabel":54,"year":55,"readTime":37,"cover":15,"content":56,"full":57},"the-power-of-tiny-habits-how-small-changes-lead-to-big-results","The Power of Tiny Habits: How Small Changes Lead to Big Results","Introduction Continue reading on Medium »","https:\u002F\u002Fjainprayush9.medium.com\u002Fthe-power-of-tiny-habits-how-small-changes-lead-to-big-results-d22f462c9e4d","2024-08-19T09:54:41.000Z","Aug 19, 2024",2024,"\u003Cdiv class=\"medium-feed-item\">\u003Cp class=\"medium-feed-snippet\">Introduction\u003C\u002Fp>\u003Cp class=\"medium-feed-link\">\u003Ca href=\"https:\u002F\u002Fjainprayush9.medium.com\u002Fthe-power-of-tiny-habits-how-small-changes-lead-to-big-results-d22f462c9e4d?source=rss-5795ce0c67d5------2\">Continue reading on Medium »\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fdiv>",false,{"slug":59,"title":60,"excerpt":51,"topic":61,"platform":9,"url":62,"date":63,"dateLabel":64,"year":55,"readTime":37,"cover":65,"content":66,"full":57},"a-comprehensive-analysis-of-the-firstcry-brainbees-solutions-ipo-investment-insights-and-risks","A Comprehensive Analysis of the FirstCry (Brainbees Solutions) IPO: Investment Insights and Risks","investing","https:\u002F\u002Fjainprayush9.medium.com\u002Fa-comprehensive-analysis-of-the-firstcry-brainbees-solutions-ipo-investment-insights-and-risks-b5dc964d07e7","2024-08-18T12:40:04.000Z","Aug 18, 2024","https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F600\u002F0*iOG918Lo5BzHoIpw.jpg","\u003Cdiv class=\"medium-feed-item\">\u003Cp class=\"medium-feed-image\">\u003Ca href=\"https:\u002F\u002Fjainprayush9.medium.com\u002Fa-comprehensive-analysis-of-the-firstcry-brainbees-solutions-ipo-investment-insights-and-risks-b5dc964d07e7?source=rss-5795ce0c67d5------2\">\u003Cimg src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F600\u002F0*iOG918Lo5BzHoIpw.jpg\" width=\"600\">\u003C\u002Fa>\u003C\u002Fp>\u003Cp class=\"medium-feed-snippet\">Introduction\u003C\u002Fp>\u003Cp class=\"medium-feed-link\">\u003Ca href=\"https:\u002F\u002Fjainprayush9.medium.com\u002Fa-comprehensive-analysis-of-the-firstcry-brainbees-solutions-ipo-investment-insights-and-risks-b5dc964d07e7?source=rss-5795ce0c67d5------2\">Continue reading on Medium »\u003C\u002Fa>\u003C\u002Fp>\u003C\u002Fdiv>",{"slug":68,"title":69,"excerpt":70,"topic":8,"platform":9,"url":71,"date":72,"dateLabel":73,"year":55,"readTime":74,"cover":75,"content":76,"full":17},"demystifying-git-your-beginners-guide-to-version-control-collaboration-and-code-management","Demystifying Git: Your Beginner’s Guide to Version Control, Collaboration, and Code Management","Introduction : In the world of software development, managing code efficiently is crucial. Whether you’re working on a solo project or collaborating with a team, keeping track of changes, coordinating updates, and mainta…","https:\u002F\u002Fjainprayush9.medium.com\u002Fdemystifying-git-your-beginners-guide-to-version-control-collaboration-and-code-management-04676fbbfada","2024-05-13T14:27:54.000Z","May 13, 2024","3 min","https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F800\u002F0*2JmybDZfrOcRabcS.png","\u003Cp>\u003Cstrong>Introduction\u003C\u002Fstrong>:\u003Cbr>In the world of software development, managing code efficiently is crucial. Whether you’re working on a solo project or collaborating with a team, keeping track of changes, coordinating updates, and maintaining a clear version history is essential. This is where Git comes into play. In this article, we’ll explore what Git is, its benefits, the difference between Git and GitHub, how to install it, and the basic commands you need to know, all explained in an easy-to-understand manner.\u003C\u002Fp>\u003Cfigure>\u003Cimg alt=\"\" src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F800\u002F0*2JmybDZfrOcRabcS.png\" \u002F>\u003C\u002Ffigure>\u003Cp>\u003Cstrong>What is Git?\u003C\u002Fstrong>\u003Cbr>Git is a distributed version control system designed to track changes in code during software development. It allows developers to work on projects simultaneously, maintaining a complete history of revisions. Git operates locally on your computer, enabling you to commit changes, create branches, merge code, and revert to previous versions seamlessly.\u003C\u002Fp>\u003Cp>\u003Cstrong>Benefits of Git:\u003C\u002Fstrong>\u003Cbr>1. Version Control: Git enables you to keep track of changes made to your code over time. You can review, compare, and revert to any previous version, ensuring project stability and accountability.\u003Cbr>2. Collaboration: Git facilitates collaborative development by allowing multiple developers to work on the same project concurrently. It helps manage conflicts, merge contributions, and streamline teamwork.\u003Cbr>3. Backup and Recovery: With Git, your code is not only stored locally but also on a remote server (like GitHub), providing a secure backup. In case of data loss or system failure, you can easily restore your project to its latest state.\u003C\u002Fp>\u003Cp>Difference between Git and GitHub:\u003Cbr>While Git is the version control system itself, GitHub is a web-based platform that hosts Git repositories. Git operates locally on your computer, managing version control tasks, whereas GitHub serves as a remote repository hosting service, enabling you to store, share, and collaborate on projects over the internet. In essence, Git is the tool you use on your computer, while GitHub is the platform where you store and share your Git projects.\u003C\u002Fp>\u003Cp>\u003Cstrong>How to Install Git:\u003C\u002Fstrong>\u003Cbr>Installing Git is a straightforward process:\u003Cbr>1. Windows:\u003Cbr> — Download the Git installer from the official website and run the executable file.\u003Cbr> — Follow the installation prompts, choosing the default settings unless you have specific preferences.\u003Cbr> — Once installed, open Git Bash to access the Git command-line interface.\u003Cbr>2. macOS:\u003Cbr> — Git comes pre-installed on macOS. To check if Git is installed, open Terminal and type `git — version`.\u003Cbr> — If Git is not installed, you can install it using Homebrew by running `brew install git`.\u003Cbr>3. Linux:\u003Cbr> — Use your distribution’s package manager to install Git. For example, on Ubuntu, you can run `sudo apt-get install git`.\u003Cbr> — Alternatively, you can download and compile the source code from the Git website.\u003C\u002Fp>\u003Cp>\u003Cstrong>Basic Git Commands:\u003C\u002Fstrong>\u003Cbr>1. git init: Initialize a new Git repository in the current directory.\u003Cbr>2. git add \\&lt;file\\&gt;: Add file(s) to the staging area to be included in the next commit.\u003Cbr>3. git commit -m “\\&lt;message\\&gt;”: Commit staged changes to the repository with a descriptive message.\u003Cbr>4. git status: View the status of files in the working directory and staging area.\u003Cbr>5. git branch: List, create, or delete branches in the repository.\u003Cbr>6. git checkout \\&lt;branch\\&gt;: Switch to a different branch.\u003Cbr>7. git merge \\&lt;branch\\&gt;: Merge changes from a specified branch into the current branch.\u003Cbr>8. git push: Upload local repository changes to a remote repository (like GitHub).\u003Cbr>9. git pull: Fetch changes from a remote repository and integrate them into the local repository.\u003C\u002Fp>\u003Cp>\u003Cstrong>Conclusion\u003C\u002Fstrong>:\u003Cbr>In conclusion, Git is a powerful tool for version control, collaboration, and code management in software development. By understanding its benefits, installing it on your system, and mastering basic commands, you can streamline your workflow, improve productivity, and contribute effectively to projects. Whether you’re a beginner or an experienced developer, Git is an invaluable asset in your toolkit, empowering you to write better code, work smarter, and achieve your goals.\u003C\u002Fp>\u003Cp>By following this guide, you’ll be well-equipped to embark on your Git journey with confidence and proficiency. Happy coding!\u003C\u002Fp>\u003Cp>Resources to read more:\u003C\u002Fp>\u003Col>\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.atlassian.com\u002Fgit\u002Ftutorials\u002Fwhat-is-version-control\">https:\u002F\u002Fwww.atlassian.com\u002Fgit\u002Ftutorials\u002Fwhat-is-version-control\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fdeveloper.ibm.com\u002Ftutorials\u002Fd-learn-workings-git\u002F\">https:\u002F\u002Fdeveloper.ibm.com\u002Ftutorials\u002Fd-learn-workings-git\u002F\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.geeksforgeeks.org\u002Fgit-tutorial\u002F\">https:\u002F\u002Fwww.geeksforgeeks.org\u002Fgit-tutorial\u002F\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>",{"slug":78,"title":79,"excerpt":80,"topic":8,"platform":9,"url":81,"date":82,"dateLabel":83,"year":84,"readTime":85,"cover":86,"content":87,"full":17},"crafting-a-flawless-software-release","Crafting a Flawless Software Release","In the world of software development, taking a project from the Product Requirement Document (PRD) to a successful release should involve a well-structured and comprehensive approach but it’s not the case in most organiz…","https:\u002F\u002Fjainprayush9.medium.com\u002Fcrafting-a-flawless-software-release-e297e5520c16","2023-11-01T08:58:09.000Z","Nov 1, 2023",2023,"5 min","https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1024\u002F0*5I2qxmaY-ZNW3-ym.png","\u003Cp>In the world of software development, taking a project from the Product Requirement Document (PRD) to a successful release should involve a well-structured and comprehensive approach but it’s not the case in most organizations. This process, often fraught with challenges, necessitates a coordinated effort to bridge the gap between the Product Manager, Designer, Developers, Copywriter, and Quality Assurance (QA) team.\u003C\u002Fp>\u003Cfigure>\u003Cimg alt=\"\" src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1024\u002F0*5I2qxmaY-ZNW3-ym.png\" \u002F>\u003C\u002Ffigure>\u003Cp>I’ve organized the steps and provided a detailed breakdown of each stage in the process:\u003C\u002Fp>\u003Cp>\u003Cstrong>1. Kick-Off Calls:\u003C\u002Fstrong>\u003Cbr> — Meeting between all the key stakeholders before the product development process begins\u003Cbr> — Objective, scope, requirements, timelines, and milestones should be finalized in this call for smooth development later on.\u003C\u002Fp>\u003Cp>\u003Cstrong>2. PRD Creation and Review:\u003C\u002Fstrong>\u003Cbr> — Product Manager creates the PRD.\u003Cbr> — PRD is reviewed by the relevant stakeholders, and changes may be suggested by the team.\u003Cbr> — Finalize the PRD, ensuring that it reflects the agreed-upon functionality.\u003Cbr> — PRD with wireframe should come out of this step before starting on Design.\u003C\u002Fp>\u003Cp>\u003Cstrong>3. Design Phase:\u003C\u002Fstrong>\u003Cbr> — Designers start working on the user interface (UI) and user experience (UX) design.\u003Cbr> — Any changes or additions to functionality during this phase should be communicated and should be updated in the PRD as well.\u003Cbr> — Design freeze: Once the design is finalized, make sure that changes are communicated to all team members.\u003C\u002Fp>\u003Cp>\u003Cstrong>4. Test Case Preparation:\u003C\u002Fstrong>\u003Cbr> — QA (Quality Assurance) begins writing test cases based on the design and PRD.\u003Cbr> — Test cases are reviewed by the Product Manager to ensure comprehensive coverage.\u003Cbr> — Share the finalized test cases with developers to consider while coding.\u003Cbr> — QA test cases cannot be frozen, but most of the test cases should be covered during this phase.\u003C\u002Fp>\u003Cp>\u003Cstrong>4. Development and Design Handoff:\u003C\u002Fstrong>\u003Cbr> — Designers provide a handoff to developers, including all design assets and guidelines.\u003Cbr> — Developers review the design to ensure it’s technically feasible and make any necessary clarifications.\u003Cbr> — Developers should estimate the timelines and keep them with them for their own tracking.\u003Cbr>— Copywriters can work on content during this phase.\u003C\u002Fp>\u003Cp>\u003Cstrong>5. Development and Testing:\u003C\u002Fstrong>\u003Cbr> — Developers start coding based on the PRD, design, and test cases.\u003Cbr> — Developers update copy and content as needed.\u003Cbr> — Developers test against the QA test cases to identify and fix issues, which is known as DevTesting.\u003Cbr> — Share the developed feature with QA for the first round of testing.\u003C\u002Fp>\u003Cp>\u003Cstrong>6. First Round of QA Testing:\u003C\u002Fstrong>\u003Cbr> — QA tests the feature and logs any defects.\u003Cbr> — QA should test the test cases that he has created earlier and map the newly created test cases separately as they should have come up in the first go (Might look aggressive approach on QA, but in the long run, it will just reduce the defects in the team)\u003Cbr> — QA should focus on qualitative testing rather than quantitative testing. For eg, Copy update as 5 places should be 1 defect rather than 5 defects.\u003Cbr> — QA should map test cases at the end of the day to some category.\u003Cbr> — If defects exceed a predefined threshold (e.g., 10), QA communicates with developers to address issues and stop the testing immediately as there is no sense in these tests if it’s full of defects (Saves the time of QA). This shouldn’t come up if the developer has done the proper DevTesting.\u003Cbr> — Developers make necessary fixes and retest.\u003C\u002Fp>\u003Cp>\u003Cstrong>7. Second Round of QA Testing:\u003C\u002Fstrong>\u003Cbr> — QA performs a second round of testing to ensure all issues reported in the first round have been resolved.\u003Cbr> — QA verifies that the changes made to fix defects did not introduce new issues.\u003C\u002Fp>\u003Cp>\u003Cstrong>8. QA Sign-Off:\u003C\u002Fstrong>\u003Cbr> — QA provides sign-off on the feature, indicating it meets the specified requirements and is ready for further testing.\u003C\u002Fp>\u003Cp>\u003Cstrong>9. User Acceptance Testing (UAT):\u003C\u002Fstrong>\u003Cbr> — The feature is subjected to two rounds of UAT to validate its functionality and usability.\u003Cbr> — UAT may involve end-users, stakeholders, or a designated UAT team.\u003C\u002Fp>\u003Cp>\u003Cstrong>10. Team Testing and Feedback:\u003C\u002Fstrong>\u003Cbr> — The feature is made available for your entire squad to test and provide feedback.\u003Cbr> — Any suggested changes or improvements are considered and, if feasible, implemented.\u003C\u002Fp>\u003Cp>\u003Cstrong>11. Release to Main Channels\u002FProduction:\u003C\u002Fstrong>\u003Cbr> — After successful testing, including PRD alignment, design, QA, UAT, and team testing, the feature is deemed ready for production.\u003Cbr> — Prepare the feature for release to the main channels or production environments.\u003Cbr> — Feature Flag and Account Mapper should be kept handy in case the release needs to be reverted.\u003C\u002Fp>\u003Cp>\u003Cstrong>11. Release Plan:\u003C\u002Fstrong>\u003Cbr> — Keep everything ready for release, then do a private beta release with very few customers. Address all the bugs raised. \u003Cbr>—The reason is if there are some major bugs\u002Fsecurity issues, then other customers won’t face issues and reputation will also not get affected.\u003Cbr> — Then open it for all the customers.\u003C\u002Fp>\u003Cp>\u003Cstrong>12. Continuous Monitoring and Feedback:\u003C\u002Fstrong>\u003Cbr> — After release, continue to monitor the feature in production.\u003Cbr> — Collect user feedback, address issues, and make improvements as needed through an iterative process.\u003C\u002Fp>\u003Cp>The process cannot be followed completely as we are humans and not machines and we try to bypass the process as human beings, \u003Cstrong>but everything should be documented at the place it’s required to be when someone refers back to this.\u003C\u002Fstrong> Main goal of the process is to improve the productivity of everyone and things get freeze so the quality of work will also come up.\u003C\u002Fp>\u003Cp>Please feel free to drop in comments on how can we make this better.\u003C\u002Fp>\u003Cul>\u003Cli>If you enjoyed this article, please give it a clap and leave a comment. Your support means a lot to me!\u003Cbr>\u003Cstrong>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —\u003C\u002Fstrong>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Feel free to reach out and follow me on these social media platforms — \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjainprayush9\u002F\">LinkedIn\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@jainprayush9\">YouTube\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fjainprayush9\">Twitter\u003C\u002Fa>, and \u003Ca href=\"https:\u002F\u002Fwww.instagram.com\u002Fjainprayush9\">Instagram\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>\u003Cstrong>Or Let’s connect via your favorite medium:\u003Cbr>\u003C\u002Fstrong>\u003Cem>FlowCode: \u003C\u002Fem>\u003Ca href=\"https:\u002F\u002Fwww.flowcode.com\u002Fpage\u002Fjainprayush9\">\u003Cem>https:\u002F\u002Fwww.flowcode.com\u002Fpage\u002Fjainprayush9\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fp>",{"slug":89,"title":90,"excerpt":91,"topic":31,"platform":9,"url":92,"date":93,"dateLabel":94,"year":84,"readTime":95,"cover":96,"content":97,"full":17},"the-paryushan-a-jain-festival-of-spiritual-reflection-forgiveness-and-purification","The Paryushan: A Jain Festival of Spiritual Reflection, Forgiveness, and Purification","Michami Dukkdam Paryushan is the most important annual religious observance for Jains. It is a time for spiritual reflection, purification, and forgiveness. Paryushan is celebrated for eight days by the Shwetambara sect…","https:\u002F\u002Fjainprayush9.medium.com\u002Fthe-paryushan-a-jain-festival-of-spiritual-reflection-forgiveness-and-purification-e4dcd47d1316","2023-09-22T12:27:13.000Z","Sep 22, 2023","2 min","https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1024\u002F1*IqeJCCC2zedocDl6wFrNcg.png","\u003Cfigure>\u003Cimg alt=\"\" src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1024\u002F1*IqeJCCC2zedocDl6wFrNcg.png\" \u002F>\u003Cfigcaption>Michami Dukkdam\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Paryushan is the most important annual religious observance for Jains. It is a time for spiritual reflection, purification, and forgiveness. Paryushan is celebrated for eight days by the Shwetambara sect of Jainism and for ten days by the Digambara sect. It is typically held in the month of Bhadrapada (August-September) in the Hindu calendar.\u003C\u002Fp>\u003Cp>\u003Cstrong>Why do Jains celebrate Paryushan?\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Jains celebrate Paryushan to mark the end of the four-month rainy season, during which time monks and nuns refrain from traveling. It is also a time to reflect on the teachings of Mahavira, the founder of Jainism, and to strive to follow his path.\u003C\u002Fp>\u003Cp>\u003Cstrong>What do Jains do during Paryushan?\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>During Paryushan, Jains engage in a variety of spiritual practices, including:\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>Fasting\u003C\u002Fstrong>: Many Jains fast for all or part of the eight or ten days of Paryushan. Fasting is seen as a way to purify the body and mind and to focus on spiritual matters.\u003C\u002Fli>\u003Cli>\u003Cstrong>Meditation\u003C\u002Fstrong>: Jains meditate regularly during Paryushan to cultivate inner peace and self-awareness.\u003C\u002Fli>\u003Cli>\u003Cstrong>Prayer\u003C\u002Fstrong>: Jains chant prayers and mantras during Paryushan to express their devotion to Mahavira and to the Jain faith.\u003C\u002Fli>\u003Cli>\u003Cstrong>Study of scripture:\u003C\u002Fstrong> Jains study the Jain scriptures during Paryushan to learn more about their religion and its teachings.\u003C\u002Fli>\u003Cli>\u003Cstrong>Forgiveness\u003C\u002Fstrong>: Jains seek forgiveness on the last day of Paryushan, also known as Samwatsari from others for any harm they may have caused, and they forgive those who have harmed them.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cstrong>Why are Jain rituals considered scientifically proven like eating before sunset?\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Many Jain rituals have a scientific basis. For example, the Jain practice of eating before sunset is beneficial for digestion and overall health. When we eat early in the day, our bodies have more time to digest the food before we go to bed. This can help to improve sleep quality and reduce the risk of digestive problems.\u003C\u002Fp>\u003Cp>Another example is the Jain practice of fasting. Fasting can help to detoxify the body and promote weight loss. It can also boost the immune system and reduce the risk of chronic diseases such as heart disease, stroke, and cancer.\u003C\u002Fp>\u003Cp>\u003Cstrong>Conclusion\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Paryushan is a special time for Jains to focus on their spiritual development. By engaging in practices such as fasting, meditation, and prayer, Jains strive to purify their minds and bodies and to live in accordance with the Jain teachings. Many Jain rituals also have a scientific basis and can be beneficial for overall health and well-being.\u003C\u002Fp>\u003Cp>\u003Cstrong>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Feel free to reach out and follow me on these social media platforms — \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjainprayush9\u002F\">LinkedIn\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@jainprayush9\">YouTube\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fjainprayush9\">Twitter\u003C\u002Fa>, and \u003Ca href=\"https:\u002F\u002Fwww.instagram.com\u002Fjainprayush9\">Instagram\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>\u003Cstrong>Or Let’s connect via your favorite medium:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cblockquote>\u003Cem>FlowCode: \u003C\u002Fem>\u003Ca href=\"https:\u002F\u002Fwww.flowcode.com\u002Fpage\u002Fjainprayush9\">\u003Cem>https:\u002F\u002Fwww.flowcode.com\u002Fpage\u002Fjainprayush9\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fblockquote>",{"slug":99,"title":100,"excerpt":101,"topic":102,"platform":9,"url":103,"date":104,"dateLabel":105,"year":84,"readTime":95,"cover":106,"content":107,"full":17},"senior-software-engineer-cloudera-interview-experience-2022","Senior Software Engineer, Cloudera Interview Experience, India 2022","Introduction : Interviewing for a Senior Software Engineer position at Cloudera with just 2 years of internship experience was a bold move. In this blog, I’ll recount my experience, from applying through a LinkedIn post…","career","https:\u002F\u002Fjainprayush9.medium.com\u002Fsenior-software-engineer-cloudera-interview-experience-2022-edb89d4da355","2023-09-01T17:33:48.000Z","Sep 1, 2023","https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F280\u002F1*z30wxd3muNp1nZtXpo15BA.png","\u003Cp>\u003Cstrong>Introduction\u003C\u002Fstrong>:\u003C\u002Fp>\u003Cp>Interviewing for a Senior Software Engineer position at Cloudera with just 2 years of internship experience was a bold move. In this blog, I’ll recount my experience, from applying through a LinkedIn post to facing two interviewers, and the valuable lessons I took away from the process.\u003C\u002Fp>\u003Cfigure>\u003Cimg alt=\"\" src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F280\u002F1*z30wxd3muNp1nZtXpo15BA.png\" \u002F>\u003C\u002Ffigure>\u003Cp>\u003Cstrong>The Start:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>It all began with a chance encounter on LinkedIn, where I stumbled upon a recruiter’s post about Cloudera’s Senior Software Engineer openings. Although they required 2–3 years of experience, I decided to take a shot, given my 2 years of internship experience with startups. After promptly submitting my details, I received a callback, and an interview was scheduled.\u003C\u002Fp>\u003Cp>\u003Cstrong>Round 1: A Surprise Beginning\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>My first interview began with a casual chat, which put me at ease. The interviewer opened my resume and noted that I appeared to be a fresher. However, I emphasized my startup experience and the importance of my skillset over the years. To my relief, he was convinced and we moved on.\u003C\u002Fp>\u003Cp>We discussed my college life, the projects I tackled during that time, and why I chose the specific startups for my internships. This provided a platform to showcase my passion for software development and my thoughtful career choices.\u003C\u002Fp>\u003Cp>Transitioning to technical questions, we started with Java fundamentals. My confidence grew as I answered questions, and the interviewer gradually increased the complexity. He presented me with several LeetCode coding questions, starting with an easy one and progressing to medium-level challenges. I was determined to prove myself and managed to solve all the coding questions, even if some solutions were only partially correct.\u003C\u002Fp>\u003Cp>As the interview concluded, I mustered the courage to ask for feedback — a valuable insight for personal growth. Impressed with my performance, the interviewer assured me that he would recommend me for the next round. This moment filled me with relief and satisfaction.\u003C\u002Fp>\u003Cp>\u003Cstrong>Round 2: An Unexpected Turn\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>The second round introduced me to a senior interviewer who, upon reviewing my resume, couldn’t overlook my “fresher” status. Despite my attempts to convince him otherwise, he decided to end the interview abruptly.\u003C\u002Fp>\u003Cp>\u003Cstrong>The Takeaway:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>While the outcome wasn’t what I had hoped for, this experience left me with a significant lesson. I learned the importance of seizing opportunities and pushing boundaries. Although I didn’t secure the position, I gained a deeper understanding of my capabilities and tested my skills in a challenging environment.\u003C\u002Fp>\u003Cp>\u003Cstrong>Conclusion:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>My Cloudera interview journey, from applying as a fresher to almost securing a Senior Software Engineer role, was filled with surprises and lessons. It reinforced the importance of taking chances and viewing rejection as a stepping stone to growth. Each interview, regardless of the outcome, contributes to personal and career development, making us better versions of ourselves.\u003C\u002Fp>\u003Cul>\u003Cli>If you enjoyed this article, please give it a clap and leave a comment. Your support means a lot to me!\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cstrong>— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Feel free to reach out and follow me on these social media platforms — \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjainprayush9\u002F\">LinkedIn\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002F@jainprayush9\">YouTube\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fjainprayush9\">Twitter\u003C\u002Fa>, and \u003Ca href=\"https:\u002F\u002Fwww.instagram.com\u002Fjainprayush9\">Instagram\u003C\u002Fa>.\u003C\u002Fp>\u003Cp>\u003Cstrong>Or Let’s connect via your favorite medium:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cblockquote>\u003Cem>FlowCode: \u003C\u002Fem>\u003Ca href=\"https:\u002F\u002Fwww.flowcode.com\u002Fpage\u002Fjainprayush9\">\u003Cem>https:\u002F\u002Fwww.flowcode.com\u002Fpage\u002Fjainprayush9\u003C\u002Fem>\u003C\u002Fa>\u003C\u002Fblockquote>",{"slug":109,"title":110,"excerpt":111,"topic":61,"platform":9,"url":112,"date":113,"dateLabel":114,"year":84,"readTime":74,"cover":115,"content":116,"full":17},"the-inner-workings-of-media-agencies-revenue-streams-and-editorial-independence","The Inner Workings of Media Agencies: Revenue Streams and Editorial Independence","Media agencies are an integral part of modern society, serving as a primary source of information, entertainment, and education. However, the way they operate and generate revenue can greatly influence their editorial in…","https:\u002F\u002Fjainprayush9.medium.com\u002Fthe-inner-workings-of-media-agencies-revenue-streams-and-editorial-independence-2a1d525f37bb","2023-08-25T15:42:07.000Z","Aug 25, 2023","https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F967\u002F1*pc9GhfpOtYI9wIB9hurRUg.png","\u003Cfigure>\u003Cimg alt=\"\" src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F967\u002F1*pc9GhfpOtYI9wIB9hurRUg.png\" \u002F>\u003C\u002Ffigure>\u003Cp>Media agencies are an integral part of modern society, serving as a primary source of information, entertainment, and education. However, the way they operate and generate revenue can greatly influence their editorial independence, especially in countries like India, where the relationship between media and the government is complex. In this article, we’ll delve into how media agencies generate revenue and why some media outlets may hesitate to criticize the government due to financial dependencies.\u003C\u002Fp>\u003Cp>\u003Cstrong>How Media Agencies Generate Revenue:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Media agencies generate revenue through various sources, including:\u003C\u002Fp>\u003Cp>1. \u003Cstrong>Advertising Revenue:\u003C\u002Fstrong> This is one of the most significant income sources for media agencies worldwide. Companies pay to display their products and services in print, broadcast, and online media. Advertisers are attracted to platforms with a large and engaged audience.\u003C\u002Fp>\u003Cp>2. \u003Cstrong>Subscription Revenue\u003C\u002Fstrong>: Subscription-based models are common for newspapers, magazines, and digital news outlets. Subscribers pay a regular fee to access content. This revenue stream can provide stability and editorial independence, as it’s less reliant on advertisers.\u003C\u002Fp>\u003Cp>3. \u003Cstrong>Sponsored Content\u003C\u002Fstrong>: Media agencies may produce content sponsored by companies. This content is usually marked as “sponsored” or “advertorial.” It allows media outlets to monetize their platforms without relying solely on traditional advertising.\u003C\u002Fp>\u003Cp>4. \u003Cstrong>Events and Conferences\u003C\u002Fstrong>: Media companies often host events, conferences, and seminars. They sell tickets to attendees and secure sponsorships, generating revenue while providing networking opportunities and thought leadership.\u003C\u002Fp>\u003Cp>5. \u003Cstrong>Syndication and Licensing\u003C\u002Fstrong>: Some media outlets syndicate their content to other publications or license their content to be used in other contexts, such as textbooks or documentaries.\u003C\u002Fp>\u003Cp>6. \u003Cstrong>Donations and Grants\u003C\u002Fstrong>: In some cases, media organizations receive financial support from philanthropic foundations or grants for investigative journalism projects. This source of income can enhance journalistic freedom.\u003C\u002Fp>\u003Cp>\u003Cstrong>The Indian Media Landscape\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>In India, the media landscape is unique due to its heavy reliance on advertising revenue, particularly from government sources. Here’s why this financial dependency can influence editorial decisions:\u003C\u002Fp>\u003Cp>1. \u003Cstrong>Government Advertising\u003C\u002Fstrong>: The government in India is a significant advertiser. It runs numerous schemes and initiatives and spends a substantial amount on advertising them. Media outlets that criticize the government risk losing this advertising revenue, which can be financially crippling.\u003C\u002Fp>\u003Cp>2. \u003Cstrong>Corporate Pressure\u003C\u002Fstrong>: Private companies may also be hesitant to advertise with media outlets critical of the government. This is because they might fear government retaliation, such as regulatory scrutiny or unfavorable policies.\u003C\u002Fp>\u003Cp>3. \u003Cstrong>Editorial Independence Concerns\u003C\u002Fstrong>: Given these financial dependencies, some Indian media agencies may self-censor or avoid criticism of the government to protect their revenue streams. This can undermine their role as watchdogs and impartial sources of information.\u003C\u002Fp>\u003Cp>\u003Cstrong>International Comparisons\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>In contrast, media outlets in some other countries are less reliant on government and corporate advertising due to their diversified revenue streams, including subscriptions and philanthropic support. This financial independence can give them greater editorial freedom.\u003C\u002Fp>\u003Cp>\u003Cstrong>Conclusion\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Media agencies are essential for informing and engaging the public, but their financial dependencies can influence their editorial decisions. In India, where government advertising is a significant revenue source, media outlets may be cautious about criticizing the government to protect their income. To ensure a healthy democracy, it’s crucial to support diverse revenue models that promote editorial independence, such as subscriptions and philanthropic funding. This will help media agencies fulfill their vital role as impartial sources of information and watchdogs of government actions.\u003C\u002Fp>",{"slug":118,"title":119,"excerpt":120,"topic":102,"platform":9,"url":121,"date":122,"dateLabel":123,"year":84,"readTime":124,"cover":15,"content":15,"full":57},"airtel-interview","Backend Engineer, Airtel — Interview Experience","An honest account of an interview that didn't end in an offer, and the things it taught me about hiring processes and communication.","https:\u002F\u002Fjainprayush9.medium.com\u002Fbackend-engineer-airtel-interview-experience-india-2022-e78a60af973c","2023-08-23T00:00:00.000Z","Aug 23, 2023","7 min",{"slug":126,"title":127,"excerpt":128,"topic":102,"platform":9,"url":129,"date":130,"dateLabel":131,"year":84,"readTime":25,"cover":15,"content":15,"full":57},"clevertap-internship","CleverTap Internship Experience","From final-year student at KIIT to shipping code at CleverTap — what the internship was actually like, and how it turned into a full-time role.","https:\u002F\u002Fjainprayush9.medium.com\u002Fclevertap-internship-experience-india-2022-1db96f8805d4","2023-08-12T00:00:00.000Z","Aug 12, 2023",[133,143,153,162,171,178,185,193,199,206,214,222,229,236,242,251,259,266,273,280,285,290,299,306,313,320,328,335,342,351,358,367],{"id":134,"title":135,"description":136,"url":137,"thumbnail":138,"date":139,"dateLabel":140,"views":141,"viewsLabel":142,"category":31},"dpje3HwSH3s","My Life at 25: No Filters, No Edits","","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dpje3HwSH3s","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002Fdpje3HwSH3s\u002Fhqdefault.jpg","2025-12-11T09:49:55.940Z","Dec 11, 2025",383,"383 views",{"id":144,"title":145,"description":136,"url":146,"thumbnail":147,"date":148,"dateLabel":149,"views":150,"viewsLabel":151,"category":152},"XWD_T0op2vA","Mumbai: Where Some Live Dreams & Some Just Survive","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=XWD_T0op2vA","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FXWD_T0op2vA\u002Fhqdefault.jpg","2026-04-10T09:49:55.939Z","Apr 10, 2026",41,"41 views","mumbai",{"id":154,"title":155,"description":136,"url":156,"thumbnail":157,"date":158,"dateLabel":149,"views":159,"viewsLabel":160,"category":161},"nfn5S4Y7oQA","ChessTV #06: Can I Reclaim My Chess Rating?","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=nfn5S4Y7oQA","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002Fnfn5S4Y7oQA\u002Fhqdefault.jpg","2026-04-10T09:49:55.940Z",102,"102 views","chess",{"id":163,"title":164,"description":136,"url":165,"thumbnail":166,"date":167,"dateLabel":168,"views":169,"viewsLabel":170,"category":31},"FU1buhuKZZQ","Throwback to endless giggles! 🫶🥹","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=FU1buhuKZZQ","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FFU1buhuKZZQ\u002Fhqdefault.jpg","2025-08-08T09:49:55.941Z","Aug 8, 2025",48,"48 views",{"id":172,"title":173,"description":136,"url":174,"thumbnail":175,"date":167,"dateLabel":168,"views":176,"viewsLabel":177,"category":31},"Mbd2e-eYJBs","Reel dedicated to my sister \u002F best friend. ❤️🥹 #sister #behan #happy #family","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Mbd2e-eYJBs","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FMbd2e-eYJBs\u002Fhqdefault.jpg",650,"650 views",{"id":179,"title":180,"description":136,"url":181,"thumbnail":182,"date":167,"dateLabel":168,"views":183,"viewsLabel":184,"category":31},"_4pxYBVN4N8","A Sky Full of Stars in Ahmedabad 🌌 | Coldplay Live Magic ✨🎶 #coldplay #ahmedabad","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_4pxYBVN4N8","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002F_4pxYBVN4N8\u002Fhqdefault.jpg",656,"656 views",{"id":186,"title":187,"description":136,"url":188,"thumbnail":189,"date":190,"dateLabel":168,"views":191,"viewsLabel":192,"category":31},"zZNj0-CQFQk","Paradise in Ahmedabad 🌏🎤 | Coldplay Concert Highlights 🎶 #coldplay","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=zZNj0-CQFQk","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FzZNj0-CQFQk\u002Fhqdefault.jpg","2025-08-08T09:49:55.942Z",795,"795 views",{"id":194,"title":180,"description":136,"url":195,"thumbnail":196,"date":190,"dateLabel":168,"views":197,"viewsLabel":198,"category":31},"OWgRAR373kA","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=OWgRAR373kA","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FOWgRAR373kA\u002Fhqdefault.jpg",647,"647 views",{"id":200,"title":201,"description":136,"url":202,"thumbnail":203,"date":190,"dateLabel":168,"views":204,"viewsLabel":205,"category":161},"pMoZ6rTfsSc","ChessTV, Game 05: Restarting My Journey","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=pMoZ6rTfsSc","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FpMoZ6rTfsSc\u002Fhqdefault.jpg",5,"5 views",{"id":207,"title":208,"description":136,"url":209,"thumbnail":210,"date":190,"dateLabel":168,"views":211,"viewsLabel":212,"category":213},"yFj3vPW4_fo","LeetCode, 01: Two Sum","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=yFj3vPW4_fo","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FyFj3vPW4_fo\u002Fhqdefault.jpg",55,"55 views","coding",{"id":215,"title":216,"description":136,"url":217,"thumbnail":218,"date":219,"dateLabel":168,"views":220,"viewsLabel":221,"category":161},"WQ9DCLKUaJk","ChessTV, Game 04: Playing Chess so people find me cool and intelligent","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=WQ9DCLKUaJk","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FWQ9DCLKUaJk\u002Fhqdefault.jpg","2025-08-08T09:49:55.943Z",12,"12 views",{"id":223,"title":224,"description":136,"url":225,"thumbnail":226,"date":219,"dateLabel":168,"views":227,"viewsLabel":228,"category":152},"CxP-GcyTS4M","POV: You are in Bombai Nagariyan. 🏙️🫣","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=CxP-GcyTS4M","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FCxP-GcyTS4M\u002Fhqdefault.jpg",54,"54 views",{"id":230,"title":231,"description":136,"url":232,"thumbnail":233,"date":219,"dateLabel":168,"views":234,"viewsLabel":235,"category":31},"bg30SKkF8jk","if you ever feel like something is missing in your life, come to Udaipur. 💕🕊️🥹 #Udaipur #LakeCity","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=bg30SKkF8jk","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002Fbg30SKkF8jk\u002Fhqdefault.jpg",86,"86 views",{"id":237,"title":238,"description":136,"url":239,"thumbnail":240,"date":241,"dateLabel":168,"views":204,"viewsLabel":205,"category":161},"o1Q06dtoteI","ChessTV, Game 03: How Not To play Chess","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=o1Q06dtoteI","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002Fo1Q06dtoteI\u002Fhqdefault.jpg","2025-08-08T09:49:55.944Z",{"id":243,"title":244,"description":136,"url":245,"thumbnail":246,"date":247,"dateLabel":248,"views":249,"viewsLabel":250,"category":31},"KtXXc8Jdbho","Grah Pravesh Invitation Video","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KtXXc8Jdbho","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FKtXXc8Jdbho\u002Fhqdefault.jpg","2024-08-08T09:49:55.944Z","Aug 8, 2024",130,"130 views",{"id":252,"title":253,"description":136,"url":254,"thumbnail":255,"date":256,"dateLabel":248,"views":257,"viewsLabel":258,"category":152},"AeykAteZvR0","Juhu Beach, Mumbai","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=AeykAteZvR0","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FAeykAteZvR0\u002Fhqdefault.jpg","2024-08-08T09:49:55.945Z",30,"30 views",{"id":260,"title":261,"description":136,"url":262,"thumbnail":263,"date":256,"dateLabel":248,"views":264,"viewsLabel":265,"category":31},"KH2B1xgU9x0","Trek 02, Kareri Lake Trek: Trekking Paradise in Himachal","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=KH2B1xgU9x0","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FKH2B1xgU9x0\u002Fhqdefault.jpg",136,"136 views",{"id":267,"title":268,"description":136,"url":269,"thumbnail":270,"date":256,"dateLabel":248,"views":271,"viewsLabel":272,"category":152},"jV2LaDJj7yU","POV: You are in Mumbai. ❤️ #mumbai #reels #shorts #shortvideo #rain #mumbaidiaries","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jV2LaDJj7yU","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FjV2LaDJj7yU\u002Fhqdefault.jpg",434,"434 views",{"id":274,"title":275,"description":136,"url":276,"thumbnail":277,"date":256,"dateLabel":248,"views":278,"viewsLabel":279,"category":152},"Q7ebDJYp-1k","Trek to Garbett Point #trekking #trek #mumbai #weekend #selfcare","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Q7ebDJYp-1k","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FQ7ebDJYp-1k\u002Fhqdefault.jpg",324,"324 views",{"id":281,"title":282,"description":136,"url":283,"thumbnail":284,"date":256,"dateLabel":248,"views":227,"viewsLabel":228,"category":152},"RcGUP2SkWzg","Into the woods! #trekking #trek #mumbai #Garbett","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=RcGUP2SkWzg","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FRcGUP2SkWzg\u002Fhqdefault.jpg",{"id":286,"title":287,"description":136,"url":288,"thumbnail":289,"date":256,"dateLabel":248,"views":169,"viewsLabel":170,"category":152},"0R_9eH4svlM","Trek 01, Garbett Point Trek: A Day Hike With Amazing Views Near Mumbai","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0R_9eH4svlM","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002F0R_9eH4svlM\u002Fhqdefault.jpg",{"id":291,"title":292,"description":136,"url":293,"thumbnail":294,"date":295,"dateLabel":296,"views":297,"viewsLabel":298,"category":152},"kd2MJid5T2w","Bombay Monsoons are to live for!! ❤️🫶⛈️ #mumbai #monsoon #mumbaidiaries #marinedrive","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=kd2MJid5T2w","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002Fkd2MJid5T2w\u002Fhqdefault.jpg","2023-08-09T09:49:55.945Z","Aug 9, 2023",561,"561 views",{"id":300,"title":301,"description":136,"url":302,"thumbnail":303,"date":295,"dateLabel":296,"views":304,"viewsLabel":305,"category":152},"QvxC-l3IF3k","Magical Mornings at Marine Drive: Embrace the Tranquility #mumbai #marinedrive #trending #video","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=QvxC-l3IF3k","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FQvxC-l3IF3k\u002Fhqdefault.jpg",268,"268 views",{"id":307,"title":308,"description":136,"url":309,"thumbnail":310,"date":295,"dateLabel":296,"views":311,"viewsLabel":312,"category":152},"w6qxD5RVsgI","Mesmerizing #mumbai : Witness the Breathtaking Sunset at #marinedrive !","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=w6qxD5RVsgI","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002Fw6qxD5RVsgI\u002Fhqdefault.jpg",117,"117 views",{"id":314,"title":315,"description":136,"url":316,"thumbnail":317,"date":295,"dateLabel":296,"views":318,"viewsLabel":319,"category":161},"jM6eAwY2cF4","ChessTV, Game 02: Checkmate! Opponent quits as I dominate the Chessboard","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jM6eAwY2cF4","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FjM6eAwY2cF4\u002Fhqdefault.jpg",51,"51 views",{"id":321,"title":322,"description":136,"url":323,"thumbnail":324,"date":325,"dateLabel":296,"views":326,"viewsLabel":327,"category":161},"jDoFBjzndmI","ChessTV, Game 01: The Agony of Defeat and Lessons Learned","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jDoFBjzndmI","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FjDoFBjzndmI\u002Fhqdefault.jpg","2023-08-09T09:49:55.946Z",29,"29 views",{"id":329,"title":330,"description":136,"url":331,"thumbnail":332,"date":325,"dateLabel":296,"views":333,"viewsLabel":334,"category":31},"fZtxvCBGuIo","The Philosophy of Cause and its Effect","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=fZtxvCBGuIo","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FfZtxvCBGuIo\u002Fhqdefault.jpg",44,"44 views",{"id":336,"title":337,"description":136,"url":338,"thumbnail":339,"date":325,"dateLabel":296,"views":340,"viewsLabel":341,"category":31},"8w9e1_gbyPE","Lady Sangeet Dance Video || Mom - Dad Duo || Cousin Wedding 2022","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8w9e1_gbyPE","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002F8w9e1_gbyPE\u002Fhqdefault.jpg",3900,"3.9K views",{"id":343,"title":344,"description":136,"url":345,"thumbnail":346,"date":347,"dateLabel":348,"views":349,"viewsLabel":350,"category":213},"-ivhSFGyGuI","Video Resume | HighRadius | Winter Internship 2021","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=-ivhSFGyGuI","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002F-ivhSFGyGuI\u002Fhqdefault.jpg","2022-08-09T09:49:55.946Z","Aug 9, 2022",2900,"2.9K views",{"id":352,"title":353,"description":136,"url":354,"thumbnail":355,"date":347,"dateLabel":348,"views":356,"viewsLabel":357,"category":213},"CZXqEZX_V94","Campus Placement | A Data Mining Solution to Predict Campus Placement | GUCON 2021 | Research Paper","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=CZXqEZX_V94","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FCZXqEZX_V94\u002Fhqdefault.jpg",91,"91 views",{"id":359,"title":360,"description":136,"url":361,"thumbnail":362,"date":363,"dateLabel":364,"views":365,"viewsLabel":366,"category":213},"jPMxuAxcpAY","CodeChef || December Challenge 2020 Division 2 - DEC20B || Even Pair Sum-EVENPSUM","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jPMxuAxcpAY","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FjPMxuAxcpAY\u002Fhqdefault.jpg","2021-08-09T09:49:55.946Z","Aug 9, 2021",357,"357 views",{"id":368,"title":369,"description":136,"url":370,"thumbnail":371,"date":363,"dateLabel":364,"views":372,"viewsLabel":373,"category":213},"PY-jAABcgbU","Codechef || December Challenge 2020 Division 2 - DEC20B || Vaccine Production-VACCINE1","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=PY-jAABcgbU","https:\u002F\u002Fi.ytimg.com\u002Fvi\u002FPY-jAABcgbU\u002Fhqdefault.jpg",279,"279 views",1786186185353]