Skip to content
tezvyn:

All bites

The whole library, newest first. Filter by what you are here for, or pick a topic if you already know.

8668 bites

Page 159

Growth & Experimentation2 min read

Revenue Churn: Dollars Lost, Not Logos

Revenue churn tracks dollars lost from your existing base, not just headcount. In subscriptions, one enterprise downgrade can dwarf ten small cancellations. Teams often celebrate low logo churn while ignoring revenue churn that silently erodes growth.

Growth & Experimentation2 min read

Golden Path: The One Journey That Matters

Golden Path is the single user journey that drives core value. In growth, you optimize this highway before fixing side roads. The footgun is A/B testing edge cases while your main funnel leaks users.

Growth & Experimentation2 min read

Bayesian vs. Frequentist A/B Testing

Frequentist testing asks how surprising a result is if nothing changed; Bayesian asks probability B is better. Frequentist fixes sample size to control false positives, while Bayesian lets you peek.

Growth & Experimentation2 min read

Framing Effect: Presentation Rewires Decisions

The same fact hits differently depending on its wrapper. In growth, framing decides whether users see "90% uptime" or "10% downtime," swinging conversions without changing the product. Teams obsess over the offer yet ship copy that frames value as a loss.

Growth & Experimentation2 min read

Commitment and Consistency: The Identity Ratchet

People follow through on what they already said yes to. Use it to turn a tiny user action into sustained engagement, or to get a team to ship by making a public deadline. A coerced yes creates resentment, not consistency.

Growth & Experimentation2 min read

Scarcity Principle: Limit Availability to Drive Action

People want what they might lose. In growth, scarcity amplifies conversion by framing offers as limited in time, quantity, or access. The footgun is fake scarcity: invented limits destroy trust and backfire permanently.

Growth & Experimentation2 min read

Sessionization: Bounding Events into Visits

Sessionization groups raw user events into visits using idle timeouts. Teams use it to measure engagement and attribute conversions per sitting. The footgun is treating sessions as users, which inflates counts and wrecks retention analysis.

Growth & Experimentation2 min read

HEART Framework: Five Metrics for Product Health

HEART is a vital-signs panel for product health, not a single score. Use it to pick metrics for feature launches so you track user value, not vanity numbers. Measuring all five dimensions when only one matters creates dashboard bloat and analysis paralysis.

Growth & Experimentation2 min read

PPC: Buying Intent, Not Attention

PPC buys intent, not attention: you bid to appear when someone searches for what you sell, paying only if they click. Use it for high-intent offers like B2B software where organic reach is slow.

Explain the performance overhead of a cgo call
Go & Rust2 min read

Explain the performance overhead of a cgo call

Tests cgo transition penalties and scheduler semantics. A strong answer cites the ~100x overhead (~171ns vs ~1.8ns), notes C blocks an OS thread and starves the scheduler, and warns about memory copy taxes. Red flag: claiming cgo is free or ignoring blocking.

Go & Rust2 min read

Why must FFI-bound structs use #[repr(C)] and what breaks without it?

Repr(C) fixes field order, size, alignment to C rules for extern calls; omitting it lets Rust reorder or pad fields, causing UB.

Use a C malloc'd char* in Go and Rust, then free it
Go & Rust2 min read

Use a C malloc'd char* in Go and Rust, then free it

Tests FFI allocator discipline. In Go, copy with C.GoString then C.free the *C.char. In Rust, read via CStr::from_ptr, copy to String, then libc::free. Red flag: letting Go GC or Rust Drop manage C memory, or using CString::from_raw on C malloc'd pointers.

Go & Rust2 min read

Pass a string from Go and Rust to C safely

This tests FFI ownership and null-termination. In Go, use C.CString then C.free it. In Rust, create a std::ffi::CString, bind it to a let, then pass as_ptr while the binding lives. Red flag: claiming Rust is auto-safe without mentioning the temp-drop gotcha.

Go & Rust2 min read

Purpose of Go import C and Rust equivalent mechanism

This tests FFI entry points: Go's import "C" activates cgo to reference C symbols directly, while Rust uses an unsafe extern "C" block to declare external functions. A red flag is calling either a normal import or omitting unsafe in Rust.

Go & Rust2 min read

Design a safe Rust wrapper taking &[i32] and returning Vec<i32>

Tests Rust FFI buffer-output encapsulation. A strong answer declares an unsafe extern C block, allocates a Vec with capacity, passes as_mut_ptr and a local size_t, validates returned length, then calls set_len.

Go & Rust2 min read

Implement a custom derive macro for a Builder pattern

Tests proc-macro AST transformation. A strong answer lists: parse TokenStream with syn into DeriveInput, inspect fields, then quote builder code as TokenStream, noting the separate proc-macro crate. Red flag: treating tokens as strings instead of AST nodes.

Go & Rust2 min read

What are Rust's three procedural macros and derive's advantage over macro_rules?

Tests Rust macros and AST generation vs text macros. Lists derive, attribute-like, and function-like macros, then explains derive needs AST introspection for per-field impl unreachable with macro_rules. Red flag: that macro_rules can iterate struct fields.

Go & Rust2 min read

In Go's reflect package, what is settability and how is it obtained?

This tests whether you know reflection mutates only addressable storage. Settability means a Value points to actual memory; obtain it by calling reflect.ValueOf on a pointer then Elem, or on slice elements. Set panics when the Value is a copy, not an address.

Go & Rust2 min read

Using reflect, iterate a pointer-to-struct's fields

Tests fluency with Go reflection for indirection and field traversal. Outline: ValueOf/TypeOf, guard IsValid, check Kind==Ptr, Elem to struct, loop NumField with Type for names and Value for values. Red flag: Field() on the pointer before Elem panics.

Go & Rust2 min read

What does unsafe enable in Go and Rust? List two operations.

Go unsafe enables pointer arithmetic and type punning; Rust unsafe permits raw pointer dereferencing and FFI.