# shadowing

Published articles for shadowing.

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

## Taking over the Tech Lead role in your current team

DevFeed: [Taking over the Tech Lead role in your current team](<https://devfeed.tech/articles/taking-over-the-tech-lead-role-in-your-current-team-18074.md>)

Original publisher: [Read original article](<https://level-up-as-a-tech-lead.anemarifiser.com/p/taking-over-the-tech-lead-role-in>)

Author: Anemari Fiser

Published: 2024-10-24T06:01:40Z

Content type: opinion

Language: en

Sources: [Level up as a Tech Lead](<https://devfeed.tech/sources/level-up-as-a-tech-lead.md>)

Topics: [Tech Lead](<https://devfeed.tech/topics/tech-lead.md>), [Support](<https://devfeed.tech/topics/support.md>)

Tags: [communication](<https://devfeed.tech/tags/communication.md>), [leadership](<https://devfeed.tech/tags/leadership.md>), [process](<https://devfeed.tech/tags/process.md>), [project](<https://devfeed.tech/tags/project.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [team](<https://devfeed.tech/tags/team.md>), [teams](<https://devfeed.tech/tags/teams.md>), [tech-lead](<https://devfeed.tech/tags/tech-lead.md>)

### AI overview

An account of transitioning into a Tech Lead role after the previous lead rolled off a project. The transition used a two-month plan involving shadowing, handover sessions, gradually taking over meetings and decisions, and assuming difficult stakeholder conversations. The author identifies the lack of clear communication to the team as the main thing they would change.

### Source excerpt

Diving into one of the most common pathways to the Tech Lead role.

## Scopes and Scope Functions

DevFeed: [Scopes and Scope Functions](<https://devfeed.tech/articles/scopes-and-scope-functions-25063.md>)

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

Author: author@typealias.com (Dave Leeds)

Published: 2022-08-22T00: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: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [apply](<https://devfeed.tech/tags/apply.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn](<https://devfeed.tech/tags/learn.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [let](<https://devfeed.tech/tags/let.md>), [library](<https://devfeed.tech/tags/library.md>), [programming](<https://devfeed.tech/tags/programming.md>), [run](<https://devfeed.tech/tags/run.md>), [scope](<https://devfeed.tech/tags/scope.md>), [scope-function](<https://devfeed.tech/tags/scope-function.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [standard](<https://devfeed.tech/tags/standard.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [variable](<https://devfeed.tech/tags/variable.md>), [visibility](<https://devfeed.tech/tags/visibility.md>), [with](<https://devfeed.tech/tags/with.md>)

### AI overview

A Kotlin tutorial chapter introduces scopes as regions of code where variables, functions, and classes can be declared, then begins explaining Kotlin's five scope functions from the standard library.

### Source excerpt

In the last chapter, we learned how to create extension functions, which can be called using dot notation. In this chapter, we'll learn about scope functions, which are five particular functions that Kotlin gives us in its standard library. Before we can understand scope functions, though, it helps to first understand scopes. Introduction to Scopes In Kotlin, a scope is a section of code where we can declare new variables, functions, classes, and more.

## SRE: On-Call Procedure at trivago

DevFeed: [SRE: On-Call Procedure at trivago](<https://devfeed.tech/articles/sre-on-call-procedure-at-trivago-28024.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2022-07-18-sre-on-call-procedure-at-trivago/>)

Author: Kenechukwu Nnamani Kene is an SRE engineer; An Avid Learner Follow

Published: 2022-07-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [site-reliability-engineering](<https://devfeed.tech/topics/site-reliability-engineering.md>), [incident](<https://devfeed.tech/topics/incident.md>), [Availability](<https://devfeed.tech/topics/availability.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [availability](<https://devfeed.tech/tags/availability.md>), [devops](<https://devfeed.tech/tags/devops.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [engineering-culture](<https://devfeed.tech/tags/engineering-culture.md>), [incident](<https://devfeed.tech/tags/incident.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [on-call](<https://devfeed.tech/tags/on-call.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [site-reliability](<https://devfeed.tech/tags/site-reliability.md>), [sre](<https://devfeed.tech/tags/sre.md>), [uptime](<https://devfeed.tech/tags/uptime.md>), [zoom](<https://devfeed.tech/tags/zoom.md>)

### AI overview

This article describes trivago's SRE on-call procedure, including onboarding, shadowing, scheduling, and rules for detecting, communicating, and resolving incidents. It also explains the company's microservices and Kubernetes-based infrastructure.

### Source excerpt

One of the many responsibilities of a Site Reliability Engineer (SRE), is to ensure uptime, availability and in some cases, consistency of the product. In this context, the product refers to the...

## How Go shadowing and bad choices caused our first data loss bug in years

DevFeed: [How Go shadowing and bad choices caused our first data loss bug in years](<https://devfeed.tech/articles/how-go-shadowing-and-bad-choices-caused-our-first-data-loss-bug-in-years-35843.md>)

Original publisher: [Read original article](<https://temporal.io/blog/go-shadowing-bad-choices>)

Author: Ryland Goldstein

Published: 2021-03-03T04:00:00Z

Content type: opinion

Language: en

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

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [data](<https://devfeed.tech/topics/data.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [reliability](<https://devfeed.tech/topics/reliability.md>), [consistency](<https://devfeed.tech/topics/consistency.md>)

Tags: [applications](<https://devfeed.tech/tags/applications.md>), [bug](<https://devfeed.tech/tags/bug.md>), [data](<https://devfeed.tech/tags/data.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [go](<https://devfeed.tech/tags/go.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>)

### AI overview

A Temporal retrospective describes the company's first data-loss bug in years. The article attributes the incident to Go shadowing and other bad choices, after initially investigating corrupted workflows and suspected persistence-cluster memory issues.

### Source excerpt

I'm Ryland from Temporal - an MIT OSS platform for building highly reliable distributed applications. We pride ourselves on the reliability and consistency Temporal provides to our users mission critical applications.

## Own Your Abstractions

DevFeed: [Own Your Abstractions](<https://devfeed.tech/articles/own-your-abstractions-25810.md>)

Original publisher: [Read original article](<https://www.steveonstuff.com/2019/09/12/own-your-abstractions>)

Author: Steve Barnegren

Published: 2019-09-12T00:00:00Z

Content type: opinion

Language: en

Sources: [Steve Barnegren](<https://devfeed.tech/sources/steve-barnegren.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>)

Tags: [objective-c](<https://devfeed.tech/tags/objective-c.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [swift](<https://devfeed.tech/tags/swift.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article examines a Swift testing technique that mirrors an external concrete type with a protocol and uses mocks for dependency isolation. It argues that this shadowing approach can hide deprecation warnings and encourages designing semantic abstractions instead of replicating awkward APIs.

### Source excerpt

If you want to test your Swift code, at some point you're probably going to need to make some mocks in order to isolate a type that you're testing from system apis. For instance, if your type calls UNNotificationCenter, then in your tests you don't want it to call the real UNNotificiationCenter, but rather a mock substitute that you control.

## Identifying and Scaling a Language Market

DevFeed: [Identifying and Scaling a Language Market](<https://devfeed.tech/articles/identifying-and-scaling-a-language-market-15687.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/identifying-and-scaling-a-language-market>)

Author: Sherry Xia

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

Content type: article

Language: en

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

Topics: [Localization (l10n)](<https://devfeed.tech/topics/localization.md>), [product analytics](<https://devfeed.tech/topics/product-analytics.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [data](<https://devfeed.tech/tags/data.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [experience](<https://devfeed.tech/tags/experience.md>), [insights](<https://devfeed.tech/tags/insights.md>), [language](<https://devfeed.tech/tags/language.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [product-analytics](<https://devfeed.tech/tags/product-analytics.md>), [scale](<https://devfeed.tech/tags/scale.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [support](<https://devfeed.tech/tags/support.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>), [verification](<https://devfeed.tech/tags/verification.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Square used platform language data to identify Spanish-speaking US sellers, found a substantial activation-rate gap compared with English-speaking sellers, and used the findings to guide localization and engineering work. The changes increased the Spanish-speaking sellers' activation rate from about 75% to about 90%.

### Source excerpt

Using data to understand where to improve localization

## Functions and Naked Returns In Go

DevFeed: [Functions and Naked Returns In Go](<https://devfeed.tech/articles/functions-and-naked-returns-in-go-22078.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2013/10/functions-and-naked-returns-in-go.html>)

Published: 2013-10-10T00: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>), [Error Handling](<https://devfeed.tech/topics/error-handling.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [fmt](<https://devfeed.tech/tags/fmt.md>), [function](<https://devfeed.tech/tags/function.md>), [go](<https://devfeed.tech/tags/go.md>), [go-error-handling](<https://devfeed.tech/tags/go-error-handling.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [programming](<https://devfeed.tech/tags/programming.md>), [scope](<https://devfeed.tech/tags/scope.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

This Go tutorial explains returning multiple values, handling errors through returned error values, ignoring a return value with an underscore, naming return arguments, and using naked returns. It also warns about variable shadowing and explains how braces create new scopes.

### Source excerpt

In Go values that are returned from functions are passed by value. Go gives you some nice flexibility when it comes to returning values from a function. Here is a simple example of returning two values from a function: package main import ( "fmt" ) func main() { id, err := ReturnId() if err != nil { fmt.Printf("ERROR: %s", err) return } fmt.Printf("Id: %d\n", id) } func ReturnId() (int, error) { id := 10 return id, nil } The function ReturnId returns a value of type integer and of type error. This is something very common that is done in Go. Error handling is performed by returning a value of type error from your functions and the calling function evaluating that value before continuing. If you don't care about the error for some reason after a function call returns, you can do something like this: id, _ := ReturnId() This time I used an underscore to represent the return value for the second return argument, which was the error. This is really nice because I don't need to declare a variable to hold the value being passed in, I can simply ignore it. You also have the option to name your return arguments: func ReturnId() (id int, err error) { id = 10 return id, err } If you name your return arguments you are creating local variables just like with your function parameters. This time when I set the id variable, I remove the colon (:) from the short variable declaration and convert it to an assignment operation. Then in the return I specify the return variables as normal. Naming your return arguments is a nice way to document what you are returning. There is also something else that you can do with your named arguments, or not do: func ReturnId() (id int, err error) { id = 10 return } This is what is called a naked return. I have removed the arguments from the return statement. The Go compiler automatically returns the current values in the return arguments local variables. Though this is really cool you need to watch for shadowing: func ReturnId() (id int, err error)

## Common Lisp Scoping, Lexical Binding, and Closures

DevFeed: [Common Lisp Scoping, Lexical Binding, and Closures](<https://devfeed.tech/articles/lost-in-scope-34489.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/01/lost-in-scope/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-01-09T10:07:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Common Lisp](<https://devfeed.tech/topics/common-lisp.md>), [Functional programming](<https://devfeed.tech/topics/functional-programming.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [function](<https://devfeed.tech/topics/function.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [function](<https://devfeed.tech/tags/function.md>), [functional-programming](<https://devfeed.tech/tags/functional-programming.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [simple](<https://devfeed.tech/tags/simple.md>)

### AI overview

An article demonstrates Common Lisp scoping through examples involving lexical binding, variable shadowing, generalized booleans, closures, and REPL-based experimentation.

### Source excerpt

Thanks to Mickael on twitter I got to read an article about loosing scope with some common programming languages. As the blog article Lost in scope references functional programming languages and plays with both Javascript and Erlang, I though I had to try it out with Common Lisp too. So, here we go with a simple Common Lisp attempt. The Lost in scope article begins with defining a very simple function returning a boolean value, only true when it's not monday.