Loading…
Latest reads
Every post, summarised
Grounded summaries of engineering blogs, newest first. Each links to the original.
- 4,671 posts
- 20 companies
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
Latest posts
Build Well-Documented and Authenticated APIs in Node.js with Fastify
This walkthrough builds and deploys a Node.js API with Fastify, covering a public directory endpoint and a JWT-protected profile endpoint backed by Heroku Postgres. It uses Fastify’s plugin architecture, including a custom database plugin that reads DATABASE_URL, creates a PostgreSQL pool, and decorates the server with db.query; @fastify/autoload registers plugins from the plugins directory. Authentication uses a JWT signed with an RSA256 private key, while the public key validates requests, and Fastify Swagger plugins generate an OpenAPI specification and UI that Postman can import as an API client. After local testing, the project seeds 50 database records, configures the RSA public key, and deploys through Heroku CLI commands, where the /directory endpoint returns usernames and the deployed API is shown running.
Ensuring data reliability and observability in risk systems
Grab's in-house risk management platform, GrabDefence, relies on ingesting large volumes of upstream data to drive real-time heuristic rules and data science models. To prevent data discrepancies and missing information from degrading fraud detection, the team implemented a real-time data observability pipeline. The solution uses Apache Flink SQL alongside custom table functions like JSONEXPLOAD to flatten nested JSON structures and aggregate metrics over 5-minute tumbling windows. Processed metrics are sent to Datadog, where counters are grouped by source stream and evaluated using anomaly detection algorithms. Alerts are routed directly to Slack, reducing anomaly detection latency from days or weeks down to within the same day or hour.
Introducing Okta's Official PowerShell Module
Okta’s official PowerShell Module provides PowerShell-based access to Okta group, group-rule, and user operations. The post shows installation from PSGallery, configuration with an organization base URL, client ID, and OAuth 2.0 scopes, followed by browser-based token establishment. Examples create a “Sales Team” group, define a rule that assigns users with the title “Sales Representative,” activate it, and create a matching user during onboarding. A second script imports employee records from a CSV, copies each property into a user profile, uses the email as the login, and calls New-OktaUser for each row. The source presents these workflows as examples for automating employee data synchronization when a custom tool lacks OIDC or SCIM compatibility.
Improved Browser Testing on Heroku with Chrome
Automated browser tests on Heroku can fail when installed Chrome and Chromedriver versions drift apart, producing a mismatch error that stops the suite. The post introduces the community Chrome for Testing Heroku Buildpack, created to address installation reliability as Chrome continuously receives updates rather than pinning a browser version that quickly becomes outdated. Apps should remove existing Chrome and Chromedriver buildpacks and add heroku-community/chrome-for-testing as the first buildpack. By default it downloads Google's latest Stable release, while GOOGLE_CHROME_CHANNEL can select Stable, Beta, Dev, or Canary. After deployment, chrome and chromedriver are placed on the dyno PATH for tools including Selenium WebDriver and Puppeteer, providing executables for browser automation.
Introducing Shop the look: eBay curating personalized outfits with AI
eBay introduces Shop the look, a generative AI-powered fashion feature that curates personalized outfit carousels from customers’ shopping histories. Interactive hotspots reveal similar items and outfit inspirations, combining new and pre-owned apparel and luxury goods. The experience uses images, items, decades of data, customer insights, and billions of images to adapt recommendations as tastes change, while supporting wardrobe visualization and exploration. It is available on iOS for US and UK shoppers who viewed at least 10 fashion items in the past 180 days; Android is planned later this year. eBay says the feature was developed with its Responsible AI team and RAI Principles, and plans further personalization plus possible expansion beyond fashion.
Grab Experiment Decision Engine - a Unified Toolkit for Experimentation
Grab's Experimentation platform tests thousands of experimental variants weekly, but analyses were largely handled manually using disparate tools unsuited to multi-sided marketplace nuances. To standardize workflows and eliminate reliability issues, Grab developed the GrabX Decision Engine, an internally open-sourced Python toolkit integrated with its Automated Experiment Analysis application. The framework includes a Trusted Advisor component that automates power analysis and sample size estimation while adjusting for clustered standard errors across metric data types. It also bundles a post-experiment statistical toolbox executing default and custom evaluations, ranging from non-parametric tests to regression models that control for confounders and fixed effects. This unified platform institutionalizes experimentation best practices across teams, streamlining collaboration and ensuring consistent statistical inference.
How to Prepare Your Self
Okta warns that applications using its embedded Sign-In Widget may encounter Chrome login problems after January 1, 2025, when Google’s temporary exemption allowing third-party cookies ends. The guidance recommends testing with Chrome feature flags and watching for console errors, unexpected reauthentication, or logout during session extension. It presents four migration paths: issue first-party cookies through a custom domain, use the authorization code flow with refresh tokens, configure AuthJS with the offline_access scope, or replace deprecated sessions/me calls with supported OAuth and revocation mechanisms. A custom domain can require CSP updates for externally hosted sign-in resources, while offline_access must be enabled both on the authorization server and in application code. An Okta-provided script offers a temporary exemption through the end of 2024, but it is not a lasting fix.
Iris - Turning observations into actionable insights for enhanced decision making
Standard infrastructure monitoring tools track CPU and memory usage at the host or container level, obscuring the precise resource consumption of individual Spark jobs on shared instances. To achieve granular observability, the Iris platform gathers job metrics directly at the Java Virtual Machine level without requiring changes to user application code. Data collection relies on Uber's JVM Profiler for deep JVM, thread, and memory pool diagnostics alongside sparkMeasure for stage and task execution statistics. Collected metrics route asynchronously through an Apache Kafka queue to avoid execution bottlenecks, feeding a Telegraf, InfluxDB, and Grafana stack for real-time monitoring while archiving to a data lake for offline analytics. This multi-tiered telemetry enables engineering teams to identify over- or under-provisioned jobs and optimize ETL resource allocations.
Building a GPT Backed by a Heroku-Deployed API
The walkthrough shows how to connect an OpenAI custom GPT to a Node.js backend that provides natural-language access to an employee directory. It builds an Express API with a POST /search endpoint, where OpenAI’s Chat Completions API converts a user’s question into a single SQL query, the database returns rows, and a second OpenAI call turns those rows into a natural-language response. The project uses Heroku Postgres, environment configuration, bearer-key authentication, Swagger UI, and an OpenAPI specification imported into the GPT action. The deployment flow covers seeding dummy records, deploying from a GitHub-connected repository, and configuring the action to call the hosted API, while noting that data leaves Heroku’s trust boundary for OpenAI services.
NeurIPS 2023: Our Favorite Papers on LLMs, Statistical Learning, and More
Researchers reviewed prominent machine learning papers presented at NeurIPS 2023 covering large language models and statistical learning theory. One investigation showed that claimed emergent abilities in models such as GPT-3 often result from nonlinear evaluation metrics rather than fundamental shifts in model capability. To reduce the computational burden of model adaptation, QLoRA enables 65-billion-parameter model fine-tuning on a single 48-gigabyte GPU via 4-bit NormalFloat quantization and paged optimization. Direct Preference Optimization eliminates complex reward modeling by casting reinforcement learning from human feedback into a preference classification task. Additional work resolved statistical anomalies like double descent using effective parameter counts and introduced stochastic gradient approximations for Gaussian processes.
Macramé: Untangling the Knot on the Etsy Android Listing Screen
The Etsy Android listing screen had accumulated nearly 200 experiments in three years, leaving a 4,000-plus-line Fragment, inconsistent patterns, low test coverage, and costly, brittle tests. Macramé replaced that legacy design with immutable state propagated through StateFlow to a reactive UI, transforming screen data into smaller ListingUiModels rendered by RecyclerView and ListAdapter. Sealed Events move through a single Dispatcher to focused Handlers, which update State, start asynchronous work, or emit SideEffects for operations such as navigation and logging. After a five-month rewrite, the new screen’s Time to First Content fell 18%, from 1,585 ms to 1,298 ms, while listings viewed rose 2.4% and business-logic test coverage reached 76%. The architecture still has wiring boilerplate, debugging challenges around Handler interactions, and possible overkill for simpler screens, but its use expanded to Cart and Shop.
Add Step
The tutorial shows how to add OAuth 2.0 Step Up Authentication Challenge support to an Angular frontend and NestJS backend, so sensitive routes and API resources can require stronger authentication than ordinary access. It starts from a Lerna monorepo, configures an OAuth 2.0/OpenID Connect single-page application, and uses Okta libraries plus an Okta JWT Verifier to establish the basic authenticated app. The implementation checks authentication assurance through token ACR claims, returns the standard insufficient_user_authentication error when an API request lacks the required assurance, and uses Angular interceptor and application-code handling to redirect with acr_values before retrying. It also describes authentication recency through max_age and auth_time, while noting that the original Okta CLI instructions no longer work exactly as written after the May 2025 account-plan change.
JIT WireGuard
Fly.io describes how its gateways provisioned WireGuard peers for flyctl and why the old design became unreliable and slow. NATS delivery losses caused failed provisioning, while CI-generated peers accumulated because gateways never removed them, leaving hundreds of thousands of stale kernel entries that slowed reloads and contributed to kernel panics. The replacement detects handshake-initiation packets with BPF or a WebSockets packet hook, runs enough Noise cryptography to recover the initiator’s public key, then fetches matching peer data over an internal HTTP API and installs it on demand. A rate-limited SQLite cache supports cleanup jobs, and the gateway can use the observed four-tuple to initiate back toward flyctl and accelerate handshakes. After weeks in production, stale peers rounded to none, with faster setup and rebooting that no longer required reloading unused entries.
eBay's Responsible AI Principles
eBay sets out principles for developing and using AI-powered customer tools and services while addressing safety and community needs. Its framework covers reliability, safety, security, inclusivity, equity, fairness, accountability, lawfulness, privacy by design, and transparency. The company says it rigorously tests AI technologies, protects confidential data used to train or operate systems, includes measures to avoid excluding groups, and applies quality and safety checks to datasets. It also calls for human oversight throughout development, launch, and monitoring, risk-based decisions, regulatory compliance, and privacy-focused design using state-of-the-art methods. For users, eBay says transparency may involve disclosures within an experience or broader communication, depending on lifecycle stage and the audience.
Fly Kubernetes does more now
Fly Kubernetes is moving from early access to a closed beta as a managed Kubernetes service backed by Fly.io infrastructure. It provides the Kubernetes API while mapping core primitives to Fly resources: containers become Firecracker microVMs through flyd and Firecracker, pods become Fly Machines, networking uses an internal WireGuard mesh, services use the Fly Proxy, and storage uses Fly Volumes. Virtual Kubelet, running alongside K3s, receives pod requests and deploys them through the Fly Machines API, removing user-managed node capacity planning and hardware management. The beta supports workloads, including GPUs, across available regions, with Deployments/ReplicaSets, Services, DNS, and ephemeral and persistent volumes, but only part of the Kubernetes API. Missing capabilities include multi-container pods, StatefulSets, network policies, horizontal pod autoscaling, and emptyDir volumes; pricing is free during beta and planned at $75 per cluster monthly afterward, excluding resource costs.
How We Built The Deals Tab in Swift UI
Etsy’s App Updates team rebuilt the long-standing Updates tab as Deals, a destination for coupons and sales, while targeting an October launch ahead of Cyber Week 2023. The team chose Swift UI and Tuist to create a modular, preview-driven implementation rather than extend legacy Objective-C and server-driven layout code. The screen is assembled from typed API modules, parsed with Decodable, and rendered in a Swift UI List using reusable components such as buttons, headers, footers, and listing cards. To bridge incompatible legacy listing-card code, the module accepts a view builder from the UIKit hosting controller, allowing existing cards to be wrapped while newer cards could be implemented in Swift UI. After three months, Deals shipped ahead of deadline; new modules took one sprint or less, previews decoupled front-end work from API support, and the tab increased session conversion and app visits after its mid-October rollout.
Improving Shopify App’s Performance
Shopify’s mobile app saw performance decline during its React Native migration, prompting a year-long effort to make critical screens load under 500ms at P75 and launch within 2s at P75. The team built real-time dashboards to filter results by device and operating system, then targeted excessive initial rendering, unnecessary background updates, launch overhead, and weak cache utilization. They introduced LazyScrollView and ListSource on FlashList, deferred work outside the viewport, enabled inlineRequires, optimized a native module, batched state updates, froze background components, and improved Restyle. They also fixed a graph QL cache issue and pre-warmed critical screen data, increasing cache-first delivery to as much as 90% for key screens. By year-end, app launch P75 was 44% faster and screen-load P75 times were reduced by 59%, with performance treated as an ongoing process requiring monitoring and repeated optimization.
Android App Size at Scale with Project Bonsai
Grab launched Project Bonsai to optimize the size of its Android superapp, which encompassed over four million lines of code across 1,500 modules. Because large app sizes negatively impact user acquisition on low-end devices with constrained bandwidth, the engineering team structured its optimization strategy around measurement, reduction, and containment. The team developed App Sizer, a custom CI-integrated tool that tracks binary compositions and module size contributions in Grafana. Initial reductions targeted Java and Kotlin dex files, resolving bloated transitive R classes by upgrading the Android Gradle Plugin to eliminate overly broad R8 retention rules. These initiatives achieved a 26% reduction in app download size while simultaneously decreasing overall disk footprint.
Cutting Through the Noise: Three Things We've Learned About Generative AI and Developer Productivity
eBay describes three tracks for generative AI developer productivity: adopting a commercial offering, fine-tuning an open-source LLM on internal data, and building a knowledge base. Because no single metric is reliable, the exercise combines surveys with Git, DORA, Flow, code-quality, and performance measures. In a 300-developer Copilot A/B test, the treatment group had 27% code acceptance, 17% faster pull-request creation-to-merge time, and 12% lower Lead Time for Change; Sonar quality was unchanged. eBayCoder, based on Code Llama 13B and trained on eBay code and documentation, is presented as useful for software upkeep and broader context. Its internal GPT uses retrieval-augmented generation to answer questions from distributed sources, but early results remain preliminary and nonsensical answers require feedback and RLHF.
How to Manage User Lifecycle with .NET and SCIM
Managing users across multiple systems can be slow, error-prone, difficult to synchronize, and a security risk, so the tutorial uses SCIM to standardize lifecycle operations. It builds a .NET 8 SCIM server with RESTful CRUD endpoints for the User resource, backed by Entity Framework Core and SQLite, and seeds sample users and emails for testing. Swagger UI is used to inspect and exercise the API, while Okta acts as the SCIM client and identity provider after OAuth-protected endpoints and provisioning are configured. The walkthrough tests importing users, syncing assignments, deprovisioning by setting active to false, reprovisioning by setting it to true, and propagating profile changes; however, the original Okta CLI instructions no longer work exactly as written after the May 2025 plan and tooling changes.
Top topics
- Architecture834
- Performance816
- LLMs660
- Machine Learning622
- Open Source563
- AI Agents553
- AI470
- Developer Experience448
Weekly digest
The best engineering reads, once a week.