Shubham Jain's Blog
Opinions on tech and other stuff!
Essays / personalSoftware / engineering practiceFrontend / CSS / browsers
- Posts
- 95 from 5 Jul 2013 to 15 Oct 2026
- Posting
- now and then (5 in the last year)
- Kind
- personal blog
- Feed
- https://shubhamjain.co/rss.xml
2026 5
2025 6
2024 5
2023 7
2022 8
- Frontend is Rife with Bad IdeasNov 01
- There's no Incentive to Colonize MarsJul 09
- Why You Should Blog Even if No One Reads itJul 01
- A Brief, Messy History of Google's Messaging ProductsJun 29
- Using Analytics is Not a Privacy ViolationJun 28
- “Print” Is the Only Debug Tool You NeedJun 27
- Value Has Nothing To Do With A Dev's SalaryJun 25
- My LASIK Eye Surgery ExperienceJun 23
2021 1
2020 7
- Sometimes No One's at Fault And We Should Accept ThatJul 25
- When Will We Run Out of Fossil Fuels? Likely, neverJun 06
- Being Fast MattersMay 17
- Clean Git History is Kinda OverratedMay 10
- Building an Amazon Price Monitor using Bash ScriptingApr 26
- How I Started Enjoying Programming AgainMar 29
- The Most Important Thing Paul Graham Taught MeJan 11
2019 8
- How to Create Custom Fields in Salesforce With API?Sep 22
- Accepting Technical Debt As Important As Fighting ItSep 15
- How to Handle Keyboard Shortcuts in Vue (without plugins)?Jun 09
- How I Got Better at English as a Non-native SpeakerMay 22
- How to Create a Flat Select Element that is consistent in all browsers?Apr 13
- How to Create a Favicon for Dark Mode?Apr 13
- How to Create a Custom Formula in Google Sheets?Apr 12
- The Marie Kondo Programmer (Or, Why I Love Messy Code)Feb 16
2018 11
- How to Render Human Readable Time in Jinja?Dec 22
- Why Paul Graham is Wrong About Choosing an Esoteric LanguageDec 02
- "History is Written By Victors" is a Foolish PhraseDec 01
- How to Uppercase the First Letter in Jinja?Sep 17
- Why does subresource integrity (SRI) need the crossorigin attribute?Sep 08
- How To Create a Responsive Menu with UIKit?Sep 08
- Falsehoods Programmers Believe About HiringMay 12
- Will You Be Out of Job if You Don’t Study ML?Apr 10
- The Science Behind Excellence is Known; Why Isn’t, then, Everyone an Expert?Mar 30
- Why Trends Matter (And Numbers Don't)Mar 28
- The Bitter Truth of Learning: it’s Tough, Unpleasant, and Often PointlessMar 24
2017 14
- Want to Finish Your Side-project? Start by Getting Something on the ScreenDec 23
- The Futility of Bitcoin's 'Digital Gold' VisionDec 10
- Survivorship Bias is a Poor Excuse for not TryingNov 26
- Solving Energy Problems is Complicated; "The Grid" Tells us WhyOct 17
- Writing, Fast and SlowAug 25
- Why You're Better Off Taking a Safe Career PathJul 23
- Things You Can Omit in an MVPJun 28
- You Stop Craving for the Perfect Working EnvironmentMay 18
- Contradictory Startup AdviceMay 12
- Why Programmers Should Automate MoreMay 06
- How Quantity Trumps Quality?Apr 15
- Understanding Money: Where Does it Come From?Apr 13
- What is the Highest Salary a Programmer Can Make?Mar 08
- Things Programmers Should Never Say : "Who wrote this awful code!" Feb 25
2016 8
- How to Teach Offside To a Five-Year OldDec 08
- Why Does Subway Have Terrible Customer OnboardingNov 29
- Creating Software Without CodeOct 09
- Fallacy of Hating the RichOct 02
- What is Hacking?Sep 29
- It Didn't Work OutAug 12
- Never Underestimate the Power of Creating Something UselessJun 15
- How to Track all Social Shares with GA?May 19
2015 6
2014 7
- My Perfect Reason to Avoid PHP: Type JugglingOct 12
- Why Should You Use Tmux?Aug 26
- Using Git for Introducing Temporary ChangesAug 18
- Building a Whistle Detector Using WebAudio APIJul 01
- Why Desktop Apps Still Make SenseMay 22
- Stop using Captchas that Can be Broken with Two Lines of CodeMay 04
- Making Earphone Presses Useful with PyAudio and VLC HTTP APIMar 30