Muhammad Maaz (@1devmaaz) header
Muhammad Maaz (@1devmaaz) profile picture

Developer, passionate about AI and startups. Sharing my journey and more high-quality content

Portfolio
Joined April 2021
๐—”๐—น๐—ฝ๐—ต๐—ฎ-๐—•๐—ฒ๐˜๐—ฎ ๐—ฃ๐—ฟ๐˜‚๐—ป๐—ถ๐—ป๐—ด โ€” ๐— ๐—ถ๐—ป๐—ถ๐—บ๐—ฎ๐˜…, ๐—ฏ๐˜‚๐˜ ๐—ฆ๐—บ๐—ฎ๐—ฟ๐˜๐—ฒ๐—ฟ ๐Ÿง  Minimax explores possible future moves to find the best decision. The problem? โš ๏ธ Game trees get huge. โ– ๐—”๐—น๐—ฝ๐—ต๐—ฎ-๐—•๐—ฒ๐˜๐—ฎ ๐—ฃ๐—ฟ๐˜‚๐—ป๐—ถ๐—ป๐—ด โ†ณ It skips branches that cannot possibly change the final decision. โ— ฮฑ (alpha) โ†’ best value MAX can already guarantee. โ— ฮฒ (beta) โ†’ best value MIN can already guarantee. โžข When ฮฑ โ‰ฅ ฮฒ, stop exploring that branch. That's the pruning. โ– ๐—ฆ๐—ถ๐—บ๐—ฝ๐—น๐—ฒ ๐—ฒ๐˜…๐—ฎ๐—บ๐—ฝ๐—น๐—ฒ โ†ณ Suppose MAX is already found: Left branch โ†’ 3 So: โ†’ ฮฑ = 3 Now MIN explores another branch: โ†’ Right branch โ†’ 2 MIN can only make this branch 2 or worse. โ˜ž MAX already has 3. So why explore the remaining moves? โ†ณ Prune. โœ‚๏ธ โ– ๐—ง๐—ต๐—ฒ ๐—ถ๐—บ๐—ฝ๐—ผ๐—ฟ๐˜๐—ฎ๐—ป๐˜ ๐—ฝ๐—ฎ๐—ฟ๐˜ Alpha-beta pruning gives the same answer as minimax. It simply avoids computations that don't matter. โžค Better move ordering โ†’ more pruning. โžค Worst case โ†’ still exponential. โ˜… Minimax: Explore the possibilities. โ˜… Alpha-Beta: Explore only the possibilities that matter. โ˜› Would you be able to identify where pruning occurs in a game tree?
1
4
94
๐Ÿฆ€ Rust: The language that makes memory safety feel like a superpower ๐Ÿš€
1
1
4
177
Just 6 more to hit 1600 followers ๐Ÿš€
1
1
2
116
๐—ง๐˜„๐—ผ ๐—ฃ๐—ผ๐—ถ๐—ป๐˜๐—ฒ๐—ฟ๐˜€ ๐— ๐—ฎ๐—ฑ๐—ฒ ๐—ฆ๐—ถ๐—บ๐—ฝ๐—น๐—ฒ ๐—ถ๐—ป ๐—ฆ๐—ฒ๐—ฐ๐—ผ๐—ป๐—ฑ๐˜€ ๐Ÿš€ โ†ณ Two Pointers is one of the most useful DSA patterns for efficiently solving array and string problems. โ†ณ Instead of checking every possible combination, you use two pointers that move through the data intelligently. โ– ๐—›๐—ผ๐˜„ ๐—ถ๐˜ ๐˜„๐—ผ๐—ฟ๐—ธ๐˜€ โ— One pointer starts from the left. โ— The other starts from the right. โžข Both pointers move based on the current values. โ– ๐—ฆ๐—ถ๐—บ๐—ฝ๐—น๐—ฒ ๐—ฒ๐˜…๐—ฎ๐—บ๐—ฝ๐—น๐—ฒ Find two numbers that add up to 10: Sorted array โ†’ [1, 3, 5, 7, 9] โ˜œ Left = 1 โ˜› Right = 9 1 + 9 = 10 โ˜… Found it immediately. โžข If the sum is too small โ†’ move the left pointer forward. โžข If the sum is too large โ†’ move the right pointer backward. โžข Keep moving until the pointers meet. โš  This works because the array is sorted โ€” that's what tells you which direction to move. Unsorted array = no shortcut. โ– ๐—ช๐—ต๐˜† ๐—ถ๐˜ ๐—บ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐˜€ โ†ณ A brute-force solution may check every possible pair. Two Pointers can often reduce the problem to O(n) time. โ˜… ๐—ง๐—ต๐—ฒ ๐—บ๐—ฒ๐—ป๐˜๐—ฎ๐—น ๐—บ๐—ผ๐—ฑ๐—ฒ๐—น โ†ณ Two pointers + smart movement = fewer unnecessary comparisons. โ†ณ This post covers the opposite-ends variant โ€” pointers starting apart and moving toward each other. Once you recognize the pattern, many array and string problems become much easier. โ€”โ€” What DSA pattern should I explain next? ๐Ÿค” โ€”โ€” ๐Ÿ”– Save for later. ๐Ÿ‘ค Follow me @1devmaaz, for more!
2
3
5
136
19/ The key idea is simple: AI search isn't about magically finding the answer. It's about exploring possibilities intelligently until it finds a path to the goal. Once you understand states, actions, transitions, and the frontier, algorithms like BFS, DFS, and A* stop feeling like complicated algorithmsโ€”and start feeling like different strategies for solving the same problem. The real question isn't โ€œCan we find a path?โ€ It's: โ€œWhich path should we explore first?โ€ ๐Ÿง 
1
18
15/ There's also something called path cost. Not every solution is equally good. Imagine two routes: ๐Ÿš— Route A โ†’ 5 km ๐Ÿš— Route B โ†’ 20 km Both reach your destination. But if we're minimizing distance, Route A is better. So we assign a numerical cost to paths to see which solution is more optimal. The best solution is the one with the lowest path cost.
1
8
13/ For example: Imagine the frontier contains: โ†’ [A, B, C, D] If we always remove the oldest node first: A โ†’ B โ†’ C โ†’ D That's essentially Breadth-First Search. If we remove the newest node first: A โ†’ D โ†’ ... That's Depth-First Search. Same problem. Same nodes. Different frontier behavior.
1
7
11/ But what exactly is a "node"? A node stores information about a particular point in our search: ๐Ÿ“ State ๐Ÿ‘จโ€๐Ÿ‘ฆ Parent โšก Action ๐Ÿ’ฐ Path cost The parent is especially useful. Why? Because when we finally reach the goal, we can follow: Goal โ†’ Parent โ†’ Parent โ†’ Parent โ†’ Initial State And reconstruct the entire solution.
1
1
11
10/ But how does the computer actually search? We need one more idea: The Frontier Think of the frontier as a waiting room for possible paths. The algorithm puts the starting node into the frontier. Then: 1. Take a node out 2. Check if it's the goal 3. If not, expand it 4. Add its possible next nodes 5. Repeat That's the basic search loop.
1
1
14
8/ Put those ideas together: ๐Ÿ“ State โ†“ โšก Action โ†“ ๐Ÿ“ New State โ†“ โšก Another Action โ†“ ๐Ÿ“ New State Eventually: ๐Ÿ“ Current State โ†’ ๐ŸŽฏ Goal State All the states we can reach form the state space.
1
2
11
6/ That's where actions come in. An action is a choice you can make from a state. From an intersection: โฌ†๏ธ Go straight โฌ…๏ธ Turn left โžก๏ธ Turn right So we can think of it as: Actions(state) โ†’ possible moves The available actions depend on where you currently are.
1
2
11
5/ The first state is called the: Initial State It's simply: "Where am I starting from?" For our example: Initial State = ๐Ÿ  Home Goal State = ๐Ÿข Office Now the computer has a starting point and a destination. But it still needs to figure out how to get there.
1
2
12
2/ Let's start with the simplest example: ๐Ÿ—บ๏ธ A navigation app. You are here:๐Ÿ“ A You want to reach: ๐ŸŽฏ B There might be dozens of possible roads. The computer needs to figure out: "Which sequence of moves gets me from A โ†’ B?" That's what a search algorithm does.
1
2
21
How does an AI find its way through a maze? ๐Ÿงต
1
3
7
101
Only 21 followers away from 1,600! ๐Ÿš€ Huge thank you to everyone who's been following along and supporting my journey. It genuinely means a lot. โค๏ธ I love sharing and learning about: ๐Ÿค– AI ๐Ÿ’ป Software Engineering ๐Ÿš€ Startups ๐Ÿ“ฑ New Tech & Gadgets If you're into any of that too, let's #connect! ๐Ÿ™Œ
2
72
Just shipped a big update to my portfolio. ๐Ÿš€ โœจ What's new: โ€ข ๐Ÿ“Š Interactive metrics โ€ข ๐Ÿ› ๏ธ Scroll-based build timeline โ€ข ๐Ÿง  "How I Think" section โ€ข ๐Ÿ—๏ธ Live architecture views โ€ข ๐Ÿ“š Mini case studies for every project โ€ข โœ๏ธ Interactive system design whiteboard โ€ข ๐ŸŒ™ Refined dark/light experience Would love some honest feedback ๐Ÿ‘€ - What's your first impression? - Anything confusing? What would you improve? ๐Ÿ”— maaz.mikrotik.pk Feedback from engineers, designers, and recruiters is always appreciated ๐Ÿ™Œ
1
3
88
What is Git, and why should every developer learn it? ๐Ÿค” Imagine spending hours building a feature... and then accidentally deleting your code. Yeah, not a great feeling. That's just one of the many problems Git helps solve. Let's get into it ๐Ÿ‘‡ ๐Ÿ“š Topics โžœ What is Git? โžœ ๐Ÿ•ฐ๏ธ Why was Git created? โžœ ๐Ÿ› ๏ธ What does Git actually do? โžœ ๐Ÿš€ Why should every developer learn Git? โ–  Collaboration โ–  Version Control โ–  Branches โžœ ๐ŸŽฏ Conclusion ๐Ÿ•ฐ๏ธ Why was Git created? Git was created by Linus Torvalds in 2005 to manage the development of the Linux kernel after the project stopped using its previous version control system. โญ Git is a Distributed Version Control System (DVCS).โญ In simple words: โžœ It helps you keep track of changes in your project. โžœ It stores your project's entire history. โžœ It makes collaborating, experimenting, and recovering old versions much easier. ๐Ÿ› ๏ธ What does Git actually do? Every time you make a commit, Git saves a snapshot of your project. Think of each commit as a checkpoint. If you ever break something, you can jump back to an earlier version instead of rebuilding everything from scratch. Every commit also gets a unique SHA hash. With that hash, you can: โœ… View a specific version of your project. โœ… Compare changes between commits. โœ… Restore or revert to an older version if needed. ๐Ÿš€ Why should every developer learn Git? ๐Ÿค Collaboration Say you're working with a team. ๐Ÿ‘‰ One person is building authentication. ๐Ÿ‘‰ Someone else is working on the dashboard. ๐Ÿ‘‰ Another developer is fixing bugs. Git lets everyone work on the same project without stepping on each other's code. When everything's ready, the changes can be merged together safely. ๐Ÿ“ Version Control Git shows you exactly who changed what and when. Made a mistake? It happens. You can compare versions, restore older commits, or undo unwanted changes without losing your whole project. ๐ŸŒฟ Branches Probably my favorite Git feature. Branches let you build new features without touching your main codebase. For example: You want to add an Edit Profile feature. โœ… Create a new branch. โœ… Build and test the feature. โœ… Merge it back into the main branch once it's ready. This makes it easy to experiment without risking your stable code. ๐Ÿ’ผ Career Whether you're a: โœ… Software Engineer โœ… Web Developer โœ… Mobile Developer โœ… DevOps Engineer โœ… System Administrator ...or anyone who writes code, You'll probably use Git almost every single day. It's become the standard tool for version control across the industry. ๐ŸŽฏ Conclusion Git isn't just another tool to add to your toolbox. It's one of the foundations of modern software development. The earlier you learn it, the easier it'll be to collaborate, manage projects, and build software with confidence. Now I'm curious... What's the first Git command you learned? ๐Ÿ‘€ Mine was git clone. ๐Ÿ˜„
1
2
7
271
Finally got verified on X. โ˜‘๏ธ Really happy to see that blue checkmark. ๐Ÿ‘‹ I'm Muhammad Maaz, a self-taught software engineer from Pakistan ๐Ÿ‡ต๐Ÿ‡ฐ who loves building things, breaking them, and figuring out how they work. I mainly share: โ€ข โš™๏ธ Software Engineering โ€ข ๐Ÿค– AI Core โ€ข ๐Ÿ’ผ Entrepreneurship โ€ข ๐Ÿง  Things I'm learning and building If any of those topics interest you, I'd love to have you along for the journey. ๐Ÿš€
1
1
3
108
๐Ÿ›  Building SortIt โ€” SaaS for housing organizations. Stack: Next.js + Expo + Express/Prisma Learning a lot of stuff: JWT, RBAC, multi-tenancy, web sockets, push notifications, Stripe, uploads, reports...
2
1
4
154