🐍 Python | 🤖 AI/ML | Software Engineer | Practical roadmaps • Hands-on tutorials | Freelance & collabs open | DM 📩

Pune, India
Joined February 2019
This weeks goals - 4x long form articles - Post short content daily - 10k steps 5x a day - 0 order-ins Lets see how many I can hit....
14
1
1
38
4,397
Big big kudos to my buddy @techyoutbe for the launch of his latest product PostDeck. As a content creator, this is an awesome utility which streamlines writing, style and planning. Give it a try !!!
🚀 PostDesk is LIVE! I built a tool to solve a problem I face as a tech creator. Write. Style. Plan. Design. Your social posts, all in one tab. Built for creators and engineers who share tech content. Less tool switching. More creating. Try it out 👇 🔗 postdesk.techfusionist.com/ Would love your feedback! ❤️
1
110
Why do some apps support playback speed on mobile but not on desktop? 👀
5
8
529
Vibe Coding vs Software Engineering ✅️
The Popular app VS the better alternative
1
1
6
465
What should a parser learn after it gets a messy page wrong? OXR's answer, a first among document parsers, is RSI during post-training: review the output with a VLM, detect disagreement across runs, cluster the causes, then generate data for another training round. That's how a 1.3B model ends up atop olmOCR-Bench, OmniDocBench, DocParsingBench and open-source speed (101s vs DeepSeek-OCR-2's 161.1s, one RTX PRO 6000). I'd start evaluating it on handwritten notes mixed with tables. Its layout model swaps out without touching recognition or reading order. github.com/SoMarkAI/OXR
🤝 Paid partnership
Beyond OCR. Meet OXR. Only 1.3B. Open source. #1 on olmOCR-Bench, OmniDocBench & DocParsingBench🏆 #1 in parsing speed among open-source models⚡ RSI-powered. A first in document parsing. Turn documents into Agent-Friendly data. If OXR helps, give us a star on GitHub! 🌟
1
257
Redis speeds up your backend. CDN cuts the distance for global users.
CDN vs Cache. Both help make applications faster. But what exactly is the difference? Does a CDN also use caching to deliver content faster? And the interesting one: If we already have Redis caching, why do we still need a CDN?
2
534
Production Debugging Playbook, Part 3: Debugging CPU, Memory & Resource Saturation High CPU usage doesn't always mean you need more replicas. High memory usage doesn't always mean you have a memory leak. The goal is to identify what's saturated, understand why, and apply the right fix. 1. Spot the symptoms Look at CPU and memory usage, pod restarts, OOMKilled events, request latency, and error rates. Check whether the problem affects one pod, an entire service, or the Kubernetes node. 2. Identify the affected component Use metrics to find the overloaded pod or node. If one worker pod is at 95% CPU while other pods remain healthy, investigate that workload before scaling the entire cluster. 3. Gather evidence Useful Kubernetes commands: • "kubectl top pods -n prod" • "kubectl describe pod -n prod" • "kubectl logs -n prod --previous" Check CPU throttling, memory limits, restart reasons, application logs, and resource requests. Compare the affected pod with healthy instances. 4. Find the root cause • High CPU: inefficient code, expensive loops, increased traffic, or CPU throttling. • High memory: memory leaks, large in-memory objects, or excessive caching. • Thread/connection exhaustion: blocked workers, saturated connection pools, or slow dependencies. • Node pressure: insufficient node capacity, resource limits, or noisy neighbours. Remember: CPU usage measures consumption, while CPU throttling indicates the container is being restricted by its CPU limit. They are related, but not the same. 5. Apply a targeted fix Optimize code, fix memory leaks, tune connection pools, or address slow dependencies. Scale horizontally when additional replicas can distribute the workload. Adjust CPU or memory limits only after checking actual usage and capacity. Raising a memory limit may delay OOMKills, but it won't fix a leak. 6. Verify the result After the fix, compare CPU, memory, throttling, restarts, latency, and error rates against the baseline. Confirm the improvement persists under representative traffic and that the bottleneck hasn't shifted elsewhere. The debugging sequence: Observe → Isolate → Investigate → Diagnose → Fix → Verify Don't scale blindly. Use evidence to distinguish an application bottleneck from a container limit or a node-capacity problem. Next: Debugging Database Bottlenecks.
Production Debugging Playbook, Part 2: Debugging 5xx Errors A spike in 5xx errors is a symptom, not a root cause. The service returning the error may not be the service causing it. Here's how to investigate. 1. Scope the impact • Error rate vs. total request volume • Affected endpoints, regions, instances, and versions • Recent deployments or configuration changes • Changes in latency, traffic, and resource usage 2. Trace the failing request Follow the request across the gateway, application, and downstream dependencies. Example: Product Service returns 502, but the trace shows it spent most of its time waiting for Pricing Service. The failure surfaces in Product Service; the underlying problem may be Pricing Service. 3. Interpret the status code • 500: Application exception or processing failure • 502: Invalid or unexpected upstream response • 503: Service unavailable, overloaded, or unhealthy • 504: Upstream response timeout These are clues, not root-cause diagnoses. The component generating the response determines what the code tells you. 4. Correlate the three signals • Metrics: Which error rates, latencies, or saturation levels changed? • Traces: Where did the request fail or stall? • Logs: What exception, timeout, or connection failure occurred? Use trace/request IDs to connect evidence across services. 5. Validate the hypothesis If Pricing Service is suspected, check its latency, error rate, logs, and connection pools. Compare the incident timeline with deployments and configuration changes. Also investigate retries. They can amplify load on an already struggling dependency. Follow the evidence beyond the immediate timeout to find the underlying cause. 6. Fix and verify Roll back faulty deployments, fix application errors, address resource exhaustion, or correct dependency/network issues. Adjust timeouts and retries only when the evidence supports it. Then verify recovery using the same metrics that exposed the incident. Confirm errors and latency have normalized without creating new problems. The debugging sequence: Detect → Scope → Trace → Correlate → Validate → Fix → Verify Don't assume the service returning a 5xx is the root cause. Follow the request, gather evidence, and prove the fix worked. Next: Debugging CPU, Memory & Resource Saturation.
9
21
594
It was good while it lasted @bot
We’re opening a research preview of Claude Duet, a new app where Claude works as a proactive agent. It comes to you with what needs your attention, completes tasks you ask of it, keeps working when you step away, and checks with you before it acts on your behalf.
3
1
11
778
When you have 0 achievements in life but you need to put something in your LinkedIn bio
7
1
22
1,225
You can save 100% by eating at home
Restaurants will raise menu prices by 10-15% over the next eight to 10 days.
6
34
1,033
Why havent Google thought of this btw ?
Today, @agentmail has processed over 1 Billion emails. A year ago, we processed under 20 million. So we figured it was time for AgentMail to grow up a little too :)
5
696
The X algorithm works perfectly sometimes
2
1
9
722
A good salary, a familiar team, and a predictable routine are valuable. There is nothing wrong with wanting stability, especially when other people depend on you. But comfort can quietly turn into inertia. You stop learning because the job doesn't demand it, postpone exploring opportunities because the salary is good, and ignore the fact that you've been doing the same work for years. The danger isn't staying in one company for a long time. It's staying without making a conscious decision about why you're there. You might choose to stay for financial security, family priorities, a great manager, or meaningful work. Those are all valid reasons. Just make sure you're choosing the trade-off rather than letting it choose you. Stability is valuable when it's a choice, not when it becomes the reason you're afraid to move.
2
26
945
Como probably have ended it for Carrick
You push code, your colleague pushes code. You get merge conflicts. You don't resolve it, your colleague doesn't resolve it. Your ego wins, their ego wins. Then who loses? Manchester United.
6
939
You push code, your colleague pushes code. You get merge conflicts. You don't resolve it, your colleague doesn't resolve it. Your ego wins, their ego wins. Then who loses? Manchester United.
3
1
7
1,573
Please just stop @ManUtd
1
131
Jaydeep retweeted
Today we’re announcing two new compute types on Shadeform: CPUs, which are available today, and Apple Silicon, which is planned to release later this quarter 👇
5
17
1
83
5,214
Should your primary key be a simple integer or a 128-bit identifier? The right choice depends on how your application creates data, serves requests, and grows across systems.
7
4
37
1,462
Production Debugging Playbook, Part 2: Debugging 5xx Errors A spike in 5xx errors is a symptom, not a root cause. The service returning the error may not be the service causing it. Here's how to investigate. 1. Scope the impact • Error rate vs. total request volume • Affected endpoints, regions, instances, and versions • Recent deployments or configuration changes • Changes in latency, traffic, and resource usage 2. Trace the failing request Follow the request across the gateway, application, and downstream dependencies. Example: Product Service returns 502, but the trace shows it spent most of its time waiting for Pricing Service. The failure surfaces in Product Service; the underlying problem may be Pricing Service. 3. Interpret the status code • 500: Application exception or processing failure • 502: Invalid or unexpected upstream response • 503: Service unavailable, overloaded, or unhealthy • 504: Upstream response timeout These are clues, not root-cause diagnoses. The component generating the response determines what the code tells you. 4. Correlate the three signals • Metrics: Which error rates, latencies, or saturation levels changed? • Traces: Where did the request fail or stall? • Logs: What exception, timeout, or connection failure occurred? Use trace/request IDs to connect evidence across services. 5. Validate the hypothesis If Pricing Service is suspected, check its latency, error rate, logs, and connection pools. Compare the incident timeline with deployments and configuration changes. Also investigate retries. They can amplify load on an already struggling dependency. Follow the evidence beyond the immediate timeout to find the underlying cause. 6. Fix and verify Roll back faulty deployments, fix application errors, address resource exhaustion, or correct dependency/network issues. Adjust timeouts and retries only when the evidence supports it. Then verify recovery using the same metrics that exposed the incident. Confirm errors and latency have normalized without creating new problems. The debugging sequence: Detect → Scope → Trace → Correlate → Validate → Fix → Verify Don't assume the service returning a 5xx is the root cause. Follow the request, gather evidence, and prove the fix worked. Next: Debugging CPU, Memory & Resource Saturation.
🎉 New Series Production Debugging Playbook Part 1/6 : Debugging High Latency Your API is responding slowly. Before increasing CPU, adding database indexes, or scaling your service, find out where the time is actually going. Here's how I'd approach this as a production engineer. 1. Start with latency percentiles Average latency can hide serious problems. If most requests take 100 ms but a small percentage take 2 seconds, the average might still look acceptable while some users experience a painfully slow application. • p50 (median): 50% of requests complete within this time. It represents the typical request. • p95: 95% of requests complete within this time. The slowest 5% take longer. • p99: 99% of requests complete within this time. The slowest 1% take longer. Compare these percentiles over time and break them down by endpoint, region, service version, or customer segment where relevant. If p50 stays stable but p99 spikes, investigate what makes a subset of requests slow. If all percentiles rise together, look for a broader bottleneck. 2. Trace a slow request Metrics tell you that latency increased. Distributed traces help you understand where the time is spent. Imagine a request passing through an API gateway, user service, product service, and database. A distributed trace breaks the request into spans, showing the duration and relationships between operations. Look for the slowest spans, repeated downstream calls, retries, and time spent waiting for dependencies. One important detail: don't simply add every span duration together. Parent spans often include the time spent in their child spans, and parallel operations can overlap. Use the trace timeline to understand the actual critical path. 3. Identify the real bottleneck Once you know which component is slow, investigate the reason. • Application: Check CPU saturation, thread or worker exhaustion, garbage collection, and slow external calls. • Database: Separate query execution time from connection acquisition waits. Inspect slow queries, execution plans, locks, and connection pool utilization. • Network or dependencies: Check DNS resolution, connection establishment, timeouts, retries, and downstream service latency. • Caching: Inspect cache hit rates, misses, eviction patterns, and cache response times. Don't assume that a slow database span means the SQL query itself is slow. The application might be waiting for a connection, a lock, or a response across the network. Use logs for request-specific context, metrics to understand system behavior, and traces to connect the stages. Correlate them using timestamps, trace IDs, and relevant deployment events. 4. Validate your hypothesis before changing anything Suppose p99 latency jumps from 300 ms to 2.4 seconds after a deployment, but the error rate remains stable. A trace shows that the request spends most of its extra time waiting for a database connection. Pool metrics confirm that all connections are occupied, while query execution time remains normal. Now you have evidence for connection pool exhaustion, not a slow SQL query. Investigate why the pool is exhausted, apply a targeted fix, and compare the same signals before and after. Verify that latency recovers without increasing database load or introducing new errors. The principle to remember: Observe the symptom. Locate the delay. Test the hypothesis. Verify the fix. Senior engineers don't debug by trying every possible solution. They use evidence to eliminate possibilities until the root cause becomes clear. Next in the series: Debugging 5xx Errors & Failed Requests.
13
12
1
58
2,059
I need to be a bit more consistent with the visual aspect rations.
1
65