41554 blogs · [ { "id": "01a087ac-ff69-734c-b8d3-73856c61f78b", "title": "Building an invisible smart home", "url": "https://nealshyam.com/writing/invisible-smart-home/", "published_at": "2026-09-03T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73856c7654e0", "title": "Guitar lessons with Roku and Claude", "url": "https://nealshyam.com/writing/roku-kids-guitar-singalong/", "published_at": "2026-08-10T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73856d4e9759", "title": "Product managers are detectives", "url": "https://nealshyam.com/writing/product-management-is-detective-work/", "published_at": "2021-02-09T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73856e1c69d6", "title": "What size company is right for you?", "url": "https://nealshyam.com/writing/company-size-tradeoffs/", "published_at": "2021-01-22T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73856ee79d12", "title": "How to ace your technical interview", "url": "https://nealshyam.com/writing/ace-the-technical-interview/", "published_at": "2020-06-19T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73856fc24195", "title": "Top skills you’ll need to succeed as a product manager", "url": "https://nealshyam.com/writing/product-manager-skills/", "published_at": "2020-06-19T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-7385709febaa", "title": "Should you buy your stock options?", "url": "https://nealshyam.com/writing/should-you-buy-your-stock-options/", "published_at": "2019-09-05T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-7385716911ca", "title": "Reorgs vs. pivots", "url": "https://nealshyam.com/writing/reorgs-vs-pivots/", "published_at": "2019-08-22T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738571e9a9c2", "title": "Layoffs are inevitable, but survivable", "url": "https://nealshyam.com/writing/layoffs-are-inevitable-but-survivable/", "published_at": "2019-08-08T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857242dca2", "title": "It’s OK to use Google at work", "url": "https://nealshyam.com/writing/its-ok-to-use-google-at-work/", "published_at": "2019-07-25T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738573302f77", "title": "Be helpful, be helped", "url": "https://nealshyam.com/writing/be-helpful-and-be-helped/", "published_at": "2019-03-07T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857332fb51", "title": "Don’t misrepresent yourself", "url": "https://nealshyam.com/writing/dont-misrepresent-yourself/", "published_at": "2019-01-17T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857365b65b", "title": "The cult of culture", "url": "https://nealshyam.com/writing/cult-of-culture/", "published_at": "2018-11-08T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738573ed52eb", "title": "Quitter’s remorse", "url": "https://nealshyam.com/writing/quitters-remorse/", "published_at": "2018-11-01T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738573fd1702", "title": "Negotiation starts with preparation", "url": "https://nealshyam.com/writing/negotion-starts-with-preparation/", "published_at": "2018-10-25T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738574b4ca09", "title": "Be lazy & be great", "url": "https://nealshyam.com/writing/be-lazy-be-great/", "published_at": "2018-10-18T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857504bd4d", "title": "How long can you afford to look for a job?", "url": "https://nealshyam.com/writing/job-hunting-timelines/", "published_at": "2018-10-11T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738576020929", "title": "Departmental differences", "url": "https://nealshyam.com/writing/department-differences/", "published_at": "2018-09-13T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857688248a", "title": "Comparisons are for pull requests", "url": "https://nealshyam.com/writing/comparisons-are-for-pull-requests/", "published_at": "2018-09-06T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-7385770853eb", "title": "Switching tracks", "url": "https://nealshyam.com/writing/switching-tracks/", "published_at": "2018-08-23T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857782bfc7", "title": "Timebox it!", "url": "https://nealshyam.com/writing/timebox-it/", "published_at": "2018-07-26T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738577920b80", "title": "The best email ever", "url": "https://nealshyam.com/writing/the-best-email-ever/", "published_at": "2018-07-05T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738578013510", "title": "Always be cataloging", "url": "https://nealshyam.com/writing/always-be-cataloging/", "published_at": "2018-06-21T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857854522c", "title": "Longevity or liability?", "url": "https://nealshyam.com/writing/longevity-or-liability/", "published_at": "2018-05-17T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738578e5faec", "title": "Knock with your elbows", "url": "https://nealshyam.com/writing/knock-with-your-elbows/", "published_at": "2018-05-03T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857906e2fc", "title": "The lamest question", "url": "https://nealshyam.com/writing/the-lamest-question/", "published_at": "2018-04-26T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-738579918fcb", "title": "Be flexible", "url": "https://nealshyam.com/writing/be-flexible/", "published_at": "2018-04-05T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857a7cde8b", "title": "How to suggest new product features", "url": "https://nealshyam.com/writing/how-to-suggest-new-product-features/", "published_at": "2018-03-29T00:00:00+00:00" }, { "id": "01a087ac-ff69-734c-b8d3-73857b2181e3", "title": "Don’t avoid your boss", "url": "https://nealshyam.com/writing/dont-avoid-your-boss/", "published_at": "2018-03-22T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ea037b8f", "title": "Before you start freelancing", "url": "https://nealshyam.com/writing/things-to-think-about-before-you-start-freelancing/", "published_at": "2018-03-08T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ea79e937", "title": "That’s what the money’s for!", "url": "https://nealshyam.com/writing/thats-what-the-moneys-for/", "published_at": "2018-01-25T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773eaaa048e", "title": "Hacker mentality", "url": "https://nealshyam.com/writing/hacker-mentality/", "published_at": "2017-12-28T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773eb0578be", "title": "Code legacy", "url": "https://nealshyam.com/writing/code-legacy/", "published_at": "2017-12-07T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773eb77e40c", "title": "CEO accessibility vs. visibility", "url": "https://nealshyam.com/writing/ceo-accessibility-vs-visibility/", "published_at": "2017-11-02T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773eb881fba", "title": "Show some initiative", "url": "https://nealshyam.com/writing/demonstrate-your-initiative/", "published_at": "2017-10-19T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ec7d9211", "title": "Bartleby, the code scrivener", "url": "https://nealshyam.com/writing/bartleby-the-code-scrivener/", "published_at": "2017-08-31T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ed1e14a4", "title": "Old reliable tech", "url": "https://nealshyam.com/writing/old-reliable-tech/", "published_at": "2017-08-27T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ed8c83f1", "title": "Layoffs suck", "url": "https://nealshyam.com/writing/layoffs-suck/", "published_at": "2017-07-13T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ee4f8150", "title": "Reactive vs. proactive job hunting", "url": "https://nealshyam.com/writing/reactive-vs-proactive-job-hunting/", "published_at": "2017-06-29T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ef21efd6", "title": "Secure your Flask", "url": "https://nealshyam.com/writing/flask-basicauth/", "published_at": "2017-06-28T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ef93c0bb", "title": "Turn your blog into a podcast", "url": "https://nealshyam.com/writing/alexa-flash-briefing/", "published_at": "2017-06-14T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773efb037cd", "title": "Going biweekly after 3 years", "url": "https://nealshyam.com/writing/biweekly/", "published_at": "2016-11-03T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773efcb4ede", "title": "Open source jeans", "url": "https://nealshyam.com/writing/openfit/", "published_at": "2016-10-27T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f07c22de", "title": "Do more with less JS", "url": "https://nealshyam.com/writing/youmightnotneedjs/", "published_at": "2016-10-13T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f0bb545c", "title": "Please don’t go!", "url": "https://nealshyam.com/writing/dont-go/", "published_at": "2016-10-06T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f0cb854a", "title": "OMG stickers", "url": "https://nealshyam.com/writing/ios-stickers/", "published_at": "2016-09-29T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f0fd4d3e", "title": "Cellphone traffic camera", "url": "https://nealshyam.com/writing/trafficspeed/", "published_at": "2016-09-22T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f1b19bef", "title": "2D to 3D in Unity", "url": "https://nealshyam.com/writing/unity-teddy/", "published_at": "2016-09-15T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f1c4eb54", "title": "Speak and spell", "url": "https://nealshyam.com/writing/gmail-dictation/", "published_at": "2016-09-08T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f1f12065", "title": "Scraper scuffles", "url": "https://nealshyam.com/writing/useragent-api/", "published_at": "2016-09-01T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f23ce666", "title": "Typo*", "url": "https://nealshyam.com/writing/slack-typobot/", "published_at": "2016-08-25T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f3359dca", "title": "Hackers just wanna have fun", "url": "https://nealshyam.com/writing/pipreqs/", "published_at": "2016-08-18T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f343c7b7", "title": "Cross origin really sucks", "url": "https://nealshyam.com/writing/flask-cors/", "published_at": "2016-08-11T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f3861e95", "title": "Sneaky spy", "url": "https://nealshyam.com/writing/wifi-triangulate/", "published_at": "2016-08-04T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f420f882", "title": "Feel the beat", "url": "https://nealshyam.com/writing/heartrate/", "published_at": "2016-07-28T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f4919f58", "title": "What’s the diff?", "url": "https://nealshyam.com/writing/image-diff/", "published_at": "2016-07-21T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f584f0f7", "title": "Copy. Paste. Python.", "url": "https://nealshyam.com/writing/pyperclip/", "published_at": "2016-07-14T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f648c1f9", "title": "$5 3D printed stethoscope", "url": "https://nealshyam.com/writing/stethoscope/", "published_at": "2016-07-07T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f70f5f6f", "title": "Emoji life", "url": "https://nealshyam.com/writing/emoji/", "published_at": "2016-06-30T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f7d5c85d", "title": "Your password sucks", "url": "https://nealshyam.com/writing/stupid-passwords/", "published_at": "2016-06-23T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f8b0a1eb", "title": "Toolbar up", "url": "https://nealshyam.com/writing/webclip/", "published_at": "2016-06-16T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f8fbfdb8", "title": "The tags are alright", "url": "https://nealshyam.com/writing/metaphor/", "published_at": "2016-06-09T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773f9e2104e", "title": "Burn the ship", "url": "https://nealshyam.com/writing/fractaljs/", "published_at": "2016-06-02T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fad873f6", "title": "Talk to her", "url": "https://nealshyam.com/writing/maclexa/", "published_at": "2016-05-26T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773faf496ca", "title": "Scratch that", "url": "https://nealshyam.com/writing/scratchview/", "published_at": "2016-05-19T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fbe2cb06", "title": "Process this language", "url": "https://nealshyam.com/writing/nlp-compromise/", "published_at": "2016-05-12T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fc0a2aeb", "title": "Snap, shift, and pop", "url": "https://nealshyam.com/writing/snap-and-shift/", "published_at": "2016-05-05T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fcf92a97", "title": "Colorizing classic movies", "url": "https://nealshyam.com/writing/autocolorization/", "published_at": "2016-04-28T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fd5cdcac", "title": "JavaScript joystick", "url": "https://nealshyam.com/writing/nipplejs/", "published_at": "2016-04-21T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fda3e14f", "title": "Excel is JavaScript is JSON", "url": "https://nealshyam.com/writing/exceljs/", "published_at": "2016-04-14T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fddef360", "title": "Dungeons & Dragons & software", "url": "https://nealshyam.com/writing/rpg/", "published_at": "2016-04-07T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fe599484", "title": "PHind my phone", "url": "https://nealshyam.com/writing/findmyiphone/", "published_at": "2016-03-24T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773fea678d2", "title": "Data over audio", "url": "https://nealshyam.com/writing/webaudio-serial-tx/", "published_at": "2016-03-17T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ff4c866b", "title": "A place(holder) for everything", "url": "https://nealshyam.com/writing/superplaceholder/", "published_at": "2016-03-10T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f773ff88fbd4", "title": "Mute-ified", "url": "https://nealshyam.com/writing/automute/", "published_at": "2016-03-03T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77400707ba9", "title": "Who’s watching?", "url": "https://nealshyam.com/writing/ga-video-track/", "published_at": "2016-02-25T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f774008ef759", "title": "Major key alert", "url": "https://nealshyam.com/writing/keyring/", "published_at": "2016-02-18T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77400a1d879", "title": "Signature of the times", "url": "https://nealshyam.com/writing/signature-pad/", "published_at": "2016-02-11T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f774010e0844", "title": "Clean the cloud", "url": "https://nealshyam.com/writing/salve/", "published_at": "2016-02-04T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77401998dcb", "title": "Under pressure", "url": "https://nealshyam.com/writing/pressurejs/", "published_at": "2016-01-28T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f7740236f750", "title": "Need 2 read", "url": "https://nealshyam.com/writing/getxbook/", "published_at": "2016-01-21T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77402d1f970", "title": "Making progress", "url": "https://nealshyam.com/writing/tqdm/", "published_at": "2016-01-14T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f7740366624f", "title": "Don’t go nuclear", "url": "https://nealshyam.com/writing/killswitch/", "published_at": "2016-01-07T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f774038af14e", "title": "Practical cryptography", "url": "https://nealshyam.com/writing/sjcl/", "published_at": "2015-12-17T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77403e7b51a", "title": "What’s in your pocket?", "url": "https://nealshyam.com/writing/unqueue/", "published_at": "2015-12-10T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f774044f893e", "title": "Forks on forks on forks", "url": "https://nealshyam.com/writing/mirror/", "published_at": "2015-12-03T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77404dba0b7", "title": "Node people manager", "url": "https://nealshyam.com/writing/johnkpaul/", "published_at": "2015-11-26T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77405aa95aa", "title": "Subtitling real life", "url": "https://nealshyam.com/writing/captor/", "published_at": "2015-11-19T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77405ecc5f9", "title": "Scrub, redact, and relax", "url": "https://nealshyam.com/writing/pdf-redact-tools/", "published_at": "2015-11-12T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77406d3aca2", "title": "Readable JSON", "url": "https://nealshyam.com/writing/json-2-csv/", "published_at": "2015-11-05T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f774079ae906", "title": "Tweet and deliver", "url": "https://nealshyam.com/writing/gif-bot/", "published_at": "2015-10-29T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77407a80597", "title": "Jekyll & HiFi", "url": "https://nealshyam.com/writing/itunes-jekyll/", "published_at": "2015-10-22T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f7740838373d", "title": "Wear it. Share it.", "url": "https://nealshyam.com/writing/wearshare/", "published_at": "2015-10-15T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f7740920603c", "title": "Raycast & gif", "url": "https://nealshyam.com/writing/rayito/", "published_at": "2015-10-08T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77409bcc5d3", "title": "Cat got your jpeg?", "url": "https://nealshyam.com/writing/catimg/", "published_at": "2015-10-01T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f77409e3d566", "title": "Better inputs, better code, better apps", "url": "https://nealshyam.com/writing/webargs/", "published_at": "2015-09-24T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f7740a7a82ae", "title": "Hack your bags", "url": "https://nealshyam.com/writing/hack-your-bags/", "published_at": "2015-09-17T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f7740b408708", "title": "Dude, where’s my lat/long?", "url": "https://nealshyam.com/writing/corelocation/", "published_at": "2015-09-10T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f7740bbaff75", "title": "Old school ad blocking", "url": "https://nealshyam.com/writing/hosts/", "published_at": "2015-09-03T00:00:00+00:00" }, { "id": "01a087ac-ff6a-71e9-9012-f7740bc9a4cd", "title": "JSON marginalia", "url": "https://nealshyam.com/writing/json-marginalia/", "published_at": "2015-08-27T00:00:00+00:00" } ] posts Claim your blog
Back to nealshyam.com
Blog · corpus.blog/blogs/nealshyam.com/posts

nealshyam.com

nealshyam.com

2026

2021

2020

2019

2018

2017

2016

2015