Quick caveat: I’m not pretending that my internet experience has been identical to that of an average Indian smartphone-user
The average mobile internet speed in India is 12Mbps, roughly 1/3rd global average. But unless you’re video-streaming, 12Mbps seems OK to me?
The phone itself is solidly-built. It doesn’t feel as premium as my iPhone, but it doesn’t feel cheap either.
The screen is vivid and pixel-dense, the OS is smooth and snappy. Honestly it’s way better than my last Android phone, the OnePlus One.
Using the web has been interesting, though. I was expecting JS-heavy sites to chug, to see React’s performance issues. But overall, The ones I tried were perfectly usable.
It was the rest of the internet that felt unbearable 😅
Here's my Twitter profile.
[Video alt: Two phones side-by-side load Twitter. It loads faster on the iPhone, but within a few seconds on the Redmi]
Here's my personal website!
For context, it's a medium-sized Gatsby site. Lighthouse gives it a performance score in the mid-70s, because of all the JS—there's a lot of interactive stuff, and MDX isn't perfectly code-split yet.
[Video alt: Two phones load joshwcomeau.com, scroll down, and click a link. They're both quite snappy]
[Also, sorry I forgot the alt text on the first tweet in this thread! It's photos of the Xiaomi Redmi 8, a smartphone that looks just like every other Android phone]
Things get problematic when we visit news sites. I think because of all the tracking snippets and such, these sites take FOREVER. Here's the New York Times:
[Video alt: iPhone takes 4 seconds to load an article, Redmi takes 12 seconds]
Even worse, the Washington Post.
This video is 30 seconds long, because that's how long it took the Redmi to load an article. The iPhone did it in 1-2 seconds.
Over the past week, my experience has been that modern web apps have been slower, but usable. It's all the ad-heavy Wordpress sites that make me want to throw the phone out of the window.
Every major React app I could find is either server-rendered or pre-generated, so there isn't that experience of staring at a white screen forever.
The "time to interactive" is slow, sure, but as long as the site uses typical anchor/form tags, things still work just fine.
I feel like the common perception of React is that it's slow because of all that JS, but if you use something like Next/Gatsby, this problem largely goes away.
As long as you take care to respect the platform. Developers can still mess it up, but you have to go out of your way.
If you develop internationally, you really should pick up a couple of these devices. As I said, they're <$100, and it's really illuminating! Even if you don't want to do a hard switch, you should at least test on them, make sure your site/app works well.
Overall, the Redmi was _way_ better than I expected it to be. It cost <10% of my iPhone, but it's not actually that much worse for most things.
It's clear as developers we still have work to do vis-a-vis performance. But it's a burden we all share, no matter your tech stack.
CLARIFICATION: The phone I tested with was the Xiaomi Redmi 7A, the generation before the 8.
This style removes the "ugly" focus ring on inputs and links, but it means keyboard users can't navigate; it totally breaks the experience for them (and any non-mouse users) 😬
A thread with some solutions 🧵
First, some quick options:
• Leave them as-is! Outlines aren't so bad.
• Provide an alternative focus style, like changing the background color, or adding a border.
There's a nifty new pseudo-class you may not be aware of, though…
🌠 The `:focus-visible` pseudo-class is just like the `:focus` one, but it only matches when the browser determines that a visible focus state is necessary (eg. not a mouse user).
Keyboard users will see the focus rings, but mouse users won't.
At a couple jobs now, I've been tasked with reviewing incoming applications, so I've read _a lot_ of cover letters. IMO, a lot of them miss the mark 😬.
Today I thought I'd share some cover letters I've written which led to an offer, + some cover letter tips.
This letter isn't my best work, but it tells a compelling story about why I'm passionate about the space + the organization. Could be improved by sharing more about my skills/background
Letter 2: Glitch
I'm proud of this letter. I cover why I care about their mission (online code education), their product (mentioning specific features), and why my skills/background are valuable to them in their mission / for their product.
So many folks have lost their job in the last 2 weeks :(
I've been writing a short book on software dev portfolios. It isn't ready yet, but I wanted to share some of the highlights, to hopefully help folks who are job-hunting again!
The most important stuff I know, in-thread 👇
Your developer portfolio is a showcase of your most important projects. I'm using the term "project" loosely, to include:
• Stuff you shipped on-the-job (if not restricted by NDA)
• Side-projects
• OSS contributions
• Volunteer work
Your homepage should list your 2-5 most impressive projects. You should have an image, a brief summary, and a link to a dedicated page to learn much more about this project.
I'm so glad I used MDX for my blog. It enables things that otherwise would not be possible with Markdown or a CMS, while still being a consumable data source (unlike having the posts be all-JSX)
For tangential information, I have a `Sidenote` component. It has a `title` prop which accepts JSX, so I can use any special formatting within it. Also a `type` which accepts info/warning/error/success.
Over the past couple years, I've had the opportunity to coach quite a few aspiring developers. I'm going to start sharing some of the things I've learned in this capacity, since I think it could really help folks looking to start their career as a dev.
First up: enthusiasm.
If you're looking for your first job as a developer, as a recent college/bootcamp grad or someome self-taught, one of the biggest assets you can bring is enthusiasm. You see this in a lot of corny job descriptions, talking about "hunger" (which always felt so primal/weird to me).
For non-college grads in particular, finding that first job can take ~1-2 months of pretty intense work. Lots of networking, cold emails, interview prep, portfolio development, all that stuff.
It can be draining, especially since it comes right after an intense bootcamp!
I know many of you work on side-projects, projects where you don't have the benefit of a product & design team. I'm betting a bunch of y'all have goals to create something new in 2020!
Thought I'd share a thread with all my favourite resources:
1. A long-time staple in my toolbox, @LeaVerou made this *amazing* tool that lets you visualize custom cubic-bezier easings. This is super helpful when the built-in timing functions don't feel right.