Chris Staudinger

10.7K posts

Chris Staudinger banner
Chris Staudinger

Chris Staudinger

@ChrisStaud

Co-Founder of Level Up Coding

Level Up Coding Newsletter → Katılım Nisan 2022
298 Takip Edilen144.1K Takipçiler
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
30 resources to learn system design: 1. JWT: lucode.co/json-web-token… 2. gRPC: lucode.co/grpc-explained… 3. Microservices: lucode.co/microservices-… 4. ACID vs BASE: lucode.co/acid-vs-base-l… 5. Rate limiting: lucode.co/rate-limiting-… 6. Event-driven architecture: lucode.co/event-driven-a… PS - if you want a structured path, get our FREE 142-page System Design Handbook when you join our free weekly newsletter → lucode.co/system-design-… 7. System design quality attributes: lucode.co/system-design-… 8. Idempotency: lucode.co/idempotency-in… 9. Network protocols: lucode.co/network-protoc… 10. Observability: lucode.co/observability-… 11. Change Data Capture (CDC): lucode.co/change-data-ca… 12. CI/CD pipelines: lucode.co/ci-cd-lil1nlsm 13. Database types: lucode.co/database-types… 14. CAP theorem: lucode.co/cap-theorem-li… 15. Health checks vs heartbeats: lucode.co/health-checks-… 16. API gateway vs load balancer vs reverse proxy: lucode.co/api-gateway-vs… 17. HTTPS: lucode.co/https-explaine… 18. Load balancing algorithms: lucode.co/load-balancing… 19. Database caching: lucode.co/database-cachi… 21. API protocols: lucode.co/api-architectu… 21. CDN: lucode.co/cdn-lil1nlsm 22. Database types: lucode.co/database-types… 23. Message Queues: lucode.co/message-queues… 24. Password storage & hashing: lucode.co/password-stora… 25. Service Discovery: lucode.co/service-discov… 26. Pub/Sub: lucode.co/pub-sub-lil1nl… 27. Connection pooling: lucode.co/connection-poo… 28. Forward proxy vs reverse proxy: lucode.co/forward-vs-rev… 29. Consistent hashing: lucode.co/consistent-has… 30. SQL vs NoSQL:lucode.co/sql-vs-nosql-l… What else should be on the list? What concepts would you like me to cover? —— 👋 PS: Get our FREE 142-page System Design Handbook when you join our free weekly newsletter. Join 31,000+ engineers → blog.levelupcoding.com/p/system-desig… —— ♻️ Repost to help others learn system design. ➕ Follow me ( Nikki Siapno ) to become good at system design.
Nikki Siapno tweet media
English
16
239
1K
39K
Chris Staudinger retweetledi
Level Up Coding
Level Up Coding@LevelUpCoding_·
Traditional RAG vs Agentic RAG vs Memory System.
Level Up Coding tweet media
Nikki Siapno@NikkiSiapno

Traditional RAG vs Agentic RAG vs Memory Systems Most people mix these up: Traditional RAG → Agentic RAG → Memory Systems Each step solves a different limitation. Here’s the breakdown (save this): 𝟭) 𝗧𝗿𝗮𝗱𝗶𝘁𝗶𝗼𝗻𝗮𝗹 𝗥𝗔𝗚 The classic way to ground LLMs. Pipeline: Retrieve → Inject context → Generate answer Best for docs and knowledge search. But it has a key limitation: Every request is stateless. Here’s a great piece explaining why this stateless design creates problems for agents:lucode.co/agent-memory-a… 𝟮) 𝗔𝗴𝗲𝗻𝘁𝗶𝗰 𝗥𝗔𝗚 Now the system adds an agent loop. Instead of a single retrieval step, the model can: Plan → Retrieve → Observe → Refine → Repeat Agentic RAG is great for complex problem solving. But there’s still a gap. Once the session ends, the agent loses all context. 𝟯) 𝗠𝗲𝗺𝗼𝗿𝘆 𝗦𝘆𝘀𝘁𝗲𝗺𝘀 This is where the future is heading. Instead of stateless assistants, you build stateful agents. They can: ↳ Write memories: store facts and decisions from interactions ↳ Consolidate knowledge: summarize long histories ↳ Recall context: retrieve important memories later Best for assistants that need to remember users, decisions, and ongoing work. In short: RAG retrieves knowledge. Memory preserves context. Teams building agents are discovering the same issue: The hardest problem isn’t reasoning. It’s memory. Here’s a great article that breaks down this problem and how to fix it: lucode.co/agent-memory-a… What else would you add? ♻️ Repost to help others learn AI. 🙏 Thanks to @Oracle for sponsoring this post.

English
1
5
16
2.5K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Agentic AI Concepts
Nikki Siapno tweet media
Nikki Siapno@NikkiSiapno

Traditional RAG vs Agentic RAG vs Memory Systems Most people mix these up: Traditional RAG → Agentic RAG → Memory Systems Each step solves a different limitation. Here’s the breakdown (save this): 𝟭) 𝗧𝗿𝗮𝗱𝗶𝘁𝗶𝗼𝗻𝗮𝗹 𝗥𝗔𝗚 The classic way to ground LLMs. Pipeline: Retrieve → Inject context → Generate answer Best for docs and knowledge search. But it has a key limitation: Every request is stateless. Here’s a great piece explaining why this stateless design creates problems for agents:lucode.co/agent-memory-a… 𝟮) 𝗔𝗴𝗲𝗻𝘁𝗶𝗰 𝗥𝗔𝗚 Now the system adds an agent loop. Instead of a single retrieval step, the model can: Plan → Retrieve → Observe → Refine → Repeat Agentic RAG is great for complex problem solving. But there’s still a gap. Once the session ends, the agent loses all context. 𝟯) 𝗠𝗲𝗺𝗼𝗿𝘆 𝗦𝘆𝘀𝘁𝗲𝗺𝘀 This is where the future is heading. Instead of stateless assistants, you build stateful agents. They can: ↳ Write memories: store facts and decisions from interactions ↳ Consolidate knowledge: summarize long histories ↳ Recall context: retrieve important memories later Best for assistants that need to remember users, decisions, and ongoing work. In short: RAG retrieves knowledge. Memory preserves context. Teams building agents are discovering the same issue: The hardest problem isn’t reasoning. It’s memory. Here’s a great article that breaks down this problem and how to fix it: lucode.co/agent-memory-a… What else would you add? ♻️ Repost to help others learn AI. 🙏 Thanks to @Oracle for sponsoring this post.

English
3
12
67
4K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Traditional RAG vs Agentic RAG vs Memory Systems Most people mix these up: Traditional RAG → Agentic RAG → Memory Systems Each step solves a different limitation. Here’s the breakdown (save this): 𝟭) 𝗧𝗿𝗮𝗱𝗶𝘁𝗶𝗼𝗻𝗮𝗹 𝗥𝗔𝗚 The classic way to ground LLMs. Pipeline: Retrieve → Inject context → Generate answer Best for docs and knowledge search. But it has a key limitation: Every request is stateless. Here’s a great piece explaining why this stateless design creates problems for agents:lucode.co/agent-memory-a… 𝟮) 𝗔𝗴𝗲𝗻𝘁𝗶𝗰 𝗥𝗔𝗚 Now the system adds an agent loop. Instead of a single retrieval step, the model can: Plan → Retrieve → Observe → Refine → Repeat Agentic RAG is great for complex problem solving. But there’s still a gap. Once the session ends, the agent loses all context. 𝟯) 𝗠𝗲𝗺𝗼𝗿𝘆 𝗦𝘆𝘀𝘁𝗲𝗺𝘀 This is where the future is heading. Instead of stateless assistants, you build stateful agents. They can: ↳ Write memories: store facts and decisions from interactions ↳ Consolidate knowledge: summarize long histories ↳ Recall context: retrieve important memories later Best for assistants that need to remember users, decisions, and ongoing work. In short: RAG retrieves knowledge. Memory preserves context. Teams building agents are discovering the same issue: The hardest problem isn’t reasoning. It’s memory. Here’s a great article that breaks down this problem and how to fix it: lucode.co/agent-memory-a… What else would you add? ♻️ Repost to help others learn AI. 🙏 Thanks to @Oracle for sponsoring this post.
Nikki Siapno tweet media
English
12
51
166
13.9K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Top 5 Deployment Patterns
Nikki Siapno tweet media
Nikki Siapno@NikkiSiapno

Most developers picture the process like this: Plan → Build → Test → Release But every stage depends on something often overlooked. That process above is typically described through the SDLC. 𝟭. 𝗣𝗹𝗮𝗻 ↳ Define requirements and architecture 𝟮. 𝗕𝘂𝗶𝗹𝗱 ↳ Implement features and integrate systems 𝟯. 𝗧𝗲𝘀𝘁 ↳ Validate behavior, performance, and reliability 𝟰. 𝗥𝗲𝗹𝗲𝗮𝘀𝗲 ↳ Deploy safely to production 𝟱. 𝗠𝗮𝗶𝗻𝘁𝗲𝗻𝗮𝗻𝗰𝗲 ↳ Monitor systems, fix issues, and iterate But every stage ultimately depends on the same foundation: a reliable development environment. 𝗜𝗳 𝗲𝗻𝘃𝗶𝗿𝗼𝗻𝗺𝗲𝗻𝘁𝘀 𝗱𝗶𝗳𝗳𝗲𝗿 between developers, CI, and production, teams start seeing: → broken CI pipelines → onboarding delays → dependency conflicts → “works on my machine” bugs That’s why many teams are starting to treat environments as 𝗽𝗮𝗿𝘁 𝗼𝗳 𝘁𝗵𝗲 𝗦𝗗𝗟𝗖 𝗶𝘁𝘀𝗲𝗹𝗳, not just a setup step. Tools like Flox help with this by letting teams define reproducible development environments, so the same setup runs across developers, CI, and production. Because when environments are reproducible, the SDLC becomes much smoother from build to release. Try it out for free: lucode.co/flox-z7xd What else would you add? ♻️ Repost to help others learn and grow. 🙏 Thanks to @floxdevelopment for sponsoring this post. ➕ Follow Nikki Siapno to become good at system design.

English
1
74
307
15.4K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Most developers picture the process like this: Plan → Build → Test → Release But every stage depends on something often overlooked. That process above is typically described through the SDLC. 𝟭. 𝗣𝗹𝗮𝗻 ↳ Define requirements and architecture 𝟮. 𝗕𝘂𝗶𝗹𝗱 ↳ Implement features and integrate systems 𝟯. 𝗧𝗲𝘀𝘁 ↳ Validate behavior, performance, and reliability 𝟰. 𝗥𝗲𝗹𝗲𝗮𝘀𝗲 ↳ Deploy safely to production 𝟱. 𝗠𝗮𝗶𝗻𝘁𝗲𝗻𝗮𝗻𝗰𝗲 ↳ Monitor systems, fix issues, and iterate But every stage ultimately depends on the same foundation: a reliable development environment. 𝗜𝗳 𝗲𝗻𝘃𝗶𝗿𝗼𝗻𝗺𝗲𝗻𝘁𝘀 𝗱𝗶𝗳𝗳𝗲𝗿 between developers, CI, and production, teams start seeing: → broken CI pipelines → onboarding delays → dependency conflicts → “works on my machine” bugs That’s why many teams are starting to treat environments as 𝗽𝗮𝗿𝘁 𝗼𝗳 𝘁𝗵𝗲 𝗦𝗗𝗟𝗖 𝗶𝘁𝘀𝗲𝗹𝗳, not just a setup step. Tools like Flox help with this by letting teams define reproducible development environments, so the same setup runs across developers, CI, and production. Because when environments are reproducible, the SDLC becomes much smoother from build to release. Try it out for free: lucode.co/flox-z7xd What else would you add? ♻️ Repost to help others learn and grow. 🙏 Thanks to @floxdevelopment for sponsoring this post. ➕ Follow Nikki Siapno to become good at system design.
Nikki Siapno tweet media
English
10
60
194
23K
Chris Staudinger retweetledi
Level Up Coding
Level Up Coding@LevelUpCoding_·
15 blogs that will help you become a better engineer: (Two bonuses at the end) 1. Uber Engineering ↳ uber.com/blog/engineeri… 2. Airbnb Tech Blog ↳ airbnb.tech/blog 3. OpenAI Engineering ↳ openai.com/news/engineeri… 4. AWS Architecture ↳ aws.amazon.com/blogs/architec… 5. Netflix TechBlog ↳ netflixtechblog.com 6. Discord Engineering ↳ discord.com/category/engin… 7. Anthropic Engineering ↳ anthropic.com/engineering 8. NVIDIA Developer ↳ developer.nvidia.com/blog 9. Slack Engineering ↳ slack.engineering 10. Cloudflare Blog ↳ blog.cloudflare.com/tag/engineering 11. Figma Tech Blog ↳ figma.com/blog/engineeri… 12. Shopify Engineering ↳ shopify.engineering 13. Stripe Engineering ↳ stripe.com/blog/engineeri… 14. Microsoft Engineering ↳ devblogs.microsoft.com/engineering-at… 15. GitHub Engineering ↳ github.blog/engineering Bonus (system design deep dives): Level Up Coding ↳ blog.levelupcoding.com Bonus two: Get our 𝟭𝟰𝟮-𝗽𝗮𝗴𝗲 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 𝗛𝗮𝗻𝗱𝗯𝗼𝗼𝗸 covering 𝟱𝟭 𝘀𝘆𝘀𝘁𝗲𝗺 𝗱𝗲𝘀𝗶𝗴𝗻 𝗰𝗼𝗻𝗰𝗲𝗽𝘁𝘀 for 𝗙𝗥𝗘𝗘 when you join our newsletter. Join 30,001+ engineers: ↳ lucode.co/system-design-… What other blogs should be on this list? 🔖 Save for later. ♻️ Repost to help other engineers learn and grow.
Level Up Coding tweet media
Nikki Siapno@NikkiSiapno

15 blogs that will help you become a better engineer: 1. Uber Engineering: uber.com/blog/engineeri… 2. Airbnb Tech Blog: airbnb.tech/blog 3. OpenAI Engineering: openai.com/news/engineeri… 4. AWS Architecture: aws.amazon.com/blogs/architec… 5. Netflix TechBlog: netflixtechblog.com 6. Discord Engineering: discord.com/category/engin… 7. Anthropic Engineering: anthropic.com/engineering 8. NVIDIA Developer: developer.nvidia.com/blog 9. Slack Engineering: slack.engineering 10. Cloudflare Blog: blog.cloudflare.com/tag/engineering 11. Figma Tech Blog: figma.com/blog/engineeri… 12. Shopify Engineering: shopify.engineering 13. Stripe Engineering: stripe.com/blog/engineeri… 14. Microsoft Engineering: devblogs.microsoft.com/engineering-at… 15. GitHub Engineering: github.blog/engineering Bonus (system design deep dives) Level Up Coding: lucode.co/luc-system-des… Bonus two: Get our 𝟭𝟰𝟮-𝗽𝗮𝗴𝗲 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 𝗛𝗮𝗻𝗱𝗯𝗼𝗼𝗸 covering 𝟱𝟭 𝘀𝘆𝘀𝘁𝗲𝗺 𝗱𝗲𝘀𝗶𝗴𝗻 𝗰𝗼𝗻𝗰𝗲𝗽𝘁𝘀 for 𝗙𝗥𝗘𝗘 when you join our newsletter. Join 30,001+ engineers: lucode.co/system-design-… What other blogs should be on this list? 🔖 Save for later. ♻️ Repost to help other engineers learn and grow.

English
2
49
213
16.9K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
15 blogs that will help you become a better engineer: 1. Uber Engineering: uber.com/blog/engineeri… 2. Airbnb Tech Blog: airbnb.tech/blog 3. OpenAI Engineering: openai.com/news/engineeri… 4. AWS Architecture: aws.amazon.com/blogs/architec… 5. Netflix TechBlog: netflixtechblog.com 6. Discord Engineering: discord.com/category/engin… 7. Anthropic Engineering: anthropic.com/engineering 8. NVIDIA Developer: developer.nvidia.com/blog 9. Slack Engineering: slack.engineering 10. Cloudflare Blog: blog.cloudflare.com/tag/engineering 11. Figma Tech Blog: figma.com/blog/engineeri… 12. Shopify Engineering: shopify.engineering 13. Stripe Engineering: stripe.com/blog/engineeri… 14. Microsoft Engineering: devblogs.microsoft.com/engineering-at… 15. GitHub Engineering: github.blog/engineering Bonus (system design deep dives) Level Up Coding: lucode.co/luc-system-des… Bonus two: Get our 𝟭𝟰𝟮-𝗽𝗮𝗴𝗲 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 𝗛𝗮𝗻𝗱𝗯𝗼𝗼𝗸 covering 𝟱𝟭 𝘀𝘆𝘀𝘁𝗲𝗺 𝗱𝗲𝘀𝗶𝗴𝗻 𝗰𝗼𝗻𝗰𝗲𝗽𝘁𝘀 for 𝗙𝗥𝗘𝗘 when you join our newsletter. Join 30,001+ engineers: lucode.co/system-design-… What other blogs should be on this list? 🔖 Save for later. ♻️ Repost to help other engineers learn and grow.
Nikki Siapno tweet media
English
9
248
1.1K
86.2K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
How JWT Actually Works. Full breakdown, with visuals (save it for later): blog.levelupcoding.com/p/jwt-clearly-…
Nikki Siapno tweet media
Nikki Siapno@NikkiSiapno

Concepts every developer should know: concurrency is 𝗡𝗢𝗧 parallelism. These terms are often used interchangeably. But they describe very different ideas. As Rob Pike (one of the creators of Go) put it: 𝗖𝗼𝗻𝗰𝘂𝗿𝗿𝗲𝗻𝗰𝘆 is about 𝙙𝙚𝙖𝙡𝙞𝙣𝙜 𝙬𝙞𝙩𝙝 lots of things at once. 𝗣𝗮𝗿𝗮𝗹𝗹𝗲𝗹𝗶𝘀𝗺 is about 𝙙𝙤𝙞𝙣𝙜 lots of things at once. Here’s the difference in practice: Concurrency ↳ Multiple tasks are in progress. ↳ Work is interleaved to use resources efficiently Parallelism ↳ Multiple tasks are executing simultaneously ↳ Work happens at the same time across cores or systems In other words: concurrency helps manage complexity, while parallelism increases throughput. We’re starting to see this same concept appear in AI-powered development workflows. Traditionally, AI coding agents worked sequentially: You request a change → the agent plans → then builds → then you move to the next step. But new systems are moving toward parallel execution. With Replit Agent 4, tasks can run through parallel agents, allowing different parts of a project to move forward at the same time. ↳ Plan features in separate threads ↳ Execute tasks in parallel ↳ Continue designing while work runs in the background The result: a workflow that feels much closer to parallelism than step-by-step execution. Less waiting. More building. Try it out for free: lucode.co/replit-a4z7xd What else would you add? -- 📌 Save for later. ♻️ Repost to help others learn and grow. 🙏 Thanks to @Replit for sponsoring this post. ➕ Follow Nikki Siapno + turn on notifications.

English
3
29
162
9.2K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Concepts every developer should know: concurrency is 𝗡𝗢𝗧 parallelism. These terms are often used interchangeably. But they describe very different ideas. As Rob Pike (one of the creators of Go) put it: 𝗖𝗼𝗻𝗰𝘂𝗿𝗿𝗲𝗻𝗰𝘆 is about 𝙙𝙚𝙖𝙡𝙞𝙣𝙜 𝙬𝙞𝙩𝙝 lots of things at once. 𝗣𝗮𝗿𝗮𝗹𝗹𝗲𝗹𝗶𝘀𝗺 is about 𝙙𝙤𝙞𝙣𝙜 lots of things at once. Here’s the difference in practice: Concurrency ↳ Multiple tasks are in progress. ↳ Work is interleaved to use resources efficiently Parallelism ↳ Multiple tasks are executing simultaneously ↳ Work happens at the same time across cores or systems In other words: concurrency helps manage complexity, while parallelism increases throughput. We’re starting to see this same concept appear in AI-powered development workflows. Traditionally, AI coding agents worked sequentially: You request a change → the agent plans → then builds → then you move to the next step. But new systems are moving toward parallel execution. With Replit Agent 4, tasks can run through parallel agents, allowing different parts of a project to move forward at the same time. ↳ Plan features in separate threads ↳ Execute tasks in parallel ↳ Continue designing while work runs in the background The result: a workflow that feels much closer to parallelism than step-by-step execution. Less waiting. More building. Try it out for free: lucode.co/replit-a4z7xd What else would you add? -- 📌 Save for later. ♻️ Repost to help others learn and grow. 🙏 Thanks to @Replit for sponsoring this post. ➕ Follow Nikki Siapno + turn on notifications.
Nikki Siapno tweet media
English
11
22
97
13.4K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
AI Feature vs AI-Native Platform: they're NOT the same. If you’re unclear, read this: Old model: AI informs you. Work happens outside the product. New model: AI works with you inside the platform. Here's a simple breakdown (save this): 𝗖𝗵𝗮𝘁𝗯𝗼𝘁 𝗹𝗮𝘆𝗲𝗿 (𝗼𝗹𝗱 𝗳𝗲𝗮𝘁𝘂𝗿𝗲 𝗺𝗼𝗱𝗲𝗹) ↳ AI gives suggestions ↳ You interpret them ↳ You execute everything manually ↳ The software 𝗶𝗻𝗳𝗼𝗿𝗺𝘀 you. You do the work. 𝗘𝘅𝗲𝗰𝘂𝘁𝗶𝗼𝗻 𝗹𝗮𝘆𝗲𝗿 (𝗔𝗜-𝗻𝗮𝘁𝗶𝘃𝗲 𝗽𝗹𝗮𝘁𝗳𝗼𝗿𝗺) ↳ You describe the outcome ↳ The platform turns intent → actions ↳ It pulls context from your data + history ↳ It runs analysis, drafts changes, queues tasks ↳ You review, refine, approve ↳ The software 𝘄𝗼𝗿𝗸𝘀 𝘄𝗶𝘁𝗵 𝘆𝗼𝘂 Take @Shopify Sidekick for example: It’s not just a chatbot sitting on top of Shopify. It’s embedded directly into the product layer. Meaning it can take action inside Shopify itself, using your store’s context, permissions, and history, rather than generating suggestions you have to implement yourself. 𝗦𝗼 𝘄𝗵𝗮𝘁 𝘀𝗲𝗽𝗮𝗿𝗮𝘁𝗲𝘀 𝗮 𝗿𝗲𝗮𝗹 𝗽𝗹𝗮𝘁𝗳𝗼𝗿𝗺 𝘀𝗵𝗶𝗳𝘁 𝗳𝗿𝗼𝗺 𝗮 𝗳𝗲𝗮𝘁𝘂𝗿𝗲 𝗰𝗵𝗲𝗰𝗸𝗹𝗶𝘀𝘁? Not “who has AI.” But who can do these 4 things reliably: 1. Context → deep understanding of your business + current state 2. Trust → scoped permissions, previews, audit logs, rollback 3. Execution → multi-step tasks inside the real workflow (no context switching) 4. Memory → learns from outcomes, not just prompts For example Sidekick can: ↳ Complete multi-step tasks like updating product collections, adjusting discounts, or configuring settings, without pulling you into separate dashboards. ↳ Turn plain English into a working custom app, generating the underlying code so merchants can build tools without coding. ↳ Generate analytics reports from natural-language questions, pulling directly from Shopify Analytics. ↳ Proactively surface weekly opportunities based on store performance, not just react when asked. ↳ Edit product images directly in the Shopify app; removing backgrounds, adjusting visuals, and publishing changes in place. That’s not AI as an add-on. That’s AI as an execution layer. We’re moving toward 𝗱𝗲𝗰𝗶𝘀𝗶𝗼𝗻 𝗢𝗦 𝗽𝗹𝗮𝘁𝗳𝗼𝗿𝗺𝘀: Intent → plan → action → feedback → memory (with guardrails). If you’re building software, the question isn’t “Where do we add AI?” It’s: What should this product safely do on the user’s behalf? What else would you add? → lucode.co/shopify-sideki… -- 📌 Save for later. ♻️ Repost to help other engineers learn and grow. 🙏 Thanks to Shopify for sponsoring this post. ➕ Follow Nikki Siapno + turn on notifications.
Nikki Siapno tweet media
English
2
10
23
2.2K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
How CI/CD pipelines work (explained in 2 mins or less): A CI/CD pipeline is an automated workflow that facilitates continuous integration (CI) and continuous delivery or deployment (CD) by managing code building, testing, and release processes. It integrates the various stages of the software development lifecycle (SDLC) into a seamless, repeatable process. These stages include source code management, automated testing, artifact creation, and deployment orchestration. Continuous ‘delivery’ and ‘deployment’ are sometimes used synonymously. But there is a clear and important distinction between the two. Delivery is about ensuring the software can be released at any time. It requires manual intervention to deploy to production. Deployment, on the other hand, does the release through automated workflows. Learn more here: lucode.co/ci-cd-explaine… What else would you add? -- 👋 PS: Get our System Design Handbook FREE when you join our newsletter. Join 30,001+ engineers: lucode.co/system-design-… -- 📌 Save for later. ♻️ Repost to help other engineers learn CI/CD. ➕ Follow Nikki Siapno + turn on notifications.
Nikki Siapno tweet media
English
10
143
648
18.6K
Chris Staudinger retweetledi
Level Up Coding
Level Up Coding@LevelUpCoding_·
If you want to become good at system design, learn these 12 concepts: 1. Load balancing algorithms explained ↳ lucode.co/load-balancing… 2. gRPC clearly explained ↳ lucode.co/grpc-explained… 3. How HTTPS actually works ↳ lucode.co/https-explaine… 4. Database caching strategies ↳ lucode.co/database-cachi… 5. System design quality attributes ↳ lucode.co/system-design-… 6. Health checks vs heartbeats ↳ lucode.co/health-checks-… 7. CI/CD pipelines ↳ lucode.co/ci-cd-lil1nlsm 8. API gateway vs load balancer vs reverse proxy ↳ lucode.co/api-gateway-vs… 9. Microservices clearly explained ↳ lucode.co/microservices-… 10. How JWT works ↳ lucode.co/json-web-token… 11. Idempotency in API design ↳ lucode.co/idempotency-in… 12. API protocols made simple ↳ lucode.co/api-architectu… What else should make the list? 👋 PS: Get our System Design Handbook FREE when you join our newsletter. Join 30,001+ engineers: lucode.co/system-design-… -- 🔖 Save for later. ♻️ Repost to help other engineers learn and grow. ➕ Follow Level Up Coding + turn on notifications.
Level Up Coding tweet media
Nikki Siapno@NikkiSiapno

12 System design concepts engineers should know: 1. Load balancing algorithms explained ↳ lucode.co/load-balancing… 2. gRPC clearly explained ↳ lucode.co/grpc-explained… 3. How HTTPS actually works ↳ lucode.co/https-explaine… 4. Database caching strategies ↳ lucode.co/database-cachi… 5. System design quality attributes ↳ lucode.co/system-design-… 6. Health checks vs heartbeats ↳ lucode.co/health-checks-… 7. CI/CD pipelines ↳ lucode.co/ci-cd-lil1nlsm 8. API gateway vs load balancer vs reverse proxy ↳ lucode.co/api-gateway-vs… 9. Microservices clearly explained ↳ lucode.co/microservices-… 10. How JWT works ↳ lucode.co/json-web-token… 11. Idempotency in API design ↳ lucode.co/idempotency-in… 12. API protocols made simple ↳ lucode.co/api-architectu… What else should make the list? What concepts would you like me to cover? 👋 PS: Get our System Design Handbook FREE when you join our newsletter. Join 30,001+ engineers: lucode.co/system-design-… -- 📌 Save for later. ♻️ Repost to help other engineers learn system design. ➕ Follow Nikki Siapno + turn on notifications.

English
0
41
179
11.9K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
12 System design concepts engineers should know: 1. Load balancing algorithms explained ↳ lucode.co/load-balancing… 2. gRPC clearly explained ↳ lucode.co/grpc-explained… 3. How HTTPS actually works ↳ lucode.co/https-explaine… 4. Database caching strategies ↳ lucode.co/database-cachi… 5. System design quality attributes ↳ lucode.co/system-design-… 6. Health checks vs heartbeats ↳ lucode.co/health-checks-… 7. CI/CD pipelines ↳ lucode.co/ci-cd-lil1nlsm 8. API gateway vs load balancer vs reverse proxy ↳ lucode.co/api-gateway-vs… 9. Microservices clearly explained ↳ lucode.co/microservices-… 10. How JWT works ↳ lucode.co/json-web-token… 11. Idempotency in API design ↳ lucode.co/idempotency-in… 12. API protocols made simple ↳ lucode.co/api-architectu… What else should make the list? What concepts would you like me to cover? 👋 PS: Get our System Design Handbook FREE when you join our newsletter. Join 30,001+ engineers: lucode.co/system-design-… -- 📌 Save for later. ♻️ Repost to help other engineers learn system design. ➕ Follow Nikki Siapno + turn on notifications.
Nikki Siapno tweet media
English
5
144
591
37.7K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Things every developer should know: SOLID principles. SOLID is about designing for change. Separating responsibilities and managing dependencies so your codebase doesn’t become brittle over time. 𝗦 - Single Responsibility Principle 𝗢 - Open/Closed Principle 𝗟 - Liskov Substitution Principle 𝗜 - Interface Segregation Principle 𝗗 - Dependency Inversion Principle Let’s break down each principle ↓ 𝟭. 𝗦𝗶𝗻𝗴𝗹𝗲 𝗥𝗲𝘀𝗽𝗼𝗻𝘀𝗶𝗯𝗶𝗹𝗶𝘁𝘆 𝗣𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲 (𝗦𝗥𝗣) Each unit of code should only have one job or responsibility. A unit can be a class, module, function, or component. This keeps code modular and removes the risk of tight coupling. 𝟮. 𝗢𝗽𝗲𝗻-𝗖𝗹𝗼𝘀𝗲𝗱 𝗣𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲 (𝗢𝗖𝗣) Units of code should be open for extension but closed for modification. You should be able to extend functionality with additional code rather than modifying existing ones. This principle can be applied to component-based systems such as a React frontend. 𝟯. 𝗟𝗶𝘀𝗸𝗼𝘃 𝗦𝘂𝗯𝘀𝘁𝗶𝘁𝘂𝘁𝗶𝗼𝗻 𝗣𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲 (𝗟𝗦𝗣) You should be able to substitute objects of a base class with objects of its subclass without altering the ‘correctness’ of the program. An example of this is with a Bird base class. You might assume that it should have a ‘fly’ method. But what about the birds that can’t fly? Like a Penguin. In this example, having a ‘fly’ method in the Bird class would violate LSP. 𝟰. 𝗜𝗻𝘁𝗲𝗿𝗳𝗮𝗰𝗲 𝗦𝗲𝗴𝗿𝗲𝗴𝗮𝘁𝗶𝗼𝗻 𝗣𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲 (𝗜𝗦𝗣) Provide multiple interfaces with specific responsibilities rather than a small set of general-purpose interfaces. Clients shouldn’t need to know about the methods & properties that don't relate to their use case. Complexity ↓ Code flexibility ↑ 𝟱. 𝗗𝗲𝗽𝗲𝗻𝗱𝗲𝗻𝗰𝘆 𝗜𝗻𝘃𝗲𝗿𝘀𝗶𝗼𝗻 𝗣𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲 (𝗗𝗜𝗣) High-level modules shouldn’t depend on low-level modules. Both should depend on abstractions. Abstractions shouldn’t depend on details. Details should depend on abstractions. Across these principles, you’ll often see the same pattern emerge: composition over inheritance. What else would you add? -- 👋 PS: Get our System Design Handbook FREE when you join our newsletter. Join 30,001+ engineers: lucode.co/system-design-… -- 📌 Save for later. ♻️ Repost to help others learn and grow. ➕ Follow Nikki Siapno + turn on notifications.
Nikki Siapno tweet media
English
3
53
203
6.4K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
Kafka is often described as a message queue. It’s not... Kafka is a distributed commit log that lets you replay, scale, and process data streams in parallel. That difference matters. Here’s the mental model: ↳ Producers write events to a 𝘁𝗼𝗽𝗶𝗰 ↳ Topics are split into 𝗽𝗮𝗿𝘁𝗶𝘁𝗶𝗼𝗻𝘀 ↳ 𝗕𝗿𝗼𝗸𝗲𝗿𝘀 replicate partitions for durability ↳ 𝗖𝗼𝗻𝘀𝘂𝗺𝗲𝗿𝘀 read at their own pace using 𝗼𝗳𝗳𝘀𝗲𝘁𝘀 The key idea: Kafka doesn’t just move messages, it 𝗽𝗲𝗿𝘀𝗶𝘀𝘁𝘀 𝗼𝗿𝗱𝗲𝗿𝗲𝗱 𝗲𝘃𝗲𝗻𝘁 𝘀𝘁𝗿𝗲𝗮𝗺𝘀. That’s why it works for: → Event-driven systems → Real-time analytics → Log aggregation → Data lake ingestion Here’s a simple decision rule: If you need: • Replayable history • Horizontal scalability • Parallel consumption • Durable event storage ➟ Kafka fits. If you just need: • Simple async jobs • Low operational overhead • Basic task queues ➟ It’s probably overkill. Kafka is powerful. But it earns its complexity. What else would you add? -- Thanks to Sonar for keeping our content free. They’re bringing 𝘄𝗲𝗹𝗹-𝗸𝗻𝗼𝘄𝗻 𝗲𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴 𝗹𝗲𝗮𝗱𝗲𝗿𝘀 together to discuss building better software in the AI era. 𝗜𝗳 𝘆𝗼𝘂 𝘄𝗮𝗻𝘁 𝘁𝗼 𝘀𝘁𝗮𝘆 𝘀𝗵𝗮𝗿𝗽 in the current landscape, 𝘄𝗮𝘁𝗰𝗵 the 𝘃𝗶𝗿𝘁𝘂𝗮𝗹 event here (𝗳𝗼𝗿 𝗳𝗿𝗲𝗲): lucode.co/sonar-summit-z… -- 📌 Save for later. ♻️ Repost to help others learn Kafka. ➕ Follow Nikki Siapno + turn on notifications.
Nikki Siapno tweet media
English
8
118
705
27.9K
Chris Staudinger retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
REST vs GraphQL. PS: Get our System Design Handbook free when you join our newsletter. Join 30,001+ engineers: lucode.co/system-design-…
Nikki Siapno tweet media
English
6
30
166
6.3K