# stories

Published articles for stories.

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

## Stories from our latest intern class

DevFeed: [Stories from our latest intern class](<https://devfeed.tech/articles/stories-from-our-latest-intern-class-27409.md>)

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

Author: Khan Academy

Published: 2015-12-21T23:00:00Z

Content type: article

Language: en

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

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Ionic](<https://devfeed.tech/topics/ionic.md>), [AdventureX 2026](<https://devfeed.tech/topics/adventurex2026.md>)

Tags: [backup](<https://devfeed.tech/tags/backup.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [email](<https://devfeed.tech/tags/email.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [github](<https://devfeed.tech/tags/github.md>), [hackathon](<https://devfeed.tech/tags/hackathon.md>), [intern](<https://devfeed.tech/tags/intern.md>), [ionic](<https://devfeed.tech/tags/ionic.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [news](<https://devfeed.tech/tags/news.md>), [programming](<https://devfeed.tech/tags/programming.md>), [project](<https://devfeed.tech/tags/project.md>), [stories](<https://devfeed.tech/tags/stories.md>), [web-frontend](<https://devfeed.tech/tags/web-frontend.md>)

### AI overview

This article shares reflections from Khan Academy's 2015 intern class. It describes a hackathon project that used Ionic to build a mobile app for browsing and playing JavaScript projects, and discusses backing up Khan Academy mailing-list data.

### Source excerpt

By 2015 Interns We sent an email out to all of the 2015 interns in early November, shortly ... Read more

## Hedge 305: From Security to Networking

DevFeed: [Hedge 305: From Security to Networking](<https://devfeed.tech/articles/hedge-305-from-security-to-networking-10872.md>)

Original publisher: [Read original article](<https://rule11.tech/hedge-305/>)

Author: Russ

Published: 2026-05-15T12:27:04Z

Content type: opinion

Language: en

Sources: [rule 11 reader](<https://devfeed.tech/sources/rule-11-reader.md>)

Topics: [networking](<https://devfeed.tech/topics/networking.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [audio](<https://devfeed.tech/tags/audio.md>), [hedge](<https://devfeed.tech/tags/hedge.md>), [networking](<https://devfeed.tech/tags/networking.md>), [security](<https://devfeed.tech/tags/security.md>), [stories](<https://devfeed.tech/tags/stories.md>), [university](<https://devfeed.tech/tags/university.md>)

### AI overview

A podcast discussion with Ayush Mishra, a University of Colorado Boulder student, about his transition from security to network engineering.

### Source excerpt

We don't often hear the stories of those who move from some other IT career field into network engineering. Ayush Mishra, a student at University of Colorado Boulder, joins Tom and Russ to discuss why he moved from security to network engineering.

## Node.js LGBTQIA+ Stories: Emelia Smith

DevFeed: [Node.js LGBTQIA+ Stories: Emelia Smith](<https://devfeed.tech/articles/node-js-lgbtqia-stories-emelia-smith-2434.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/community/2025-06-28-Emelia-Smith>)

Published: 2025-06-30T16:00:00Z

Content type: article

Language: en

Sources: [Node.js Blog](<https://devfeed.tech/sources/node-js-blog.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [australia](<https://devfeed.tech/tags/australia.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [js](<https://devfeed.tech/tags/js.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [npm](<https://devfeed.tech/tags/npm.md>), [programming](<https://devfeed.tech/tags/programming.md>), [stories](<https://devfeed.tech/tags/stories.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

Emelia Smith recounts growing up in rural Australia, finding community through online chat rooms, and moving from graphic design interests into programming and web development. The article describes how an early chat client built with XULRunner led to an interest in asynchronous network I/O, followed by discovering Node.js and beginning to contribute to its early development, including the emergence of npm and Express.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## World Experience: Updates from the Next Billion Fellowship

DevFeed: [World Experience: Updates from the Next Billion Fellowship](<https://devfeed.tech/articles/world-experience-updates-from-the-next-billion-fellowship-17167.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2025/06/16/world-experience>)

Author: Next Billion

Published: 2025-06-16T00:00:00Z

Content type: article

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [development](<https://devfeed.tech/tags/development.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [next](<https://devfeed.tech/tags/next.md>), [next-billion](<https://devfeed.tech/tags/next-billion.md>), [stories](<https://devfeed.tech/tags/stories.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

An update on the Next Billion Fellowship Program introduces four new fellows and highlights the work of five alumni. Their projects explore digital identity, climate finance and conservation data, Ethereum-based initiatives in global development, and disaster-response systems using zero-knowledge proofs, trusted execution, and satellite imagery.

### Source excerpt

This is an update from the Next Billion Fellowship Program. Applications are rolling and open for cohort 6 beginning in October 2025. Individuals interacting with an application have a user experience. Collectives interacting with a protocol have a world experience. There are many worlds that the Ethereum protocol touches;...

## Stories from Bangkok: Devcon SEA Scholars Program

DevFeed: [Stories from Bangkok: Devcon SEA Scholars Program](<https://devfeed.tech/articles/stories-from-bangkok-devcon-sea-scholars-program-17136.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2025/02/18/devcon-sea-scholars>)

Author: Next Billion

Published: 2025-02-18T00:00:00Z

Content type: article

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Learning](<https://devfeed.tech/topics/learning.md>)

Tags: [bridging](<https://devfeed.tech/tags/bridging.md>), [community](<https://devfeed.tech/tags/community.md>), [creators](<https://devfeed.tech/tags/creators.md>), [devcon](<https://devfeed.tech/tags/devcon.md>), [learning](<https://devfeed.tech/tags/learning.md>), [next-billion](<https://devfeed.tech/tags/next-billion.md>), [stories](<https://devfeed.tech/tags/stories.md>)

### AI overview

The Devcon SEA Scholars Program brought 93 participants from 86 countries to Bangkok to explore how Ethereum connects with different disciplines and communities. The program included community organizers, law students and legal professionals, artists and science-fiction writers, and other builders, who later documented their experiences in Learning Artifacts.

### Source excerpt

Across different disciplines and geographies, builders are exploring how Ethereum fits into their work and communities. The Devcon SEA Scholars Program brought together 93 of these individuals in Bangkok who are bridging Ethereum with other worlds and pushing Ethereum's boundaries. This community of builders, thinkers, and creators was selected...

## Meet Cohort 4 of the Next Billion Fellows!

DevFeed: [Meet Cohort 4 of the Next Billion Fellows!](<https://devfeed.tech/articles/meet-cohort-4-of-the-next-billion-fellows-17106.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2024/06/24/next-billion-cohort4>)

Author: Next Billion

Published: 2024-06-24T00:00:00Z

Content type: article

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [data](<https://devfeed.tech/topics/data.md>), [Internet](<https://devfeed.tech/topics/internet.md>)

Tags: [africa](<https://devfeed.tech/tags/africa.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [next-billion](<https://devfeed.tech/tags/next-billion.md>), [node](<https://devfeed.tech/tags/node.md>), [open](<https://devfeed.tech/tags/open.md>), [program](<https://devfeed.tech/tags/program.md>), [stories](<https://devfeed.tech/tags/stories.md>), [web3](<https://devfeed.tech/tags/web3.md>)

### AI overview

The article introduces seven individuals in Cohort 4 of the Next Billion Fellowship Program and describes their projects involving Ethereum, open access, agriculture, marine plastic traceability, human rights, and community infrastructure.

### Source excerpt

As a global public resource, technology must remain open, accessible, and dedicated to promoting the greater good. The Next Billion Fellowship Program is a testament to this vision, seeking to capture stories of communities whose lives are changing for the better. Today, we are proud to introduce seven individuals with...

## Working Backwards

DevFeed: [Working Backwards](<https://devfeed.tech/articles/working-backwards-27863.md>)

Original publisher: [Read original article](<https://gagor.pro/book/2024/working-backwards/>)

Author: Tom

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

Content type: opinion

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

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

Tags: [business](<https://devfeed.tech/tags/business.md>), [company](<https://devfeed.tech/tags/company.md>), [insights](<https://devfeed.tech/tags/insights.md>), [leadership](<https://devfeed.tech/tags/leadership.md>), [management](<https://devfeed.tech/tags/management.md>), [organization](<https://devfeed.tech/tags/organization.md>), [secrets](<https://devfeed.tech/tags/secrets.md>), [stories](<https://devfeed.tech/tags/stories.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

The article discusses Working Backwards by Colin Bryar and explains Amazon's Leadership Principles as core values intended to guide leaders and employees. It includes principles such as customer obsession, ownership, innovation, learning, high standards, and bias for action.

### Source excerpt

Working Backwards Insights, Stories, and Secrets from Inside Amazon Author: Colin Bryar This book is all about the "Amazon Leadership Principles" external link . They are the core values that drive the behavior of leaders and, consequently, all employees in the organization. They were built when the company was scaling rapidly and it was no longer possible to rely on the CEO as the sole source of values and direction. Other leaders had to adopt the same behaviors and set the same expectations to keep the company cohesive.

## Lessons from an Indian Software Engineer

DevFeed: [Lessons from an Indian Software Engineer](<https://devfeed.tech/articles/lessons-from-an-indian-software-engineer-30480.md>)

Original publisher: [Read original article](<https://bytesizedbets.com/p/lessons-from-an-indian-software-engineer>)

Author: TheAnkurTyagi

Published: 2023-11-30T14:00:28Z

Content type: article

Language: en

Sources: [ByteSizedBets](<https://devfeed.tech/sources/bytesizedbets.md>)

Topics: [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Development](<https://devfeed.tech/topics/development.md>), [Software](<https://devfeed.tech/topics/software.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [career-growth](<https://devfeed.tech/tags/career-growth.md>), [challenges](<https://devfeed.tech/tags/challenges.md>), [germany](<https://devfeed.tech/tags/germany.md>), [india](<https://devfeed.tech/tags/india.md>), [journey](<https://devfeed.tech/tags/journey.md>), [learning](<https://devfeed.tech/tags/learning.md>), [software-developer](<https://devfeed.tech/tags/software-developer.md>), [software-engineer](<https://devfeed.tech/tags/software-engineer.md>), [stories](<https://devfeed.tech/tags/stories.md>)

### AI overview

An interview-style profile of Santosh, an Indian software engineer living and working in Germany, covering his early education, entry into computing, and career journey in software engineering.

### Source excerpt

From Mumbai to Hamburg- Unveiling the Success of a Software Engineer

## Meet Caitlin Chen, a Firebase team member working on Test Lab and Console

DevFeed: [Meet Caitlin Chen, a Firebase team member working on Test Lab and Console](<https://devfeed.tech/articles/firebaserfriday-caitlin-chen-16445.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2022/06/meet-firebaser-caitlin>)

Author: Paulette McCroskey

Published: 2022-06-10T00:00:00Z

Content type: article

Language: en

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

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Crashlytics](<https://devfeed.tech/topics/crashlytics.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [community](<https://devfeed.tech/tags/community.md>), [crashlytics](<https://devfeed.tech/tags/crashlytics.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firebaserfriday](<https://devfeed.tech/tags/firebaserfriday.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [series](<https://devfeed.tech/tags/series.md>), [software-engineer](<https://devfeed.tech/tags/software-engineer.md>), [stories](<https://devfeed.tech/tags/stories.md>)

### AI overview

This Firebase team profile introduces Caitlin Chen, who works on Firebase Test Lab and Console after starting as a software engineer on Crashlytics. She discusses learning mobile development through her work across Firebase teams and shares personal interests and cultural background.

### Source excerpt

Join us for the monthly mini-profiles on Firebase team members, aka "Firebasers", from all around the world! Learn about their backgrounds...

## Running a Hack Day

DevFeed: [Running a Hack Day](<https://devfeed.tech/articles/running-a-hack-day-25972.md>)

Original publisher: [Read original article](<https://medium.com/snapp-mobile/running-a-hack-day-9b682cb970d2?source=rss-8efc0359e234------2>)

Author: Jossi Wolf

Published: 2020-12-01T20:46:31Z

Content type: opinion

Language: en

Sources: [Stories by Jossi Wolf on Medium](<https://devfeed.tech/sources/stories-by-jossi-wolf-on-medium.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [Compose](<https://devfeed.tech/topics/compose.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [hack-days](<https://devfeed.tech/tags/hack-days.md>), [hackday](<https://devfeed.tech/tags/hackday.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [learning](<https://devfeed.tech/tags/learning.md>), [programming](<https://devfeed.tech/tags/programming.md>), [stories](<https://devfeed.tech/tags/stories.md>), [team-building](<https://devfeed.tech/tags/team-building.md>), [teamwork](<https://devfeed.tech/tags/teamwork.md>)

### AI overview

The article explains what a hack day is and discusses how it can help developers break from routine work, learn, collaborate across teams, and build connections. It also compares hack days with 20% time and notes that the two approaches can complement each other.

### Source excerpt

Recently, some clients asked us about our opinion on a newly released framework. To get a better idea of it, we ran an internal hack day -- here's how! Stay tuned for the second part about our experiences with running Jetpack Compose hack day! What's a Hack Day? Basically, a hack day is a one-day event where you can work on whatever. This is awesome for exploring a new technology or just doing something different once in a while! There are no rules except for that what you're doing should probably be kinda related to your work, but it doesn't have to be! Why you should run a hack day There are lots of reasons to love hack days -- I'll focus on a few. The benefits will always be a different depending on your company, team and the tech you are working with. It helps people break out of day-to-day work life A hack day can enable working with different people and build connections If you do it right, people will be able to relax a bit A fun breakout First off, hack days are a great thing to break out of day-to-day dev life. Project fatigue gets everyone after a while. Maybe the work is not mundane or boring, but working on exactly the same thing every day can get tedious. The longer you work on a project, the harder the challenges become and the longer the cycles of success/no success become. On a hack day, you will be working on something entirely different, without any expectations. This makes it a lot easier to learn, takes some pressure off and can be very satisfying. Teamwork!Teamwork Since a hack day is a defined space and time for folks to work on something, this makes working together a lot easier -- you're there anyway! Working on something alone can be nice, and maybe that's exactly what somebody is looking for. For others, learning together is a lot more fun and more memorable. Interacting with folks from different teams In our case, we had people working together who normally work on different projects. This helps create connections and makes the team grow toge

## Sample Data in Compose Previews

DevFeed: [Sample Data in Compose Previews](<https://devfeed.tech/articles/sample-data-in-compose-previews-25973.md>)

Original publisher: [Read original article](<https://medium.com/snapp-mobile/sample-data-in-compose-previews-bec32b62370f?source=rss-8efc0359e234------2>)

Author: Jossi Wolf

Published: 2020-07-05T17:45:51Z

Content type: tutorial

Language: en

Sources: [Stories by Jossi Wolf on Medium](<https://devfeed.tech/sources/stories-by-jossi-wolf-on-medium.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Android](<https://devfeed.tech/topics/android.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [components](<https://devfeed.tech/tags/components.md>), [compose](<https://devfeed.tech/tags/compose.md>), [data](<https://devfeed.tech/tags/data.md>), [design-systems](<https://devfeed.tech/tags/design-systems.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [stories](<https://devfeed.tech/tags/stories.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-components](<https://devfeed.tech/tags/ui-components.md>)

### AI overview

This tutorial explains how to provide sample data for Jetpack Compose previews using the @PreviewParameter annotation and PreviewParameterProvider. It addresses previews for parameterized Composables and lists, while noting that the annotation can be used on only one function parameter.

### Source excerpt

This post was written for Compose 0.1.0. Jetpack Compose is Google's new Android UI Toolkit, currently in development. If you already want to have a look, you can play around with it and learn some exciting new things! One area where Compose shines is previews. By annotating Composables with @Preview , you can preview the Composables inside Android Studio. This is very useful when working with e.g. Design Systems, or you just want to explore different variants of your UI components. But often, your Composables will take parameters, like our Project Composable. https://medium.com/media/9384b6a63c4a8ba376843a4ee3b90717/href In these cases, you can't use the Preview annotation on your Composable -- after all, Compose doesn't know where to obtain those parameters. One solution to this is to create "wrapper" Composables without any parameters. https://medium.com/media/d1f3459d8cd4af796160f696d97eb84d/href This has one big downside: You will end up creating lots of preview Composables, cluttering your code. In other cases, you might have a list and want to provide some sample data. With XML, supplying data for the preview was easily doable with the tools namespace. https://medium.com/media/16d547ae6a634bce91bb44023d4919e3/hrefPreviewParameter to the Rescue Luckily, Jetpack Compose has the @PreviewParameter annotation. It can be applied to any parameter of a @Preview. It needs PreviewParameterProvider , a simple interface which we can implement. https://medium.com/media/e1c92b209a2fdff94bb2a44662eee97f/href Finally, we can use the @Preview annotation with our @PreviewParameter -annotated arguments. https://medium.com/media/25d1c0eb02a8bfd7591af59dabce8885/href One caveat is that @PreviewParameter is only allowed on one parameter of a function, which is why we assign a default value to our second parameter. With this, previews become a lot more powerful in Compose. Let me know if this is useful in your day-to-day work and comment with any thoughts on this! Sample Data in Com

## Developer Spotlight: Robert Harris, CTO at Clutch!

DevFeed: [Developer Spotlight: Robert Harris, CTO at Clutch!](<https://devfeed.tech/articles/developer-spotlight-robert-harris-cto-at-clutch-15609.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/developer-spotlight-robert-harris-cto-at-clutch>)

Author: Bobbilee Hartman

Published: 2019-06-26T19:00:00Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Ionic](<https://devfeed.tech/topics/ionic.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [apis](<https://devfeed.tech/tags/apis.md>), [app](<https://devfeed.tech/tags/app.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developers](<https://devfeed.tech/tags/developers.md>), [ionic](<https://devfeed.tech/tags/ionic.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [spotlight](<https://devfeed.tech/tags/spotlight.md>), [stories](<https://devfeed.tech/tags/stories.md>)

### AI overview

This Developer Spotlight interviews Robert Harris, CTO at Clutch!, about the company's gameday parking marketplace and its use of Square APIs and the Square Reader SDK. Clutch! supports advance reservations and in-person card payments, and its mobile app is built with Ionic for iOS and Android.

### Source excerpt

Clutch! is a gameday parking marketplace

## Under the hood of Kotlin Class Delegation

DevFeed: [Under the hood of Kotlin Class Delegation](<https://devfeed.tech/articles/under-the-hood-of-kotlin-class-delegation-25974.md>)

Original publisher: [Read original article](<https://medium.com/snapp-mobile/under-the-hood-of-kotlin-class-delegation-24d53f9aa924?source=rss-8efc0359e234------2>)

Author: Jossi Wolf

Published: 2019-04-09T13:20:12Z

Content type: tutorial

Language: en

Sources: [Stories by Jossi Wolf on Medium](<https://devfeed.tech/sources/stories-by-jossi-wolf-on-medium.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Code](<https://devfeed.tech/topics/code.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [software-development](<https://devfeed.tech/topics/software-development.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [bytecode](<https://devfeed.tech/tags/bytecode.md>), [delegation](<https://devfeed.tech/tags/delegation.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [stories](<https://devfeed.tech/tags/stories.md>)

### AI overview

This Kotlin tutorial explains how class delegation can expose an interface through a class without cluttering it with proxy methods. It also describes the generated delegation functions and their effect on compiled code size.

### Source excerpt

I was told to add an image to the post, so here's one Photo by Jf Brou from Unsplash. Bonus points since Samoyeds are some of the cutest dogs out there! A piece of rather popular advice heard in software development is "favour composition over inheritance". I won't go into the details of why as there is an excellent chapter in "Effective Java" about it, as well as this nice article by Eric Lin. This article explores how class delegation can be useful and how it works under the hood. In our case, we had a custom view which should expose an interface looking like this: https://medium.com/media/2efb0d0125ffec7f388ee2df190bcf6a/href Now it was time to create the CanvasCapabilities implementation. https://medium.com/media/3d8b72ac99b28b99f39c95c882a69dce/href Of course, we don't want to start putting logic into our view just for the sake of exposing the interface through it, which meant that the view now had to act as a "proxy" (implementing the interface and calling the ArtboardCanvas ): https://medium.com/media/f3d51d082e7f23d725ef7efafb3fe131/href Not a nice solution, but at least we extracted the logic. The view was still cluttered though :( Class Delegation to the rescue Using the by keyword in Kotlin, properties and even classes can be delegated. You might know it from using lazy : https://medium.com/media/cbea2e6d1363f31e28552d9a8c87823e/href You can also delegate inheritance, which is what we are after. The usage looks like this: https://medium.com/media/5482d423d1b2a0fcff239f25c4ab31e9/href This delegates the methods from CanvasCapabilities to ArtboardCanvas . No more cluttering with "proxy" calls! Under The Hood Under the hood, Kotlin actually doesn't do any "black magic": It just generates a function which invokes the delegate. The bytecode, decompiled to Java looks like this: https://medium.com/media/34cf5d85a4bcf122bc98d74425e9a5dd/href If you have a lot of methods, that code will still be generated and adding to your compiled code's size, but at least it do

## Everything I wish I didn't know about concurrency

DevFeed: [Everything I wish I didn't know about concurrency](<https://devfeed.tech/articles/everything-i-wish-i-didn-t-know-about-concurrency-15634.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/everything-i-wish-i-didnt-know-about-concurrency>)

Author: Square Engineering

Published: 2015-01-12T17:08:00Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>)

Tags: [concepts](<https://devfeed.tech/tags/concepts.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [software](<https://devfeed.tech/tags/software.md>), [stories](<https://devfeed.tech/tags/stories.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

This article introduces concurrency concepts and idioms, then discusses practical lessons from Square engineers' war stories, anecdotes, and puzzlers. It explains why concurrency matters for building correct, scalable, and performant software and considers examples including client-server interactions, single-threaded applications, OS virtualization, and shared datastores.

### Source excerpt

From concepts and idioms to war stories and anecdotes