How preprocessing saves tons of time for ETA calculation | Contraction Hierarchies Hey folks! Have you ever wondered how apps like Uber always seem to find the fastest way to get you from point A to point B? Today, we're going to uncover a bit of that magic by talking about something called “Contraction Hierarchies”. Imagine a Giant City Map Think about a huge city map. There are roads everywhere, connecting different places. If you wanted to find the quickest route from your home to school, you'd have to look at all these roads and figure out which ones to take. Sounds like a lot of work, right? What Are Contraction Hierarchies? Now, let’s sprinkle a little magic on this map. Contraction Hierarchies (CH) are like a super-smart way of shrinking this giant map while still keeping all the best shortcuts. Here’s how it works: 1. Simplifying the Map: First, we start by removing the least important roads. Imagine you’re taking out all the tiny alleyways and leaving only the main roads. This makes the map less cluttered. 2. Adding Shortcuts: For every road we remove, we add some "shortcuts" to make sure we can still get everywhere quickly. It's like having secret passages that only show up when you need them. 3. Building Levels: We then rank the roads. Main highways get a higher rank than small streets. This ranking helps the algorithm to decide which roads to prioritize when finding the best route. How Does Uber Use This? Uber uses something very similar to find the quickest route for drivers and passengers. Here’s a simple breakdown: - Fast Decisions: By using Contraction Hierarchies, Uber’s system can make lightning-fast decisions about which route to take. It doesn't have to look at every single road—just the important ones and the secret shortcuts. - Handling Traffic: Traffic is like a surprise obstacle in a game. Uber can quickly recalculate routes if there’s a traffic jam because it has a simplified map with lots of hidden shortcuts ready to use. Why It’s So Cool Contraction Hierarchies are like having a superhero map that always knows the best way to go. They make sure you spend less time stuck in traffic and more time enjoying your pizza. So next time you hop in an Uber and zoom through the city, you’ll know a little secret about the magic behind the scenes. It's all about making smart choices fast, just like a pro gamer! Stay curious and keep exploring! #ContractionHierarchies #uber #pathfinder #etacalculation #GPS #GoogleMaps #RoutePlanning #NodeContraction #Pathfinding #Navigation #SystemDesign #AlgorithmOptimization #ComputerScience #TechInnovation #EfficientRouting
Abinesh B’s Post
More Relevant Posts
-
Starting a software business doesn’t require a boatload of $ or sophisticated tech. It just requires relentless focus on a problem to solve & a shit ton of scrappiness. When I started Flieber, I wanted to give retail companies automated inventory optimization in real time. To do that, I could have built a sophisticated piece of technology that required three full-stack engineers & $500,000. Instead, I invested my time & some mean excel skills. For the first 6 months of operations, I was literally the company’s only algorithm. Updating all customer data manually. Every day. In real time. That beautiful online interface? Just me on the backend simply uploading a spreadsheet. It’s what enabled me to grow revenue to over $400k in less than 6 months. And then raise a $2.4M seed round in 2019. So don’t tell me you don’t have enough $ to start your business.
To view or add a comment, sign in
-
Our product teams recently discussed balancing new features and tech debt. It's a tough balance, but here are some strategies I’ve found helpful 👇 Introducing new features increases the surface area of the codebase, which in turn increases the likelihood of bugs, regressions, and instability. This grows over time as more features are built. But new features are fun to build! Clients and customers love the additional functionality. And it’s natural to want more. But there is a cost to the continual pipeline of new product features: tech debt. So how can we manage this? *Pair tech debt work with new feature development.* By strategically identifying areas in the codebase to introduce new functionality while removing old features, you can improve the codebase strategically. This approach may require allocating more time than originally planned, dedicating additional time to ensure tech debt is addressed alongside new features. *Solve the core problem of a new feature quickly to create margin.* Here is a common scenario: We can take the short path with the solution, or we can take the longer path that includes a more abstract and nicely designed architecture. Go for the shorter path first, and then focus the additional time on refactoring and addressing technical debt. If refactoring work can’t be completed in time, move it to the cool-down or bet on it in a future cycle. *Address tech debt proactively by dedicating time in the development cycle.* Communicate openly with stakeholders about the importance of managing tech debt to prevent slowdowns in feature development, regressions, and bugs that could impact customer satisfaction. Tech debt doesn’t get better with age. It’s like a variable interest rate — unpredictable and grows costlier over time. Find strategies to pay it down during development to keep your product humming along. #productmanagement #technology
To view or add a comment, sign in
-
Fixing bugs before launch is nothing compared to post-release hurdles. Here are 3 main issues you need to address: 1. High traffic Your product needs to handle a surge in users without compromising performance. A server crash during peak hours? Users lose access to your product, resulting in lost revenue. 2. Updates Post-launch user feedback may prompt you to add new features. The catch? It doubles work for your tech team. Devs have to keep both versions compiled with the backend until users update your product on their devices. 3. Data migration You may need to transfer user data from a third-party server to yours, for example. Your dev team has to ensure reliable backup processes, transform database state, and protect user data. To avoid turbulence, consider scalability from the get-go and double-check your scaling plans before the launch. Once your 'product plane' takes off with users onboard, you'll need to fix issues on the fly. #medevelopstudio #processes #performance #launch #database #techteam
To view or add a comment, sign in
-
Product Advisor | Helping companies get out of the weeds and think 10x by building a better roadmap.
Feature bloat kills companies. Teams can spend upwards of 9 months on a feature. Some lead to nothing. And they also kill velocity. So solving bloat means solving velocity. This means solving what you build. Here’s a simpler way to think of features: Good, Better, Best. Picture your entire feature. Then slice it into what’s good enough, what’s better, and what’s the absolute best. Let’s play this out with something like customer billing: - Good: Just start accepting payments via Stripe. - Better: Add on the ability to view past invoices. - Best: Fully integrate with customer accounting systems. Do you build it all? No. Start with good and draw a line. Keep it simple and improve as you go. Three things will happen: 1. You ship faster 2. You deliver more value 3. Your business grows quicker Velocity can be a competitive advantage.
To view or add a comment, sign in
-
Every time you complete an Uber ride, an invoice gets delivered to your mailbox. Wouldn't it be interesting to know the tech behind this workflow? So I was going through this blog post, which documents the migration of Uber's invoice generation service from a legacy to a next-gen one. I love how super easy the team has made to understand the migration project from ideation to implementation along with the impact it created. It also talks about the different approaches the team thought about before finalising on one and the rationale behind it. Here are some of the benefits the team achieved due to the improved design: ⚡100% configuration and validation by non engineers which would help in launching into new markets ⚡Reduced nodes for computation thereby reduced operational costs (by ~97%) ⚡Reduced mysql cluster size ⚡Reduced engineering support time from 60% to 20% ⚡New business models and use cases can fit into this solution (because of unified data model mentioned in the blog). I highly encourage you to go through the article for a more detailed understanding. https://lnkd.in/dMpPHmHu #systemdesign #engineering #trafficshadowing #development #uber
To view or add a comment, sign in
-
Just finished reading an insightful paper - Developer Productivity for Humans, Part 4: Build Latency, Predictability, and Developer Productivity, by Google researchers Ciera Jaspan and Collin Green. Here are some key takeaways: 1. 🚀 Faster builds are always better - they reduce waiting times and promote fewer task switches, both of which enhance productivity. 2. ⏱️ There is no magic number for how fast builds need to be, for developers to stay productive. 3. 🔄 Predictability is paramount. You can improve the predictability of build latency, either by making builds take similar lengths of time or by informing developers of how long they are expected to take. 4. 📈 Even modest improvements in build latency, such as a 15% speed increase, can positively affect developer productivity. Yet, these benefits aren't immediate; developers need time to adapt to these changes. A general approach to improving developer productivity: if you can’t make a process faster or easier, at least make it more predictable so that developers can optimize around it. #DeveloperExperience #DeveloperProductivity #DeveloperProductivityEngineering
To view or add a comment, sign in
-
Consider the following scenario: You’ve discovered a new software. 💻 You’re excited because you see it's potential to revolutionize the way you work. It’s an incredible tool that addresses a major pain point in your daily routine, and it seems like the perfect solution to enhance your company's processes.🚀 However, it's not on your boss's radar at the moment. You've diligently done your research, comparing all the options to pinpoint this standout solution. However, before you can tap into its benefits, you need to get your boss on board—and maybe even their boss. So, how do you sway them? Dive into 5 strategies to persuade your manager to allocate more budget for new tech in the slides below!
To view or add a comment, sign in
-
Senior Software Engineer @ Instacart | Certified Scrum Master | Princeton '14 | Author | Speaker | Leader
Story points will make or break your software team. Why is that? *It is the only way for development teams to truly hold moral authority over outside stakeholders.* When a last minute request comes in to include "just one more small, but important feature" before release, the development team needs to have the ability to negotiate as professionals. The conversation should go something like this: Stakeholder: We need to make sure that users can pay with Stripe in addition to PayPal before our hard release deadline next Tuesday. Product Owner: Okay Bob, but our development budget is already at capacity, so we'll have to reduce scope elsewhere if you want that feature by Tuesday. Stakeholder: I'm the CEO of the company, and I say I want it done by Tuesday *alongside* the other features, just make it happen. Product Owner: Right, I'm doing that right now by informing you the only way to "make it happen" is to reduce some of the existing scope, in the same way that the only way to make your $10 grocery budget buy more groceries after you've already put $10 worth of items in your shopping cart is to first remove an item. Stakeholder: That analogy sounds like a stretch. People can always work harder under pressure. Product Owner: Not this team, they can't work any harder under pressure. Stakeholder: And why is that? Product Owner: Because they're always giving their best. These aren't a bunch of monkeys flinging code on a wall, these are professionals like civil engineers, chemical engineers, and biomedical engineers. Before we start work on a task we estimate how much budget it requires by using a metric known as Story points-- an arithmetic mean of each developers estimate of how complex a piece of functionality is. It's not a perfect metric, but it becomes perfect over time because we track the data sprint over sprint so we can make definitive, statistically sound statements about when a given total of points is "highly likely" to be delivered on time, "likely to be delivered on time", "unlikely to be delivered on time", and "highly unlikely" to be delivered on time. So if you want Stripe by Tuesday, without reducing scope in our sprint backlog, you're not arguing with me, you're arguing with math and logic itself. Stakeholder: Point taken. Let's talk about how we can minimally reduce scope elsewhere to make this happen. Thank goodness everything is pointed so we really know that the reduction step really is minimal. 👍 or 👎 ?
To view or add a comment, sign in
-
We’ve transformed a codebase with almost no code coverage to 50% in just 10 months. Do you want to know how? Check one of our latest articles, packed with actionable insights, aligning technical fixes with business goals 👉 https://lnkd.in/duNzY44h. Michał Szopa, senior software engineer at Brainhub, wrote all about the finer details. ❗️Caution! The article dives deep into the challenges, like high coupling, poor test coverage, and lack of project documentation! #techdebt #usecase #softwareengineers
Solving the Tech Debt Puzzle: Strategies That Boost Business
brainhub.eu
To view or add a comment, sign in
-
Building B2B digital products in weeks, not months I Experts in no code, code & AI I Bubble.io, Weweb, Xano, React, Node.JS, Django
No-code isn't just for those startup tech companies and MVPs. It's a game-changer for small local businesses too. Imagine your favorite bakery around the corner. They could set up an online ordering system in no time with no-code, making those Saturday morning pastry runs even smoother. And that gym you've been missing? They could easily manage virtual classes without breaking the bank on some high-end software. But beyond these examples, no-code can help local businesses tackle daily challenges. Struggling with inventory management? There's a no-code solution for that. Want to gather customer feedback but don't know how? No-code can set you up with a simple survey tool. Need to streamline employee scheduling? Yep, no-code's got your back. No-code allows businesses to streamline these things without taking on huge additional costs. It's about addressing those daily operational headaches and staying competitive.
To view or add a comment, sign in