Open in app

Sign In

Write

Sign In

Dan Fabulich
Dan Fabulich

875 Followers

Home

About

Apr 28, 2021

Never run Google ads if you have an Android app

Google can and will permanently ban your Android app if Google thinks you’ve clicked on your own ads — If you’re running Google AdMob/AdSense ads and you have an Android app that you care about, take down your Google ads immediately and switch to another ad vendor. If Google decides to ban you from AdMob/AdSense, they may also ban your Android app from the Google Play Store. …

Google

3 min read

Never run Google ads if you have an Android app
Never run Google ads if you have an Android app
Google

3 min read


Published in

Code Red

·Jan 19, 2021

Micro-Frontends Are Remote UI Components

Also: Seven reasons why you might not want/need remote UI rendering — Dan Fabulich is a Principal Engineer at Redfin. (We’re hiring!) When I first read the definition of micro-frontends, I didn’t “get it.” Specifically, when I read Cam Jackson’s article on martinfowler.com and Michael Geers’ mini-site micro-frontends.org, I was still asking myself questions like: Are we already doing micro-frontends? We’ve been…

Programming

5 min read

Micro-Frontends Are Remote UI Components
Micro-Frontends Are Remote UI Components
Programming

5 min read


Published in

Code Red

·Aug 5, 2020

Node Modules at War: Why CommonJS and ES Modules Can’t Get Along

Interop between them is possible, but it’s a hassle — Dan Fabulich is a Principal Engineer at Redfin. (We’re hiring!) In Node 14, there are now two kinds of scripts: there are old-style CommonJS (CJS) scripts and new-style ESM scripts (aka MJS). CJS scripts use require() and module.exports; ESM scripts use import and export. ESM and CJS are completely different…

JavaScript

12 min read

Node Modules at War: Why CommonJS and ES Modules Can’t Get Along
Node Modules at War: Why CommonJS and ES Modules Can’t Get Along
JavaScript

12 min read


Feb 28, 2019

New Game: Liar’s Boggle

A bluffing word game. It’s Liar’s Dice, played with Boggle letter dice. — This game works best with three to five players. Here are the rules. At the start of the game, randomly deal Boggle letter dice to each player. …

Board Games

6 min read

New Game: Liar’s Boggle
New Game: Liar’s Boggle
Board Games

6 min read


Published in

Code Red

·Jan 10, 2019

You Can Cheat When Fixing HTML Accessibility in Legacy Code

How and when to cheat on semantic HTML accessibility guidelines — Dan Fabulich is a Principal Engineer at Redfin. (We’re hiring!) I’ve been spending the last month or so updating some legacy HTML to support screen readers. Screen-reader software can read a web page aloud, allowing visually impaired users to understand and interact with the page. The problem is, sometimes the…

Web Development

4 min read

You Can Cheat When Fixing HTML Accessibility in Legacy Code
You Can Cheat When Fixing HTML Accessibility in Legacy Code
Web Development

4 min read


Published in

Code Red

·Jul 13, 2018

Google Doesn’t Have the Guts to Make Page Speed Actually Matter

Google’s new “Speed Update” search ranking factor is too little, too late — Dan Fabulich is a Principal Engineer at Redfin. (We’re hiring!) Google uses hundreds of different factors (“signals”) to decide which web pages to show at the top of Google Search results. In January, Google announced that in July 2018, page speed will be a ranking signal for mobile searches. …

SEO

7 min read

Google Doesn’t Have the Guts to Make Page Speed Actually Matter
Google Doesn’t Have the Guts to Make Page Speed Actually Matter
SEO

7 min read


Published in

Code Red

·Jun 13, 2018

Ask Engineering Interview Candidates to Explain Something

Technical explanations allow candidates to demonstrate their technical skills and social skills at the same time — Dan Fabulich is a Principal Engineer at Redfin. (We’re hiring!) Discuss on Hacker News Discuss on Reddit Interviewing engineers is a hard problem. Every interviewing technique has vocal detractors who say, “I would never work at a company that used that interviewing technique.” …

Hiring

5 min read

Ask Engineering Interview Candidates to Explain Something
Ask Engineering Interview Candidates to Explain Something
Hiring

5 min read


Published in

Code Red

·Feb 16, 2018

How to Replace Google’s AMP Without Slowing It Down

IFrames cause all of AMP’s problems, but they provide unbeatable performance. Fixing this is hard, but possible. — Dan Fabulich is a Principal Engineer at Redfin. (We’re hiring!) Discuss on Hacker News Discuss on Reddit A lot of people hate AMP, and now that Google has announced AMP for email, the AMP haters are out in force again, and understandably so. I’m aware of roughly two categories of…

Google

9 min read

How to Replace Google’s AMP Without Slowing It Down
How to Replace Google’s AMP Without Slowing It Down
Google

9 min read


Published in

Code Red

·Nov 29, 2017

How to Fix the Refresh Button When Using Service Workers

I’m afraid you’ll have to learn the entire Service Worker API along the way. — Dan Fabulich is a Principal Engineer at Redfin. (We’re hiring!) In a previous article, I explained how and why Service Workers break the browser’s Refresh button by default. But nobody likes a whiner! In this article, I’ll document how to fix the Refresh button. Getting this right requires an intimate…

JavaScript

10 min read

How to Fix the Refresh Button When Using Service Workers
How to Fix the Refresh Button When Using Service Workers
JavaScript

10 min read


Published in

Code Red

·Nov 15, 2017

Service Workers Break the Browser’s Refresh Button by Default; Here’s Why

Service Workers are like apps. You can’t safely upgrade an app while it’s still running. — Dan Fabulich is a Principal Engineer at Redfin. (We’re hiring!) tl;dr: By default, users have to close all tabs to a site in order to update a Service Worker. The Refresh button is not enough. If you make a mistake here, users will see an outdated version of your site…

JavaScript

11 min read

Service Workers Break the Browser’s Refresh Button by Default; Here’s Why
Service Workers Break the Browser’s Refresh Button by Default; Here’s Why
JavaScript

11 min read

Dan Fabulich

Dan Fabulich

875 Followers

Dan Fabulich is co-founder of Choice of Games.

Following
  • Clive Thompson

    Clive Thompson

  • Ian Thomas

    Ian Thomas

  • Steve Yegge

    Steve Yegge

  • Dion Almaer

    Dion Almaer

  • Adam Morse

    Adam Morse

See all (151)

Help

Status

Writers

Blog

Careers

Privacy

Terms

About

Text to speech

Teams