# introduction

Published articles for introduction.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Let's Reduce! A Gentle Introduction to Javascript's Reduce Method

DevFeed: [Let's Reduce! A Gentle Introduction to Javascript's Reduce Method](<https://devfeed.tech/articles/let-s-reduce-a-gentle-introduction-to-javascript-s-reduce-method-27391.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/lets-reduce.htm>)

Author: Khan Academy

Published: 2017-07-10T22:00:00Z

Content type: tutorial

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Redux](<https://devfeed.tech/topics/redux.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [arrow](<https://devfeed.tech/tags/arrow.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [filter](<https://devfeed.tech/tags/filter.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [map](<https://devfeed.tech/tags/map.md>), [news](<https://devfeed.tech/tags/news.md>), [react](<https://devfeed.tech/tags/react.md>), [reduce](<https://devfeed.tech/tags/reduce.md>), [web-frontend](<https://devfeed.tech/tags/web-frontend.md>)

### AI overview

A tutorial explaining JavaScript's reduce method as a foundation for understanding Redux. It describes how reduce processes array items, how each iteration depends on the previous return value, and why the method can be difficult to learn.

### Source excerpt

By Josh Comeau Every summer, Khan Academy recruits a few software engineer interns. As part of their onboarding, ... Read more

## Coroutine Essentials

DevFeed: [Coroutine Essentials](<https://devfeed.tech/articles/coroutine-essentials-25051.md>)

Original publisher: [Read original article](<https://typealias.com/start/kotlin-coroutines/>)

Author: author@typealias.com (Dave Leeds)

Published: 2026-08-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [cancellation](<https://devfeed.tech/tags/cancellation.md>), [coding](<https://devfeed.tech/tags/coding.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [deferred](<https://devfeed.tech/tags/deferred.md>), [dispatcher](<https://devfeed.tech/tags/dispatcher.md>), [exception-handling](<https://devfeed.tech/tags/exception-handling.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [job](<https://devfeed.tech/tags/job.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [launch](<https://devfeed.tech/tags/launch.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [programming](<https://devfeed.tech/tags/programming.md>), [runblocking](<https://devfeed.tech/tags/runblocking.md>), [software](<https://devfeed.tech/tags/software.md>), [structured-concurrency](<https://devfeed.tech/tags/structured-concurrency.md>), [suspend-function](<https://devfeed.tech/tags/suspend-function.md>), [withcontext](<https://devfeed.tech/tags/withcontext.md>), [yield](<https://devfeed.tech/tags/yield.md>)

### AI overview

This tutorial introduces essential Kotlin coroutine concepts for performing multiple tasks concurrently, such as making network calls while updating a screen. It aims to provide a foundation for day-to-day coding and more advanced coroutine concepts.

### Source excerpt

When you're on hold during a phone call, you might also check your email. While brewing coffee, you might also cook breakfast. And while driving a car, you might listen to a podcast. In the same way, sometimes it's helpful for the software that we write to do more than one thing at a time. For example, it could make two or three network calls at one time--all while updating the screen to show the progress of each call.

## Content Delivery Network (CDN) - A Deep Dive

DevFeed: [Content Delivery Network (CDN) - A Deep Dive](<https://devfeed.tech/articles/content-delivery-network-cdn-a-deep-dive-17916.md>)

Original publisher: [Read original article](<https://newsletter.systemdesign.one/p/how-does-cdn-work>)

Author: Neo Kim

Published: 2026-07-02T20:18:06Z

Content type: tutorial

Language: en

Sources: [System Design Newsletter](<https://devfeed.tech/sources/system-design-newsletter.md>)

Topics: [Network](<https://devfeed.tech/topics/network.md>)

Tags: [concepts](<https://devfeed.tech/tags/concepts.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [network](<https://devfeed.tech/tags/network.md>)

### AI overview

An introduction to content delivery networks and their core concepts.

### Source excerpt

#159: A clear introduction to CDNs and their core concepts

## Introduction to Object-Oriented Programming in Python

DevFeed: [Introduction to Object-Oriented Programming in Python](<https://devfeed.tech/articles/introduction-to-object-oriented-programming-in-python-38810.md>)

Original publisher: [Read original article](<https://thepalindrome.org/p/introduction-to-object-oriented-programming>)

Author: Stephen Gruppetta

Published: 2026-05-08T12:29:01Z

Content type: tutorial

Language: en

Sources: [The Palindrome](<https://devfeed.tech/sources/the-palindrome.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [introduction](<https://devfeed.tech/tags/introduction.md>), [object-oriented](<https://devfeed.tech/tags/object-oriented.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>)

### AI overview

An introduction to object-oriented programming in Python. The supplied evidence does not provide further substantive details.

### Source excerpt

The true way of doing stuff with data

## Diffusion LLMs, Explained Simply

DevFeed: [Diffusion LLMs, Explained Simply](<https://devfeed.tech/articles/diffusion-llms-explained-simply-18354.md>)

Original publisher: [Read original article](<https://levelup.gitconnected.com/diffusion-llms-explained-simply-4dba963911c3?source=rss-f10e9a50984a------2>)

Author: Dr. Ashish Bamania

Published: 2026-04-24T14:23:01Z

Content type: tutorial

Language: en

Sources: [Dr. Ashish Bamania](<https://devfeed.tech/sources/dr-ashish-bamania.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [text-generation](<https://devfeed.tech/topics/text-generation.md>), [Transformer](<https://devfeed.tech/topics/transformer.md>)

Tags: [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [diffusion](<https://devfeed.tech/tags/diffusion.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [llms](<https://devfeed.tech/tags/llms.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [programming](<https://devfeed.tech/tags/programming.md>), [technology](<https://devfeed.tech/tags/technology.md>), [text-generation](<https://devfeed.tech/tags/text-generation.md>), [tokens](<https://devfeed.tech/tags/tokens.md>)

### AI overview

An introductory explanation of diffusion large language models, contrasting them with autoregressive Transformer-based chatbots that generate responses sequentially, one token at a time.

### Source excerpt

A gentle but comprehensive introduction to Diffusion LLMs. Continue reading on Level Up Coding "

## Explore LLM word representations using similarity analysis (part 1)

DevFeed: [Explore LLM word representations using similarity analysis (part 1)](<https://devfeed.tech/articles/explore-llm-word-representations-using-similarity-analysis-part-1-38804.md>)

Original publisher: [Read original article](<https://thepalindrome.org/p/explore-llm-word-representations>)

Author: Mike X Cohen, PhD

Published: 2026-04-22T12:43:43Z

Content type: tutorial

Language: en

Sources: [The Palindrome](<https://devfeed.tech/sources/the-palindrome.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [bert](<https://devfeed.tech/topics/bert.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [bert](<https://devfeed.tech/tags/bert.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [llm](<https://devfeed.tech/tags/llm.md>), [using](<https://devfeed.tech/tags/using.md>)

### AI overview

A hands-on introduction to representational similarity analysis using GPT-2 and BERT embeddings to examine word representations in large language models.

### Source excerpt

A hands-on introduction to representational similarity analysis (RSA) with GPT-2 and BERT embeddings

## Maestro MCP: An introduction

DevFeed: [Maestro MCP: An introduction](<https://devfeed.tech/articles/maestro-mcp-an-introduction-22907.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/maestro-mcp-an-introduction>)

Author: Simon Gilmurray

Published: 2026-04-14T09:32:00Z

Content type: tutorial

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Model Context Protocol (MCP)](<https://devfeed.tech/topics/model-context-protocol-mcp.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The article introduces Maestro MCP, which uses the Model Context Protocol to expose Maestro's mobile testing capabilities to AI-agent clients. It describes use cases including test creation, interactive execution, maintenance, device management, and documentation querying.

### Source excerpt

Learn how Maestro MCP uses the Model Context Protocol to supercharge your mobile test creation, execution, and maintenance with AI agents.

## Meet FlexBox: The Powerful New Layout System for Compose

DevFeed: [Meet FlexBox: The Powerful New Layout System for Compose](<https://devfeed.tech/articles/meet-flexbox-the-powerful-new-layout-system-for-compose-25986.md>)

Original publisher: [Read original article](<https://proandroiddev.com/meet-flexbox-the-powerful-new-layout-system-for-compose-446b1f65cc62?source=rss-711ab22c5c77------2>)

Author: Nav Singh

Published: 2026-03-27T18:22:23Z

Content type: article

Language: en

Sources: [Stories by Nav Singh 🇨🇦 on Medium](<https://devfeed.tech/sources/stories-by-nav-singh-on-medium.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [ui](<https://devfeed.tech/topics/ui.md>), [CSS](<https://devfeed.tech/topics/css.md>)

Tags: [3](<https://devfeed.tech/tags/3.md>), [adaptive](<https://devfeed.tech/tags/adaptive.md>), [alignment](<https://devfeed.tech/tags/alignment.md>), [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [container](<https://devfeed.tech/tags/container.md>), [css](<https://devfeed.tech/tags/css.md>), [flexbox](<https://devfeed.tech/tags/flexbox.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [layout](<https://devfeed.tech/tags/layout.md>), [space](<https://devfeed.tech/tags/space.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial introduces FlexBox, a new Jetpack Compose layout system inspired by CSS Flexbox. It explains how FlexBox arranges children dynamically and covers FlexBoxConfig parameters for direction, wrapping, alignment, spacing, and item distribution, along with Modifier.flex controls and code samples.

### Source excerpt

Header image Jetpack Compose continues to evolve, and with the introduction of the new FlexBox layout, we finally have a powerful, flexible way to design adaptive UIs -- inspired by the CSS Flexbox model. https://developer.android.com/develop/ui/compose/layouts/adaptive/flexbox If you've ever used Row, Column, or FlowRowYou'll feel right at home. FlexBox acts as a superset, combining their capabilities while providing granular control over alignment, wrapping, and item distribution. Until now, we had to choose between rigid layouts (Row/Column) or more dynamic ones (FlowRow/FlowColumn). FlexBox merges the best of both worlds -- flexibility and simplicity. What Is FlexBox? Composable brings the concept of flexible layouts from the web into Jetpack Compose. Arranges its children dynamically, allowing them to grow, shrink, or wrap based on available space and configuration. Preview FlexBoxFlexBox API🏗 Building blocks and their roles.FlexBoxThe main composable responsible for arranging children.FlexBox( config = { direction(FlexDirection.Row) wrap(FlexWrap.Wrap) justifyContent(FlexJustifyContent.SpaceBetween) alignItems(FlexAlignItems.Center) gap(8.dp) }, modifier = Modifier .border(1.dp, Color.Black) ) { Text( "Item 1", Modifier .flex { grow(1f) } .background(color = randomColor()) .border(1.dp, Color.Black) ) Text( "Item 2", Modifier .flex { basis(80.dp) } .background(color = randomColor())) }Screenshot FlexBox SampleFlexBoxConfigConfigures the container's layout behavior -- direction, wrapping, justification, alignment, and spacing. Key parameters: direction: Controls the main axis (Row, Column). wrap: Determines if items flow onto new lines. Here we have 3 options: Wrap, NoWrap, WrapReverse justifyContent: Distributes space along the main axis(start, end, etc). alignItems: Defines how items align on the cross-axis(start, end, etc). alignContent: Controls how multiple lines are distributed along the cross-axis. This applies only when the wrap is FlexWrap.Wrap or FlexWr

## Building a Local AI Task Manager with PydanticAI and Ollama

DevFeed: [Building a Local AI Task Manager with PydanticAI and Ollama](<https://devfeed.tech/articles/building-a-local-ai-task-manager-with-pydanticai-and-ollama-35014.md>)

Original publisher: [Read original article](<https://read.theaimerge.com/p/building-a-local-ai-task-manager>)

Author: Alex Razvant

Published: 2026-03-22T14:03:18Z

Content type: tutorial

Language: en

Sources: [Neural Bits](<https://devfeed.tech/sources/neural-bits.md>)

Topics: [Ollama](<https://devfeed.tech/topics/ollama.md>), [Local AI](<https://devfeed.tech/topics/local-ai.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [App](<https://devfeed.tech/topics/app.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Python](<https://devfeed.tech/topics/python.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [code](<https://devfeed.tech/tags/code.md>), [dev](<https://devfeed.tech/tags/dev.md>), [examples](<https://devfeed.tech/tags/examples.md>), [guide](<https://devfeed.tech/tags/guide.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [local](<https://devfeed.tech/tags/local.md>), [models](<https://devfeed.tech/tags/models.md>), [ollama](<https://devfeed.tech/tags/ollama.md>), [practical](<https://devfeed.tech/tags/practical.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

A practical tutorial on building a local AI task manager with Ollama and PydanticAI. The application uses local language models and typed agent tools to handle tasks such as adding work, marking tasks complete, and listing overdue items.

### Source excerpt

A practical introduction to agent-based architectures using typed models, tools, and runtime context in Pydantic AI.

## Crystal talk at FOSDEM 2026

DevFeed: [Crystal talk at FOSDEM 2026](<https://devfeed.tech/articles/crystal-talk-at-fosdem-2026-22329.md>)

Original publisher: [Read original article](<https://crystal-lang.org/2026/01/23/crystal-talk-fosdem/>)

Author: Johannes Müller

Published: 2026-01-23T00:00:00Z

Content type: news

Language: en

Sources: [Crystal](<https://devfeed.tech/sources/crystal.md>)

Topics: [Crystal](<https://devfeed.tech/topics/crystal.md>), [FOSDEM](<https://devfeed.tech/topics/fosdem.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [fosdem](<https://devfeed.tech/tags/fosdem.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [merch](<https://devfeed.tech/tags/merch.md>), [talk](<https://devfeed.tech/tags/talk.md>), [update](<https://devfeed.tech/tags/update.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

The author announces a talk about Crystal at FOSDEM 2026 in Brussels, titled "Crystal: A language for humans and computers." The talk introduces Crystal concepts, and a recording is available for those who cannot attend.

### Source excerpt

I'm giving a talk about Crystal at FOSDEM 2026 in Brussels: Crystal: A language for humans and computers. It's in the Declarative and Minimalistic Computing track, on Sunday, 1 February 2026 at 09:00 in room UB4.136.

## ESPHome 2025.8.0: nRF52 support and ESP-NOW mesh communication

DevFeed: [ESPHome 2025.8.0: nRF52 support and ESP-NOW mesh communication](<https://devfeed.tech/articles/esphome-2025-8-0-nrf52-support-and-esp-now-mesh-communication-16700.md>)

Original publisher: [Read original article](<https://esphome.io/blog/2025/08/20/esphome-2025-8/>)

Author: Jesse Hills

Published: 2025-08-20T00:00:00Z

Content type: release

Language: en

Sources: [ESPHome - Smart Home Made Simple - Blog](<https://devfeed.tech/sources/esphome-smart-home-made-simple-blog.md>)

Topics: [esphome](<https://devfeed.tech/topics/esphome.md>), [ESP-NOW](<https://devfeed.tech/topics/esp-now.md>), [Microcontrollers](<https://devfeed.tech/topics/microcontrollers.md>), [Zephyr RTOS](<https://devfeed.tech/topics/zephyr-rtos.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [ESP32-P4](<https://devfeed.tech/topics/esp32-p4.md>), [Bluetooth](<https://devfeed.tech/topics/bluetooth.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [bluetooth](<https://devfeed.tech/tags/bluetooth.md>), [esp-now](<https://devfeed.tech/tags/esp-now.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32-p4](<https://devfeed.tech/tags/esp32-p4.md>), [esphome](<https://devfeed.tech/tags/esphome.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [latency](<https://devfeed.tech/tags/latency.md>), [low-latency](<https://devfeed.tech/tags/low-latency.md>), [memory-optimization](<https://devfeed.tech/tags/memory-optimization.md>), [microcontrollers](<https://devfeed.tech/tags/microcontrollers.md>), [mipi](<https://devfeed.tech/tags/mipi.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [zephyr](<https://devfeed.tech/tags/zephyr.md>)

### AI overview

ESPHome 2025.8.0 adds basic Nordic nRF52 support built on Zephyr, ESP-NOW device-to-device communication for ESP32 platforms, and MIPI DSI display support for ESP32-P4. It also introduces memory optimizations and requires Python 3.11 or newer.

### Source excerpt

ESPHome 2025.8.0 introduces the Nordic nRF52 platform built on Zephyr, ESP-NOW device-to-device communication, and MIPI DSI display support, and now requires Python 3.11 or newer.

## Introduction to ML monitoring

DevFeed: [Introduction to ML monitoring](<https://devfeed.tech/articles/introduction-to-ml-monitoring-28602.md>)

Original publisher: [Read original article](<https://www.marvelousmlops.io/p/introduction-to-ml-monitoring>)

Author: Başak Tuğçe Eskili

Published: 2025-08-05T21:56:29Z

Content type: tutorial

Language: en

Sources: [MarvelousMLOps](<https://devfeed.tech/sources/marvelousmlops.md>)

Topics: [databricks](<https://devfeed.tech/topics/databricks.md>), [MLOps](<https://devfeed.tech/topics/mlops.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [course](<https://devfeed.tech/tags/course.md>), [data](<https://devfeed.tech/tags/data.md>), [databricks](<https://devfeed.tech/tags/databricks.md>), [errors](<https://devfeed.tech/tags/errors.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [latency](<https://devfeed.tech/tags/latency.md>), [ml](<https://devfeed.tech/tags/ml.md>), [mlops](<https://devfeed.tech/tags/mlops.md>), [model](<https://devfeed.tech/tags/model.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [performance](<https://devfeed.tech/tags/performance.md>), [predictions](<https://devfeed.tech/tags/predictions.md>), [production](<https://devfeed.tech/tags/production.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

An introductory lecture in the MLOps with Databricks course explains why machine learning systems require monitoring beyond system health, errors, latency, KPIs, and infrastructure costs. It introduces data drift and concept drift as causes of model performance degradation, even when code and infrastructure remain unchanged.

### Source excerpt

Lecture 9 of MLOps with Databricks course

## Introduction to MLOps

DevFeed: [Introduction to MLOps](<https://devfeed.tech/articles/introduction-to-mlops-28603.md>)

Original publisher: [Read original article](<https://www.marvelousmlops.io/p/introduction-to-mlops>)

Author: Maria Vechtomova

Published: 2025-07-28T17:19:47Z

Content type: tutorial

Language: en

Sources: [MarvelousMLOps](<https://devfeed.tech/sources/marvelousmlops.md>)

Topics: [MLOps](<https://devfeed.tech/topics/mlops.md>), [databricks](<https://devfeed.tech/topics/databricks.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [audit-trail](<https://devfeed.tech/tags/audit-trail.md>), [course](<https://devfeed.tech/tags/course.md>), [databricks](<https://devfeed.tech/tags/databricks.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [mlops](<https://devfeed.tech/tags/mlops.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [production](<https://devfeed.tech/tags/production.md>), [reproducibility](<https://devfeed.tech/tags/reproducibility.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Lecture 1 of a hands-on MLOps with Databricks course explains what production means for machine-learning workflows. It uses a demand-forecasting example to show why scheduled notebooks may lack testing, monitoring, error handling, version control, deployment processes, rollback, and audit trails, and introduces MLOps principles for improving reliability and control.

### Source excerpt

Lecture 1 of MLOps with Databricks course

## What is agentic AI? An introduction to autonomous agents

DevFeed: [What is agentic AI? An introduction to autonomous agents](<https://devfeed.tech/articles/what-is-agentic-ai-an-introduction-to-autonomous-agents-12780.md>)

Original publisher: [Read original article](<https://www.redpanda.com/blog/what-is-agentic-ai-introduction-autonomous-agents>)

Author: Manish Hatwalne

Published: 2025-05-29T00:00:00Z

Content type: article

Language: en

Sources: [Redpanda](<https://devfeed.tech/sources/redpanda.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [agentic-ai-applications](<https://devfeed.tech/tags/agentic-ai-applications.md>), [agentic-ai-architecture](<https://devfeed.tech/tags/agentic-ai-architecture.md>), [agentic-ai-challenges](<https://devfeed.tech/tags/agentic-ai-challenges.md>), [agentic-ai-system-components](<https://devfeed.tech/tags/agentic-ai-system-components.md>), [agentic-ai-vs-traditional-ai](<https://devfeed.tech/tags/agentic-ai-vs-traditional-ai.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [autonomous](<https://devfeed.tech/tags/autonomous.md>), [autonomous-agents](<https://devfeed.tech/tags/autonomous-agents.md>), [beginner](<https://devfeed.tech/tags/beginner.md>), [components](<https://devfeed.tech/tags/components.md>), [deploying-agentic-ai](<https://devfeed.tech/tags/deploying-agentic-ai.md>), [fundamentals](<https://devfeed.tech/tags/fundamentals.md>), [how-agentic-ai-works](<https://devfeed.tech/tags/how-agentic-ai-works.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [introduction-to-agentic-ai](<https://devfeed.tech/tags/introduction-to-agentic-ai.md>), [real-world-uses-of-agentic-ai](<https://devfeed.tech/tags/real-world-uses-of-agentic-ai.md>), [what-is-agentic-ai](<https://devfeed.tech/tags/what-is-agentic-ai.md>)

### AI overview

A beginner-friendly introduction to agentic AI and autonomous agents. It explains how these systems perceive environments, reason, make decisions, and act independently through iterative loops, contrasting them with traditional AI that follows fixed instructions. The article also introduces architectural components, deployment challenges, safety, ethics, and real-world applications.

### Source excerpt

A beginner-friendly introduction to agentic AI, its core components, challenges, and real-world uses. Read on.

## Video: netlab Introduction by Ethan Banks

DevFeed: [Video: netlab Introduction by Ethan Banks](<https://devfeed.tech/articles/video-netlab-introduction-by-ethan-banks-11181.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/05/ethan-banks-netlab-intro/>)

Published: 2025-05-23T06:45:00Z

Content type: article

Language: en

Sources: [ipSpace.net blog](<https://devfeed.tech/sources/ipspace-net-blog.md>)

Topics: [Network](<https://devfeed.tech/topics/network.md>), [YAML](<https://devfeed.tech/topics/yaml.md>)

Tags: [commands](<https://devfeed.tech/tags/commands.md>), [container](<https://devfeed.tech/tags/container.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [network](<https://devfeed.tech/tags/network.md>), [video](<https://devfeed.tech/tags/video.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A short recommendation of Ethan Banks's introductory video on Netlab, covering how to start and configure container- or VM-based network labs with YAML and basic netlab commands.

### Source excerpt

Ethan Banks created an excellent introductory Netlab - Automate Your Network Labs With YAML! video showing how easy it is to start and configure a container- or VM-based lab, and explaining the basic netlab commands you need to get started. Thanks a million! P.S.: If you've done something similar and I haven't noticed it, please send me the link.

## Gophercon Latam 2025 - Serving TUIs over SSH using Go ✨

DevFeed: [Gophercon Latam 2025 - Serving TUIs over SSH using Go ✨](<https://devfeed.tech/articles/gophercon-latam-2025-serving-tuis-over-ssh-using-go-37743.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/gophercon-latam-2025/>)

Author: Carlos Alexandro Becker

Published: 2025-05-05T00:00:00Z

Content type: article

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [ssh](<https://devfeed.tech/topics/ssh.md>), [Go](<https://devfeed.tech/topics/go.md>), [Text-based user interface](<https://devfeed.tech/topics/tui.md>), [Sequences](<https://devfeed.tech/topics/sequences.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [ansi](<https://devfeed.tech/tags/ansi.md>), [build](<https://devfeed.tech/tags/build.md>), [code](<https://devfeed.tech/tags/code.md>), [event](<https://devfeed.tech/tags/event.md>), [go](<https://devfeed.tech/tags/go.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [interviews](<https://devfeed.tech/tags/interviews.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [photos](<https://devfeed.tech/tags/photos.md>), [repository](<https://devfeed.tech/tags/repository.md>), [sequences](<https://devfeed.tech/tags/sequences.md>), [serve](<https://devfeed.tech/tags/serve.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [talk](<https://devfeed.tech/tags/talk.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A recap of a Gophercon Latam 2025 talk covering terminal history, ANSI escape sequences, SSH, and how to build and serve a text-based user interface using Bubble Tea and Wish.

### Source excerpt

My talk at Gophercon Latam 2025, showing a brief history of terminals, an introduction to ANSI escape sequences, a briefer introduction to SSH, and finally, how to build and serve a TUI using Bubble Tea and Wish.

## Simplifying Kubernetes: An Introduction to Rancher

DevFeed: [Simplifying Kubernetes: An Introduction to Rancher](<https://devfeed.tech/articles/simplifying-kubernetes-an-introduction-to-rancher-64.md>)

Original publisher: [Read original article](<https://blog.abhimanyu-saharan.com/posts/simplifying-kubernetes-an-introduction-to-rancher>)

Author: Abhimanyu Saharan

Published: 2025-03-01T00:00:00Z

Content type: article

Language: en

Sources: [Abhimanyu Saharan](<https://devfeed.tech/sources/abhimanyu-s-blog.md>)

Topics: [rancher](<https://devfeed.tech/topics/rancher.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [devops](<https://devfeed.tech/tags/devops.md>), [integration](<https://devfeed.tech/tags/integration.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [management](<https://devfeed.tech/tags/management.md>), [rancher](<https://devfeed.tech/tags/rancher.md>), [security](<https://devfeed.tech/tags/security.md>), [zero-to-hero-rancher](<https://devfeed.tech/tags/zero-to-hero-rancher.md>)

### AI overview

An introduction to Rancher and how it simplifies Kubernetes management across environments, with an emphasis on security and integration for DevOps teams.

### Source excerpt

Discover how Rancher makes Kubernetes management easy with enhanced security and seamless integration across environments. Perfect for DevOps teams!

## Listing all mounts in all mount namespaces

DevFeed: [Listing all mounts in all mount namespaces](<https://devfeed.tech/articles/listing-all-mounts-in-all-mount-namespaces-33956.md>)

Original publisher: [Read original article](<https://brauner.io/2024/12/16/list-all-mounts.html>)

Author: Christian Brauner

Published: 2024-12-15T23:00:00Z

Content type: tutorial

Language: en

Sources: [Personal blog of Christian Brauner](<https://devfeed.tech/sources/personal-blog-of-christian-brauner.md>)

Topics: [mount](<https://devfeed.tech/topics/mount.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mount](<https://devfeed.tech/tags/mount.md>)

### AI overview

A technical explanation of Linux APIs and system calls for retrieving mount information, iterating through mounts and mount subtrees, and listing mounts in other mount namespaces. It also describes retrieving mount namespace IDs and iterating through mount namespaces.

### Source excerpt

Introduction

## Introduction to Zephyr OS Tracing and Profiling

DevFeed: [Introduction to Zephyr OS Tracing and Profiling](<https://devfeed.tech/articles/introduction-to-zephyr-os-tracing-and-profiling-13672.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2024/11/zephyr-tracing-and-profiling/>)

Author: John Lee

Published: 2024-11-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Zephyr RTOS](<https://devfeed.tech/topics/zephyr-rtos.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [blog](<https://devfeed.tech/tags/blog.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32-c6](<https://devfeed.tech/tags/esp32-c6.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [jtag](<https://devfeed.tech/tags/jtag.md>), [logging](<https://devfeed.tech/tags/logging.md>), [performance](<https://devfeed.tech/tags/performance.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [python](<https://devfeed.tech/tags/python.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [threads](<https://devfeed.tech/tags/threads.md>), [tracing](<https://devfeed.tech/tags/tracing.md>), [usb](<https://devfeed.tech/tags/usb.md>), [zephyr](<https://devfeed.tech/tags/zephyr.md>), [zephyr-os](<https://devfeed.tech/tags/zephyr-os.md>)

### AI overview

This article introduces tracing and profiling for embedded systems using Zephyr RTOS. It explains how tracing records execution data from functions, threads, and interrupts, while profiling measures metrics such as execution time, CPU usage, and dynamic memory usage. It also demonstrates Zephyr's native tracing workflow on an ESP32-C6 and introduces Percepio's Tracealyzer as a third-party analysis tool.

### Source excerpt

This is an introduction to the critical embedded system debugging techniques of tracing and profiling within the Zephyr RTOS. After reading this article, you can use Zephyr's native tracing tools to gain a visual, in-depth understanding of system dynamics, helping to evaluate performance, spot timing issues, and diagnose complex problems like memory leaks or thread interaction glitches.

## JSON Handling and Type Management with Large Datasets in Go - Ep.4

DevFeed: [JSON Handling and Type Management with Large Datasets in Go - Ep.4](<https://devfeed.tech/articles/json-handling-and-type-management-with-large-datasets-in-go-ep-4-22262.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/10/json-handling-and-type-management-with-large-datasets-in-go.html>)

Published: 2024-11-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Code](<https://devfeed.tech/topics/code.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [advanced-json-management-go](<https://devfeed.tech/tags/advanced-json-management-go.md>), [code](<https://devfeed.tech/tags/code.md>), [custom-go-struct-json-serialization](<https://devfeed.tech/tags/custom-go-struct-json-serialization.md>), [custom-json-serialization-go](<https://devfeed.tech/tags/custom-json-serialization-go.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [efficient-json-processing-in-go](<https://devfeed.tech/tags/efficient-json-processing-in-go.md>), [encoding-json](<https://devfeed.tech/tags/encoding-json.md>), [examples](<https://devfeed.tech/tags/examples.md>), [go](<https://devfeed.tech/tags/go.md>), [go-encoding-json-package](<https://devfeed.tech/tags/go-encoding-json-package.md>), [go-json-handling-tutorial](<https://devfeed.tech/tags/go-json-handling-tutorial.md>), [go-selective-decoding](<https://devfeed.tech/tags/go-selective-decoding.md>), [go-type-management-json](<https://devfeed.tech/tags/go-type-management-json.md>), [handling-mixed-type-arrays-json-go](<https://devfeed.tech/tags/handling-mixed-type-arrays-json-go.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [json](<https://devfeed.tech/tags/json.md>), [json-anonymous-structures-go](<https://devfeed.tech/tags/json-anonymous-structures-go.md>), [json-best-practices](<https://devfeed.tech/tags/json-best-practices.md>), [json-data-optimization-techniques](<https://devfeed.tech/tags/json-data-optimization-techniques.md>), [json-for-engineers](<https://devfeed.tech/tags/json-for-engineers.md>), [json-handling-techniques-for-engineers](<https://devfeed.tech/tags/json-handling-techniques-for-engineers.md>), [json-marshaler-and-unmarshaler-interfaces-in-go](<https://devfeed.tech/tags/json-marshaler-and-unmarshaler-interfaces-in-go.md>), [json-nested-fields-go](<https://devfeed.tech/tags/json-nested-fields-go.md>), [json-strategies-large-datasets](<https://devfeed.tech/tags/json-strategies-large-datasets.md>), [json-type-pollution-avoidance](<https://devfeed.tech/tags/json-type-pollution-avoidance.md>), [managing-large-json-datasets-in-go](<https://devfeed.tech/tags/managing-large-json-datasets-in-go.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [reducing-type-declarations-go](<https://devfeed.tech/tags/reducing-type-declarations-go.md>), [serialization](<https://devfeed.tech/tags/serialization.md>)

### AI overview

Episode 4 of the JSON for Engineers series explains how to process large JSON datasets in Go. It covers selective decoding with anonymous structures, custom JSON serialization through Marshaler and Unmarshaler interfaces, and handling mixed-type arrays.

### Source excerpt

Introduction: Welcome to Episode 4 of the JSON for Engineers series! In this episode, we tackle the complexities of working with JSON data, especially when dealing with extensive datasets and optimizing type management. Here, Miki introduces key strategies for managing large JSON documents, avoiding unnecessary type definitions, and using Go's encoding/json package to handle custom serialization needs effectively. Type Pollution Avoidance: Minimizing type declarations by using selective decoding and anonymous structures. Custom JSON Serialization: Implementing Go's Marshaler and Unmarshaler interfaces for precise JSON formatting. Working with Mixed-Type Arrays: Handling JSON arrays containing diverse types in Go Miki begins by addressing the challenge of "type pollution" when working with large JSON responses. When dealing with massive JSON datasets, like data from social trading platforms, defining a separate type for every possible field can quickly lead to an unwieldy codebase. To streamline this, Miki demonstrates how to leverage anonymous structures and selective decoding in Go. By defining only the relevant fields within a function, we can avoid creating additional struct types, making the code more compact and efficient. This technique is especially useful when working with JSON data containing nested fields that may not all be necessary for your application. Through this approach, Go's encoding/json package will simply ignore any unreferenced fields, allowing you to handle only the data that matters to your project.

## Get $1,000 in free credits and build better Workflows with Temporal Cloud

DevFeed: [Get $1,000 in free credits and build better Workflows with Temporal Cloud](<https://devfeed.tech/articles/get-1-000-in-free-credits-and-build-better-workflows-with-temporal-cloud-35840.md>)

Original publisher: [Read original article](<https://temporal.io/blog/get-usd1-000-in-free-credits-and-build-better-workflows-with-temporal-cloud>)

Author: Tim Imkin

Published: 2024-11-06T08:00:00Z

Content type: release

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [Cloud](<https://devfeed.tech/topics/cloud.md>), [Development](<https://devfeed.tech/topics/development.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Availability](<https://devfeed.tech/topics/availability.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [capabilities](<https://devfeed.tech/tags/capabilities.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [development](<https://devfeed.tech/tags/development.md>), [durability](<https://devfeed.tech/tags/durability.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [free](<https://devfeed.tech/tags/free.md>), [high-availability](<https://devfeed.tech/tags/high-availability.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

Temporal Cloud announces self-service sign-up and $1,000 in free credits for new users. The article explains that the managed platform handles infrastructure tasks such as task distribution, error handling, and retries for developers building scalable workflows.

### Source excerpt

Start your free trial with Temporal Cloud and get $1,000 in free credits to build better workflows. Experience powerful cloud solutions today!

## Getting Started With ESP-IDF

DevFeed: [Getting Started With ESP-IDF](<https://devfeed.tech/articles/getting-started-with-esp-idf-13879.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/getting-started-with-esp-idf/>)

Author: John Lee

Published: 2024-07-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [ESP32-C3](<https://devfeed.tech/topics/esp32-c3.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [SOC](<https://devfeed.tech/topics/soc.md>), [C](<https://devfeed.tech/topics/c.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [application-development](<https://devfeed.tech/tags/application-development.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [development-board](<https://devfeed.tech/tags/development-board.md>), [download](<https://devfeed.tech/tags/download.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [install](<https://devfeed.tech/tags/install.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [learning](<https://devfeed.tech/tags/learning.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [usb](<https://devfeed.tech/tags/usb.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This tutorial introduces ESP-IDF application development on an Espressif ESP32-C3-DevKitM-1 board. It explains the framework and requirements, then begins a step-by-step setup guide covering drivers, USB connection, and Windows driver installation.

### Source excerpt

Learning Objectives# This tutorial is an introduction to how to develop applications with ESP-IDF and an Espressif development board, in our case ESP32-C3-DevKitM-1. By the end of this tutorial, we will be able to: - Have general understanding of how ESP-IDF works - Able to set up ESP-IDF - Able to run a simple program on an Espressif SoC Recommended prerequisite# This tutorial serves as the foundation of all the other tutorials using Espressif SoCs, such as the ESP32, hence no prerequisite...

## Generic Variance

DevFeed: [Generic Variance](<https://devfeed.tech/articles/generic-variance-25066.md>)

Original publisher: [Read original article](<https://typealias.com/start/kotlin-variance/>)

Author: author@typealias.com (Dave Leeds)

Published: 2024-04-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [generics](<https://devfeed.tech/topics/generics.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>)

Tags: [advanced-kotlin-concepts](<https://devfeed.tech/tags/advanced-kotlin-concepts.md>), [contravariance](<https://devfeed.tech/tags/contravariance.md>), [covariance](<https://devfeed.tech/tags/covariance.md>), [extend](<https://devfeed.tech/tags/extend.md>), [generic-variance](<https://devfeed.tech/tags/generic-variance.md>), [generics](<https://devfeed.tech/tags/generics.md>), [implement](<https://devfeed.tech/tags/implement.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-generics](<https://devfeed.tech/tags/kotlin-generics.md>), [kotlin-type-safety](<https://devfeed.tech/tags/kotlin-type-safety.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-language-type-systems](<https://devfeed.tech/tags/programming-language-type-systems.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [subtyping-in-kotlin](<https://devfeed.tech/tags/subtyping-in-kotlin.md>), [type-parameters](<https://devfeed.tech/tags/type-parameters.md>)

### AI overview

A tutorial on variance in Kotlin generic types. It explains how covariance and contravariance affect subtype relationships between parameterized types, using examples to show when one generic type can substitute for another.

### Source excerpt

We've seen how we can implement interfaces and extend classes to create subtypes. However, with generic types, we sometimes want to create a subtype based on the type arguments instead of the base types. Kotlin gives us a few different tools to achieve this, and in this chapter we'll learn all about them. In order to understand how this is possible, we'll first need to understand the principles of variance. Then, we'll look at three simple rules that explain when one parameterized type can be the subtype of another.

## Generics

DevFeed: [Generics](<https://devfeed.tech/articles/generics-25057.md>)

Original publisher: [Read original article](<https://typealias.com/start/kotlin-generics/>)

Author: author@typealias.com (Dave Leeds)

Published: 2024-03-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [generics](<https://devfeed.tech/topics/generics.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [collections](<https://devfeed.tech/tags/collections.md>), [enum-class](<https://devfeed.tech/tags/enum-class.md>), [function](<https://devfeed.tech/tags/function.md>), [generics](<https://devfeed.tech/tags/generics.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-generic-function](<https://devfeed.tech/tags/kotlin-generic-function.md>), [kotlin-generics](<https://devfeed.tech/tags/kotlin-generics.md>), [kotlin-parameterized-types](<https://devfeed.tech/tags/kotlin-parameterized-types.md>), [kotlin-type-argument](<https://devfeed.tech/tags/kotlin-type-argument.md>), [kotlin-type-erasure](<https://devfeed.tech/tags/kotlin-type-erasure.md>), [kotlin-type-parameter](<https://devfeed.tech/tags/kotlin-type-parameter.md>), [kotlin-type-parameter-constraint](<https://devfeed.tech/tags/kotlin-type-parameter-constraint.md>), [kotlin-type-safety](<https://devfeed.tech/tags/kotlin-type-safety.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [list](<https://devfeed.tech/tags/list.md>), [map](<https://devfeed.tech/tags/map.md>), [pair](<https://devfeed.tech/tags/pair.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

A tutorial introducing Kotlin generics through collection types such as List, Pair, and Map, using a beverage-menu example with classes and an enum class.

### Source excerpt

All the way back in Chapter 8, when we introduced collections, we saw our first generic type: List<String> ... then we saw more generics in Chapter 9 when we looked at the Pair and Map classes. In order to stay focused on learning about collection types, we glossed over the details about these classes. Well, we've put off learning about them for long enough! It's finally time for us to gain a full understanding of generics, so buckle up!

[Next page](<https://devfeed.tech/tags/introduction.md?cursor=WyIyMDI0LTAzLTI2VDAwOjAwOjAwKzAwOjAwIiwgIjZjOWI0YmU5LTNkY2MtNDE0MS04ZWI1LWE3Nzc0NmI4MWI1ZSJd>)