EraCode practice

Public coding challenges

Browse community-shared practice across technologies. These pages are teasers only — skill maintenance still happens when you attempt the full challenge inside EraCode.

Deduplicate While Preserving Order

intermediateMulti-PartJavaScript

Quick check on array collections: when to choose different built-ins, then implement a tiny utility to remove duplicates without reordering.

Safe Number Parsing with try/except/else

beginnerMulti-PartPython

Quick practice on Python error handling: understand when to catch exceptions, and implement a small try/except/else pattern to return a clean result.

Fast membership checks with Set

intermediateMulti-PartJavaScript

A quick performance-focused check: recognize when O(1) lookups beat repeated linear scans, then implement a tiny optimization in code.

Render a Fast List with a DocumentFragment

intermediateMulti-PartJavaScript

Quick practice on efficient DOM rendering: batch-create nodes off-screen, then paint once.

Mini Input Check: Confirm a Y/N Choice

beginnerMulti-PartPython

Practice working with user input by normalizing a simple form-style yes/no response and deciding what message to show.

Inject a request-scoped value with Next.js Middleware + header()

intermediateMulti-PartNext.js

Practice lightweight dependency injection in Next.js by pushing a value into the request context (via a header) and consuming it in a Server Component.

Typed route builder from a route map

advancedMulti-PartTypeScript

Advanced TypeScript routing/navigation practice: reason about typed route params (quiz), then implement a tiny type-safe navigation helper (coding) with a single missing piece.

3‑Minute Git Performance Drill: Speed up repetitive diffs

intermediateMulti-PartGit

Practice a small Git performance tweak: enable and verify rename detection in diffs to reduce noisy, slow reviews in repos with frequent file moves.

HTTP client timeout: fail fast on slow servers

intermediateMulti-PartGo

Quick network I/O practice: reason about Go HTTP timeouts, then fill one missing line to ensure an outbound request doesn't hang.

Typed CSS Variables for Theme Tokens

intermediateMulti-PartTypeScript

Quick practice on modeling UI styling tokens in TypeScript using typed CSS custom properties (CSS variables).

Daily C++: Turn exceptions into an error string

intermediateMulti-PartC++

Quick practice on C++ error handling: catching exceptions and returning a safe, user-facing error result without crashing.

Daily TS Text: Safe Prefix Stripping

intermediateMulti-PartTypeScript

Practice a focused string/text task in TypeScript: understand how prefix checks narrow strings conceptually, then implement a tiny utility to strip an optional prefix.

Batch DOM Writes with a DocumentFragment

intermediateMulti-PartJavaScript

A quick performance-focused check-in: avoid unnecessary layout/reflow by batching DOM insertions.

Schema-qualified module calls with dblink

intermediateMulti-PartSQL

Quick practice on using a PostgreSQL extension like a “module”: understand how it’s installed/exposed and write one query that calls it safely.

DRF Mini: Format a computed field with SerializerMethodField

intermediateMulti-PartDjango REST Framework

Quick practice on shaping output JSON in Django REST Framework by adding a computed, formatted field to a serializer.

Accessible focus: programmatically focus an error summary

intermediateMulti-PartJavaScript

Practice a small JavaScript accessibility pattern: move keyboard focus to an error summary after validation so screen reader and keyboard users get immediate context.

Testing: Verify a function was called with the right args (Jest spy)

intermediateMulti-PartJavaScript

Quick check-in on JavaScript testing: understand when to use a spy and implement a tiny Jest assertion to verify call arguments.

Stabilize context value to prevent wasted re-renders

intermediateMulti-PartReact.js

Quick performance-focused drill: identify when context updates cause unnecessary renders, then fix a small Provider so its value stays referentially stable across renders unless the data actually changes.

Request Flow in SQL: Consistent Reads with a Transaction Snapshot

intermediateMulti-PartSQL

Practice treating a SQL transaction as the “request scope” so multiple queries in one request see a consistent view of data.

DynamoDB Item Size: Pick the Right Shape

intermediateMulti-PartAWS

Quick daily practice on AWS data structures: choose an efficient DynamoDB attribute type and implement a tiny helper that builds a compact DynamoDB item from a JS object.

Snapshot testing a dict result with pytest

intermediateMulti-PartPython

Quick practice on Python testing: assert a stable snapshot of a function’s returned dict using pytest.

Route users by locale with CloudFront Viewer Country

intermediateMulti-PartAWS

Practice an internationalization pattern on AWS: using CloudFront geolocation to pick a locale-specific origin path without changing your app code.

Lambda Cold Start: One-Time Init with Lazy Global Cache

intermediateMulti-PartAWS

Practice a lifecycle/initialization pattern in AWS Lambda: doing expensive setup once per execution environment and reusing it across invocations.

Stop Recursive Step Functions Executions Safely

intermediateMulti-PartAWS

Practice preventing accidental recursion in AWS Step Functions by using execution metadata to short-circuit loops.

Browse by technology