• Dan Goldin
  • Engineering @ TripleLift
  • About
  • Tagged Posts
  • Netflix recommendation system failure 10 Feb 2019
  • A personal DSP 09 Feb 2019
  • Finally, some price increases 02 Feb 2019
  • Modernizing Makers Alley and Better404 27 Jan 2019
  • Buying Kindle books on iOS 12 Jan 2019
  • GitHub's new plan 08 Jan 2019
  • Java's SimpleDateFormat: YYYY vs yyyy 06 Jan 2019
  • Farewell 2018, Hello 2019! 31 Dec 2018
  • Dorm rooms for adults 31 Dec 2018
  • 2019 Predictions 31 Dec 2018
  • Twenty seconds makes all the difference 30 Dec 2018
  • Mexico city thoughts 30 Dec 2018
  • Amazon vs Walmart 30 Dec 2018
  • Wired headphones 29 Dec 2018
  • The Teotihuacan pyramids 29 Dec 2018
  • Moving from OS X to Ubunu 29 Dec 2018
  • Calendly 28 Dec 2018
  • Eerie blue NYC sky 27 Dec 2018
  • Amazon's "Add to list" design 27 Dec 2018
  • Secret management across computers 26 Dec 2018
  • Visualizing my blog: 2018 edition 26 Dec 2018
  • Top posts of 2018 25 Dec 2018
  • Happy holidays from Visual Studio Code 25 Dec 2018
  • Solve all web app performance problems with SQL 24 Dec 2018
  • Open, Public, Electronic, and Necessary Government Data Act 24 Dec 2018
  • Calendars as streaming events 24 Dec 2018
  • Quora's revenue model 23 Dec 2018
  • HackerRank 22 Dec 2018
  • Edge moving to Chromium 22 Dec 2018
  • Global roaming 21 Dec 2018
  • FIxing spotty AirBnB wifi 21 Dec 2018
  • Tech startups are not the only ones taking risks 20 Dec 2018
  • New iteration of DevOps 19 Dec 2018
  • Facebook's latest hit 19 Dec 2018
  • I finally tried an electric scooter 18 Dec 2018
  • The new company town 17 Dec 2018
  • Stuck on a problem? Take a break 16 Dec 2018
  • Overanalyzing Medium's tag suggestions 15 Dec 2018
  • New code is not a linear increase in complexity 15 Dec 2018
  • State of tech in 2018 14 Dec 2018
  • Counting the number of lines of code in a GitHub account 13 Dec 2018
  • Scenepeek 12 Dec 2018
  • The price of AWS vs GitHub 11 Dec 2018
  • EMR vs Databricks costs 10 Dec 2018
  • The modern economy relies on information 09 Dec 2018
  • Avoiding content overload 09 Dec 2018
  • Automatic login 08 Dec 2018
  • Speech recognition and a bunch of APIs 07 Dec 2018
  • Conference call echoes 06 Dec 2018
  • The golden age of browsers 05 Dec 2018
  • How many wifi devices do we have? 04 Dec 2018
  • Overcoming writing rustiness 03 Dec 2018
  • Mobile payments and messaging apps 02 Dec 2018
  • Fat specs, light stories 01 Dec 2018
  • Tragedy of the commons: Apartment edition 30 Nov 2018
  • A delivery aggregation service 29 Nov 2018
  • Shell history: 2018 edition 28 Nov 2018
  • Privacy in a face detection world 27 Nov 2018
  • An ad on the Google search homepage 26 Nov 2018
  • Exploring my backlinks 25 Nov 2018
  • Aggressive code deprecation 25 Nov 2018
  • Code without online help 24 Nov 2018
  • Adding optionality to products 24 Nov 2018
  • Electronic goods are cheaper than ever 23 Nov 2018
  • History's largest empires 22 Nov 2018
  • Superhuman review 21 Nov 2018
  • My DataEngConf 2018 talk 20 Nov 2018
  • Computer history books 19 Nov 2018
  • Falling behind my 2018 blogging goal 18 Nov 2018
  • Random quotes 17 Nov 2018
  • Python 3 and aiohttp 16 Nov 2018
  • Limiting tracking in email 15 Nov 2018
  • What messaging war? 14 Nov 2018
  • A UX gem in Google Slides 13 Nov 2018
  • Social Security Administration spoofing scam 12 Nov 2018
  • Gmail's autocomplete 29 Oct 2018
  • Just ship it 25 Oct 2018
  • Equity in the gig economy 13 Oct 2018
  • Incognito mode: Chrome vs Safari 21 Aug 2018
  • Yahoo fantasy football stats: 2018-2019 edition 18 Aug 2018
  • Google Calendar: Constantly shipping 15 Aug 2018
  • Privacy vs user experience 29 Jul 2018
  • Bulk discounts hurt competition 22 Jul 2018
  • Class action settlement emails 21 Jul 2018
  • In a software world, humanity comes first 10 Jul 2018
  • MySQL foreign keys 07 Jul 2018
  • Using personal AWS credentials in production 28 Jun 2018
  • ALB and ELB access log schemas for Redshift 05 Jun 2018
  • Type 1 and Type 2 tech specs 01 Jun 2018
  • Power of shell commands 26 May 2018
  • Memory as a stack 14 May 2018
  • Curse of the early adopter 12 May 2018
  • Rise of microbrands 28 Apr 2018
  • Connect Four bot competition 25 Apr 2018
  • Secure at the network level 17 Apr 2018
  • Load testing 12 Apr 2018
  • Open sourcing self driving car data 03 Apr 2018
  • Protecting data ouside of a Terms of Service 25 Mar 2018
  • Facebook's "breach" 18 Mar 2018
  • Crowdsourced data 11 Mar 2018
  • Hunting for my old GeoCities site 03 Mar 2018
  • Retrieving Kindle highlights 25 Feb 2018
  • Analyzing AWS ELB logs 20 Feb 2018
  • Optimize for keyboard shortcuts 10 Feb 2018
  • Making the most of the subway commute 09 Feb 2018
  • My follower factory 03 Feb 2018
  • MoviePass: A fascinating business model 28 Jan 2018
  • Design anti pattern: Tab switching autosave 23 Jan 2018
  • Phonetic distance 16 Jan 2018
  • Calendar query language 13 Jan 2018
  • Learning Docker 03 Jan 2018
  • Favorite books of 2017 31 Dec 2017
  • AR Adblocking 28 Dec 2017
  • Visualizing my 2017 stats 27 Dec 2017
  • People do what you inspect, not what you expect 26 Dec 2017
  • Send a shirt, get a shirt 25 Dec 2017
  • Top posts of 2017 24 Dec 2017
  • My Medium experiment 22 Dec 2017
  • Analyzing my blog: 2017 edition 21 Dec 2017
  • More intelligent credit card merchant rates 14 Dec 2017
  • Google's news problem 10 Dec 2017
  • Jira analysis script 07 Dec 2017
  • Measuring sprint efficiency 01 Dec 2017
  • Google Voice transcription fails 30 Nov 2017
  • Make all laws temporary 25 Nov 2017
  • Improving Jekyll generation speed for AMP pages 23 Nov 2017
  • Ride sharing ride bailing 20 Nov 2017
  • Archiving large MySQL tables 18 Nov 2017
  • DevOps and Core Engineering application gap 15 Nov 2017
  • Modern world of massive competiting corporations 11 Nov 2017
  • Spark's read.jdbc 07 Nov 2017
  • Slides from my talk at DataEngConf 30 Oct 2017
  • Philosophy of code 29 Oct 2017
  • The code review pyramid 27 Oct 2017
  • GPS: The foundation of them all 21 Oct 2017
  • Schedule automation using Google spreadsheets and Slack 20 Oct 2017
  • Carrier specific iPhone ads 15 Oct 2017
  • Scale challenges with AWS Athena 14 Oct 2017
  • Downloading your AIM buddy list 09 Oct 2017
  • Farewell, AIM 07 Oct 2017
  • Generating a series of commands covering a date range 05 Oct 2017
  • Writer's block and code 02 Oct 2017
  • Lessons from a Yes concert 01 Oct 2017
  • Open sourcing government 22 Sep 2017
  • Examining my shell command history 21 Sep 2017
  • Apartment rental arbitrage 09 Sep 2017
  • Scaling meal kit distribution 06 Sep 2017
  • Cross app AI 04 Sep 2017
  • Amazon's real leverage 31 Aug 2017
  • Focus on the story 28 Aug 2017
  • Why live sports? 27 Aug 2017
  • A unified Lambda architecture 25 Aug 2017
  • Death of retail 22 Aug 2017
  • JSON to CSV 20 Aug 2017
  • A Snapcode in the mail 12 Aug 2017
  • Start with pen and paper 10 Aug 2017
  • Google Docs vs Confluence 08 Aug 2017
  • Ephemeral data 07 Aug 2017
  • Visualizing my meetings over time 28 Jul 2017
  • A Google Docs efficiency win 24 Jul 2017
  • The wild world of online trackers 23 Jul 2017
  • Cities and outsourced infrastructure 13 Jul 2017
  • Increasing software engineer specialization 09 Jul 2017
  • Yahoo fantasy football stats: 2017-2018 edition 08 Jul 2017
  • Thoughtful code 04 Jul 2017
  • Send private messages to all members of a Slack channel 30 Jun 2017
  • RSS finally fixed 26 Jun 2017
  • Unsubscribe and wait 10 days 24 Jun 2017
  • Apple's ARKit 22 Jun 2017
  • Getting AMP into RSS 20 Jun 2017
  • Investigating application issues 17 Jun 2017
  • The Amazon juggernaut 16 Jun 2017
  • Mary Meeker's Internet Trends 2017 04 Jun 2017
  • Learn from failure, not success 30 May 2017
  • Engineering, product, and design 27 May 2017
  • IVR to SMS 25 May 2017
  • Type dependent databases 23 May 2017
  • Copying production SQL data to other environments 20 May 2017
  • The different flavors of engineering interviews 17 May 2017
  • In praise of the polymath 13 May 2017
  • Using options to play Snapchat's quarterly results 10 May 2017
  • Tools over languages 07 May 2017
  • Security across multiple AWS regions 04 May 2017
  • Having some fun with the RGB color model 30 Apr 2017
  • The golden age of big data tools 23 Apr 2017
  • Subscription all the things 21 Apr 2017
  • AMP and subscription paywalls 16 Apr 2017
  • SQL is the perfect interface 11 Apr 2017
  • Optical illusions and self driving cars 09 Apr 2017
  • Quality over quantity: NextDoor vs Craigslist 08 Apr 2017
  • Changing good code is easy 04 Apr 2017
  • Slack's channel exit anti pattern 02 Apr 2017
  • Fulfillment by Amazon counterfeiting 26 Mar 2017
  • The effects of marketing on price 25 Mar 2017
  • Embrace experimentation 22 Mar 2017
  • Refactor driven development 19 Mar 2017
  • In praise of long running code 12 Mar 2017
  • Stop procrastinating 09 Mar 2017
  • Automating admin work: Spreadsheets to Slack 04 Mar 2017
  • Lessons learned from today's S3 failure 28 Feb 2017
  • My Snapchat investment strategy 26 Feb 2017
  • Advice for coding bootcamp graduates 21 Feb 2017
  • Math is incredible 19 Feb 2017
  • Read books, not blog posts 16 Feb 2017
  • Mancur Olson and the changing economy 13 Feb 2017
  • Traffic efficiency 09 Feb 2017
  • New law? Let the opposition name it 06 Feb 2017
  • Identifying product weaknesses using Google autocomplete 04 Feb 2017
  • Learning modern frontend development 01 Feb 2017
  • The freedom to move 28 Jan 2017
  • Shame on United and Bank of America 26 Jan 2017
  • Powering our devices using the human body 16 Jan 2017
  • Find the arbitrage opportunities in hiring 14 Jan 2017
  • Information bandwidth of audio and display ads 11 Jan 2017
  • Top posts of 2016 04 Jan 2017
  • Year in review: 2016 02 Jan 2017
  • Favorite books of 2016 31 Dec 2016
  • Amazon's peer to peer marketplace 31 Dec 2016
  • Human-AI cooperation 30 Dec 2016
  • Traveling? Buy a local book 29 Dec 2016
  • Comparing public transit systems: New York vs London 24 Dec 2016
  • Programming languages and developer tools 17 Dec 2016
  • Automatically taking screenshots of HTML elements 13 Dec 2016
  • Word clouds and text similarity 10 Dec 2016
  • It's donation season 09 Dec 2016
  • Efficiency vs expressiveness 06 Dec 2016
  • Read the release notes 03 Dec 2016
  • Becoming a better developer 30 Nov 2016
  • Visualizing your AWS costs 27 Nov 2016
  • Joy of old code 19 Nov 2016
  • Comparing the web requests made by the top sites: 2014 vs 2016 18 Nov 2016
  • Recursive redirects with AWS Lambda 13 Nov 2016
  • A poor man's data pipeline 12 Nov 2016
  • Restricted highlighting on the Amazon Kindle 06 Nov 2016
  • The NFL abroad 30 Oct 2016
  • Simple data visualizations from the command line 26 Oct 2016
  • Preventing future DDOS attacks 23 Oct 2016
  • Revisiting my Twitter activity 19 Oct 2016
  • My new blogging setup 13 Oct 2016
  • Setting up secor for Kafka 0.10 10 Oct 2016
  • Friction and mass surveillance 09 Oct 2016
  • iOS wifi security recommendation 02 Oct 2016
  • Shaming meeting room hogs 01 Oct 2016
  • NFL Thursdays on Twitter 25 Sep 2016
  • A smarter Touch ID 23 Sep 2016
  • Automating management 18 Sep 2016
  • Supporting Disqus in AMP 13 Sep 2016
  • Comparing my top sites: 2012 vs now 10 Sep 2016
  • AMP migration scripts 08 Sep 2016
  • Visualizing fantasy football stats 05 Sep 2016
  • AMPifying my blog 05 Sep 2016
  • Violating the norms of a social network 01 Sep 2016
  • Food identification with Google's Cloud Vision 29 Aug 2016
  • Giving wallabag a shot 28 Aug 2016
  • Writing scrapers as APIs 24 Aug 2016
  • Downloading your Turo ride history 21 Aug 2016
  • Integrating poorly documented Open Source libraries 14 Aug 2016
  • Fantasy football stats: 2016-2017 edition 13 Aug 2016
  • Consumer tech leads to cyborgs 08 Aug 2016
  • Engineering management: Measuring the unmeasurable 07 Aug 2016
  • One of my favorite programs 06 Aug 2016
  • Smarter geographic ad targeting 26 Jul 2016
  • Double down on your brand and IP 22 Jul 2016
  • Coding puzzle: Word transformation through valid words 17 Jul 2016
  • Whatever happened to automatic login? 16 Jul 2016
  • A Twitter Moments fail 10 Jul 2016
  • Consumer protection for UX 09 Jul 2016
  • Maximize the potential energy of your code 04 Jul 2016
  • Snapchat's massive potential 03 Jul 2016
  • Low cost at small scale 26 Jun 2016
  • The Brave browser 23 Jun 2016
  • Messaging app fragmentation 22 Jun 2016
  • Blogging from my phone 19 Jun 2016
  • AWS, Stripe, and WeWork 18 Jun 2016
  • Analyzing my blog 12 Jun 2016
  • Following up on a website optimization offer 11 Jun 2016
  • Word clouds in R 06 Jun 2016
  • Blogging: The small wins 05 Jun 2016
  • Uber and self driving cars 28 May 2016
  • Analyzing IMDB data: Actors vs actresses 22 May 2016
  • Analyzing IMDB data: Step 1 - Cleaning and QA 21 May 2016
  • Experimenting with Medium 15 May 2016
  • Expiration date selection design anti pattern 14 May 2016
  • Identifying unused database tables 11 May 2016
  • Google's photo search is eerily incredible 08 May 2016
  • Text is king 30 Apr 2016
  • Avoid full body code transplants 27 Apr 2016
  • A Telegram blog bot 23 Apr 2016
  • Irrationality of the markets: Amazon up, Netflix down 18 Apr 2016
  • The corporate email signup design pattern 13 Apr 2016
  • Unintended consequences 10 Apr 2016
  • Generalize at n=3 07 Apr 2016
  • The best code is no code 05 Apr 2016
  • Ben Thompson's “laddering up” and building bigger moats 03 Apr 2016
  • Unbundling politics 27 Mar 2016
  • Political parties are product bundles 26 Mar 2016
  • Data analysis needs to be fun 21 Mar 2016
  • Passing the torch: IBM to Google 20 Mar 2016
  • Approach work like the gym 13 Mar 2016
  • The MySQL enum type 10 Mar 2016
  • Airbnb, Uber, and local laws 06 Mar 2016
  • AWS EC2 instance arbitrage 05 Mar 2016
  • Tool specialization and growing companies 28 Feb 2016
  • Aural information density 27 Feb 2016
  • Platform partnerships 22 Feb 2016
  • Amazon Echo 21 Feb 2016
  • Let's Encrypt 20 Feb 2016
  • The impact of self driving cars 17 Feb 2016
  • Design your database for flexibility 15 Feb 2016
  • Longer terms in government? 13 Feb 2016
  • Retargeting gone wrong 10 Feb 2016
  • Don't build a Homer 07 Feb 2016
  • Describe what your code won't do 31 Jan 2016
  • Unification in tech and a new Gilded Age 29 Jan 2016
  • The famed 10x developer 24 Jan 2016
  • The ownership hierarchy 23 Jan 2016
  • Poor, neglected Google Voice 17 Jan 2016
  • 2015 Stats: Part 1 12 Jan 2016
  • Cleanest way to read a CSV file with Python 10 Jan 2016
  • Have consistent development environments 09 Jan 2016
  • Paris versus New York City 03 Jan 2016
  • Lessons from 2015 01 Jan 2016
  • Smartphone usage by generation 28 Dec 2015
  • The true cost of low quality 25 Dec 2015
  • Have a work “workout” plan 20 Dec 2015
  • Automatically generating APIs 19 Dec 2015
  • Know what's mission critical 15 Dec 2015
  • Jersey City garbage truck routes 12 Dec 2015
  • Optional museum fees and corporate sponsorships 07 Dec 2015
  • Setting up a new computer - then and now 06 Dec 2015
  • Think interfaces, not implementation 02 Dec 2015
  • Analyzing large networks 26 Nov 2015
  • Why are Netflix and Spotify so different? 22 Nov 2015
  • More MySQL fun 21 Nov 2015
  • Adhoc task management 19 Nov 2015
  • My old projects 12 Nov 2015
  • Apps on LTE, mobile web on wifi 09 Nov 2015
  • A company marches on its data 08 Nov 2015
  • Zoning Airbnb 05 Nov 2015
  • Good code is easy to build and deploy 01 Nov 2015
  • Some nostalgia 29 Oct 2015
  • Production makes fools of us all 25 Oct 2015
  • Jsonify.me 2.0 21 Oct 2015
  • Dates in the shell 19 Oct 2015
  • Writing code? Think about the deployment 18 Oct 2015
  • Adblock, publishers, and content quality 15 Oct 2015
  • Have a 'go to' project when learning a new programming language 11 Oct 2015
  • Not every big company is evil 10 Oct 2015
  • Is media consumption zero sum? 04 Oct 2015
  • The iPad Pro and Apple's walled garden 26 Sep 2015
  • Mapping the Jersey City parking zones II 24 Sep 2015
  • Keep on learning 20 Sep 2015
  • Internalizing externalities 15 Sep 2015
  • Workaround driven product development 13 Sep 2015
  • Mapping the Jersey City parking zones 12 Sep 2015
  • Smart OSes 05 Sep 2015
  • Come on Twitter 03 Sep 2015
  • Two factor authentication hell 31 Aug 2015
  • Game theory dining 29 Aug 2015
  • Learn the application architecture through AWS 23 Aug 2015
  • Development cycles across programming languages 20 Aug 2015
  • A phoneless day 16 Aug 2015
  • Generating vs filtering 15 Aug 2015
  • Reprioritizing a non priority RabbitMQ queue 12 Aug 2015
  • Static site search 09 Aug 2015
  • Debate what's necessary and no more 03 Aug 2015
  • It's not done until it's deployed 01 Aug 2015
  • The Go interface 29 Jul 2015
  • Use the database Luke 25 Jul 2015
  • Tunnel vision 20 Jul 2015
  • Excel wins 19 Jul 2015
  • A Bloom filter in my head 16 Jul 2015
  • Comparing SQL schemas 12 Jul 2015
  • Apple and Intel 08 Jul 2015
  • Zsh and Oh My Zsh 06 Jul 2015
  • Ambiguous SQL queries 27 Jun 2015
  • Domain specific API definitions 23 Jun 2015
  • Properly handling text based two factor authentication 20 Jun 2015
  • The Edmunds API 19 Jun 2015
  • Smartphone productivity 13 Jun 2015
  • A MySQL “GROUP BY” nuance 09 Jun 2015
  • Finding the optimal car to list on RelayRides 07 Jun 2015
  • Date range generation 30 May 2015
  • Dealing with a stripped screw 26 May 2015
  • Google Chrome knows what's best for me 25 May 2015
  • The decline of niche tools 22 May 2015
  • Experts, time, and quality 18 May 2015
  • Taking spontaneous notes 17 May 2015
  • Mosh trumps shoddy internet 12 May 2015
  • Driving before GPS 09 May 2015
  • Computer show fliers from the mid 1990s 06 May 2015
  • A unique solution to every problem 02 May 2015
  • A few days with Google Contributor 28 Apr 2015
  • AWS service limits 26 Apr 2015
  • Adding columns in PostgreSQL and Redshift 23 Apr 2015
  • Don't scrape into a Dropbox folder 19 Apr 2015
  • The uncanny valley of advertising 12 Apr 2015
  • Dealing with an unresponsive Google CDN 12 Apr 2015
  • Redshift meets Excel 06 Apr 2015
  • My tool setup 03 Apr 2015
  • iOS first and username claiming 29 Mar 2015
  • Why login after resetting your password? 24 Mar 2015
  • The sharing economy and human behavior 21 Mar 2015
  • Power of engineering standards 18 Mar 2015
  • Learning to spell again 15 Mar 2015
  • An ode to Pi 14 Mar 2015
  • Strongly typed, static language tools 10 Mar 2015
  • Computer literacy for protection and productivity 08 Mar 2015
  • Getting the most out of log4j 28 Feb 2015
  • Lists and localStorage 26 Feb 2015
  • In praise of the full stack developer 23 Feb 2015
  • Lessons from Node 22 Feb 2015
  • Smarterphones 16 Feb 2015
  • Learning Scala 13 Feb 2015
  • URL redirection app 07 Feb 2015
  • MySQL vs PostgreSQL sort order 01 Feb 2015
  • Migrating a simple HTTP application on AWS 29 Jan 2015
  • IBM's rumored layoff 26 Jan 2015
  • The changing fidelity of the past 25 Jan 2015
  • Don't trust client side data 24 Jan 2015
  • Fun with GitHub's map tools 18 Jan 2015
  • Take the first step 17 Jan 2015
  • 2014 stats 11 Jan 2015
  • Limited language codebases 09 Jan 2015
  • Some quick Twitter analytics analysis 06 Jan 2015
  • Introducing jsonify.me 04 Jan 2015
  • Redirect recursion 31 Dec 2014
  • A new Turing test 29 Dec 2014
  • DevOps for the rest of us 26 Dec 2014
  • Passive technology and the decline of privacy 20 Dec 2014
  • Amazon's Fire TV Stick 18 Dec 2014
  • Why log me out? 16 Dec 2014
  • Waiting for the aha moment 14 Dec 2014
  • Travel to appreciate technological growth 13 Dec 2014
  • Piketty and the power of data 09 Dec 2014
  • Internetless coding 07 Dec 2014
  • Symptom based monitoring 01 Dec 2014
  • AWS: Always shipping 24 Nov 2014
  • Fab's fall from grace and the difficulty of startups 22 Nov 2014
  • Paying publishers without ads 20 Nov 2014
  • Backendless applications 18 Nov 2014
  • Productivity optimization 13 Nov 2014
  • Some simple AWS tools 09 Nov 2014
  • Luxury for cheap 05 Nov 2014
  • Tools as tools, not products 01 Nov 2014
  • Libraries 28 Oct 2014
  • Lessons learned teaching a MySQL class 27 Oct 2014
  • Spam blog comments 26 Oct 2014
  • My first open source contribution 19 Oct 2014
  • Link bait titles are a race to zero 18 Oct 2014
  • AWS Glacier 12 Oct 2014
  • Clearing my head 08 Oct 2014
  • XKCD movie quotes by Android 04 Oct 2014
  • Normalizing a CSV file using MySQL 01 Oct 2014
  • Mobile web browsing and Javelin 27 Sep 2014
  • Dev tools matter 25 Sep 2014
  • Software is good enough, why improve the hardware? 21 Sep 2014
  • Dealing with an RDS replication issue 20 Sep 2014
  • Web development bootcamps 17 Sep 2014
  • Top down vs bottom up coding 16 Sep 2014
  • Curated Twitter timelines and the tech stack 08 Sep 2014
  • Importance of various tech services 07 Sep 2014
  • API first startups 01 Sep 2014
  • Managing settings files in Django projects 30 Aug 2014
  • Yahoo fantasy football stats - 2014 edition 26 Aug 2014
  • Cofounders and their situations 22 Aug 2014
  • Trick your users into staying 18 Aug 2014
  • A MySQL class proposal 17 Aug 2014
  • Books are insanely cheap 11 Aug 2014
  • Evolution of code deployment 09 Aug 2014
  • Getting the most out of Lyft's 50 free rides 03 Aug 2014
  • Hiring people on Odesk 31 Jul 2014
  • Low quality? Start bundling! 29 Jul 2014
  • Ephemeral security questions 27 Jul 2014
  • When one door closes, another door opens 23 Jul 2014
  • A simple way to automate AWS deployments 16 Jul 2014
  • Set up HTTPS on EC2 running Nginx without ELB 15 Jul 2014
  • Getting low level with HTTP 14 Jul 2014
  • Good artists use fewer tools 13 Jul 2014
  • Amazon courting app developers for the Fire phone 10 Jul 2014
  • On Google Now 09 Jul 2014
  • Retrieving a Twitter user's followers and followees 07 Jul 2014
  • The future of databases 05 Jul 2014
  • On having my Pinterest account hacked 15 Jun 2014
  • An eBay design rant: timezone support 12 Jun 2014
  • Replacing Evernote 08 Jun 2014
  • Debugging a reverting database update 07 Jun 2014
  • Approachable data science 02 Jun 2014
  • Generate fake SQL data using JavaScript 29 May 2014
  • On Fab's latest move 24 May 2014
  • Logging in through your inbox 20 May 2014
  • Examining ssh login requests 16 May 2014
  • Coding in a VR future 15 May 2014
  • Most commonly used shell commands 12 May 2014
  • Site down? Fall back to S3 10 May 2014
  • Gap fills and cross joins in Excel 03 May 2014
  • Migrating from Linode to Digital Ocean 02 May 2014
  • System knowledge and human creativity 28 Apr 2014
  • Craigslist: the web's fertilizer 25 Apr 2014
  • Bulk geocoding tool 21 Apr 2014
  • Vertical integration and web development 16 Apr 2014
  • Some computer memories 13 Apr 2014
  • My computer experience 12 Apr 2014
  • Self hosted services 07 Apr 2014
  • PostgreSQL Fibonacci 04 Apr 2014
  • AWS is about infrastructure optionality 30 Mar 2014
  • Hacker lore 28 Mar 2014
  • Visualizing my browsing history 25 Mar 2014
  • Goodbye Gmail 18 Mar 2014
  • Fun with the Oyster books API 16 Mar 2014
  • Website load times: NYC vs Beijing 11 Mar 2014
  • Examining the requests made by the top 100 sites 09 Mar 2014
  • Follow the WhatsApp money 06 Mar 2014
  • Trained for discounts 02 Mar 2014
  • Blog posts are now tagged 26 Feb 2014
  • More Sierpinski fun 21 Feb 2014
  • Sierpinski triangle in D3 19 Feb 2014
  • Heuristic vs algorithmic approaches 15 Feb 2014
  • Foursquare as a contact book 13 Feb 2014
  • Using virtualenv in production 10 Feb 2014
  • Travel more 09 Feb 2014
  • Visualizing GPS data in R 05 Feb 2014
  • Why I manage my own blog 02 Feb 2014
  • Solving coding tests in PostgreSQL 25 Jan 2014
  • Developing on a remote instance 23 Jan 2014
  • Emotional products 19 Jan 2014
  • Ebook readers 15 Jan 2014
  • Taxi prices around the world 09 Jan 2014
  • Surge pricing ideas 05 Jan 2014
  • Visualizing RunKeeper data in R 04 Jan 2014
  • 2013 blog stats 30 Dec 2013
  • Taxi pricing in NYC vs Mumbai 29 Dec 2013
  • Smartphones and literacy 26 Dec 2013
  • Global products 25 Dec 2013
  • Getting a SIM card in India 23 Dec 2013
  • CSV powered products 21 Dec 2013
  • Why Bank of America, why? 20 Dec 2013
  • Using the information_schema.columns table 15 Dec 2013
  • Why are there so many cleaning startups? 09 Dec 2013
  • Drowning in JavaScript 01 Dec 2013
  • Genetic programming Connect 4 30 Nov 2013
  • Blog analytics (blogolytics?) 26 Nov 2013
  • I'm joining TripleLift 23 Nov 2013
  • A Twitter flashback 16 Nov 2013
  • RDS and R 15 Nov 2013
  • Is Excel on a Mac intentionally hobbled? 09 Nov 2013
  • Security in the wake of MongoHQ 07 Nov 2013
  • Why I run 03 Nov 2013
  • What the SEO? Followup 30 Oct 2013
  • Lessons from consulting 27 Oct 2013
  • Some more design ranting 23 Oct 2013
  • What the SEO? 20 Oct 2013
  • But I don't have time 14 Oct 2013
  • My running progress 13 Oct 2013
  • Decline of cynicism 12 Oct 2013
  • Some JavaScript Tools 05 Oct 2013
  • Why's the iPhone 5C so expensive? 01 Oct 2013
  • Going rate for an email address 30 Sep 2013
  • Pricing small consulting projects 28 Sep 2013
  • In defense of Excel 20 Sep 2013
  • Programming and math 17 Sep 2013
  • Offering suggestions 16 Sep 2013
  • MoMath visit 11 Sep 2013
  • Want more sales? Start teaching 06 Sep 2013
  • Design anti pattern: footer under infinite scroll 03 Sep 2013
  • Startups aren't black and white 02 Sep 2013
  • Simplicity vs power in product design 28 Aug 2013
  • Extract info from a web page using JavaScript 26 Aug 2013
  • Splitting an AWS account 24 Aug 2013
  • On Teaching AP Computer Science 18 Aug 2013
  • Netflix profiles, why now? 14 Aug 2013
  • Rise of flat design 11 Aug 2013
  • Introducing Better 404 07 Aug 2013
  • A brief history of manufacturing 02 Aug 2013
  • Run Django under Nginx, Virtualenv and Supervisor 30 Jul 2013
  • The power inbox 27 Jul 2013
  • Security through monopoly 22 Jul 2013
  • Beware the data monopoly 21 Jul 2013
  • Scraping Yahoo fantasy football stats with Scrapy 17 Jul 2013
  • Marketplaces are hard 13 Jul 2013
  • D3 and Vega 09 Jul 2013
  • Meetings: to take or not to take? 07 Jul 2013
  • A design that's too good? 03 Jul 2013
  • Externalizing externalities in brick and mortar 01 Jul 2013
  • Business frameworks are actually useful 25 Jun 2013
  • Where are you on the sales matrix? 21 Jun 2013
  • Pushing moral boundaries 20 Jun 2013
  • Regulation and the share economy 16 Jun 2013
  • Constantly entertained 12 Jun 2013
  • Fun with Prolog: Priceonomics Puzzle 07 Jun 2013
  • Citibike Directions: Second Attempt 04 Jun 2013
  • Citibike Station to Station Directions 01 Jun 2013
  • On SEO: Authority vs Originality 29 May 2013
  • Investing in tech stocks 24 May 2013
  • Save my reading spot, damn it 22 May 2013
  • Adding attachments to django-postman 17 May 2013
  • Google's “free” Adwords credits 15 May 2013
  • Eighteen Months of Django: Part 2 10 May 2013
  • Eighteen months of Django 07 May 2013
  • Netflix, bundling, and the future of video 05 May 2013
  • Follow through on that personal welcome email 02 May 2013
  • Some gaming nostalgia 29 Apr 2013
  • Smart software; dumb hardware 24 Apr 2013
  • What does getting on the HN front page get you? 19 Apr 2013
  • Automatically add a “Follow on HN” link 15 Apr 2013
  • Why don't cell phones have a dialtone? 12 Apr 2013
  • Raspbmc 10 Apr 2013
  • Coke, Pepsi and Passover 05 Apr 2013
  • The new Gmail compose 02 Apr 2013
  • Mailbox: Is the server required? 29 Mar 2013
  • Welcoming the long, single webpage 26 Mar 2013
  • Email addresses are private? 24 Mar 2013
  • One art, please 20 Mar 2013
  • Makers Alley v2 16 Mar 2013
  • Mmmm... pseudo static sites 12 Mar 2013
  • Just do the work 09 Mar 2013
  • Discriminatory Pricing in the Post Office 05 Mar 2013
  • App Store, what took so long? 01 Mar 2013
  • Book Review: Liars and Outliers 26 Feb 2013
  • Account management madness 25 Feb 2013
  • Vacationing with Foursquare 22 Feb 2013
  • Tesla and privacy 21 Feb 2013
  • An analysis of Lincoln's words 12 Feb 2013
  • More thoughts on online education 08 Feb 2013
  • Identifying duplicate bills across states 05 Feb 2013
  • Improving online programming classes 01 Feb 2013
  • The Patent troll troll 29 Jan 2013
  • Blog updates since November 24 Jan 2013
  • Why aren't there more engineers in politics? 23 Jan 2013
  • Making sense of my Twitter archive 19 Jan 2013
  • What do Fab and Groupon have in common? 15 Jan 2013
  • Is the pen mightier than the sword in a social world? 11 Jan 2013
  • Web scraping like a pro 09 Jan 2013
  • 2013 Goals 02 Jan 2013
  • Year in Review 2012 01 Jan 2013
  • Self hosted Instagram export 19 Dec 2012
  • The joy of upgrading an HD in a Macbook 16 Dec 2012
  • Entrepreneurship is not a job 29 Nov 2012
  • Github Migration Notes 14 Nov 2012
  • Hello, Github! 13 Nov 2012
  • Eating Yourself - Innovation & Cannibalization 12 Aug 2012
  • In Defense of Yahoo 05 Aug 2012
  • The Startup Advantage - Details, Details, Details 28 Jul 2012
  • Race to 0 - RIM vs IE 10 Jul 2012
  • Photo taken near Times Square 09 Jul 2012
  • Achieving browser autocomplete 07 Jun 2012
  • Trend of actor vs actress age differences 23 May 2012
  • Selling to the enterprise? Target the consumer 22 May 2012
  • Peter Thiel's CS183 16 May 2012
  • Growth of Consumer Comfort with Technology 25 Apr 2012
  • Draw Something Zyngafied 12 Apr 2012
  • Future of Startups - Small Teams, Big Profit 10 Apr 2012
  • On Writing 04 Apr 2012
  • Where are the event recommendation startups? 30 Mar 2012
  • Overcoming the Build Bias 24 Mar 2012
  • When is it time to leave the full time job? 21 Mar 2012
  • On business models - To collect or to fine? 05 Mar 2012
  • Shakespeare and Startups 29 Jan 2012
  • Improving the Subway User Experience 12 Jan 2012
  • Screwed if you do, screwed if you don't 30 Dec 2011
  • GroupOn Scheduler 08 Dec 2011
  • Tech Interview Question 08 Jan 2011
  • Google Giving Employees Free Adwords? 25 Aug 2010
  • More posts coming soon 10 Mar 2010
  • Improving your luck 28 Sep 2009
  • Power of Twitter 08 Mar 2009
  • Enabling modules in Apache2 under Ubuntu 23 Jan 2009
  • What's the easiest way to be elected president? 21 Jan 2009
  • More posts coming up 20 Jan 2009
  • On weekend voting 24 Oct 2008
  • Some thoughts on innovation 01 Oct 2008
  • Should we apply the EU model to the US 15 Sep 2008
  • Voting system proposal 12 Sep 2008
  • On TV commercials 03 Sep 2008
  • Advice on internet passwords 19 Jun 2008
  • Privacy in the digital age 12 Jun 2008
  • Interesting Perl behavior 30 May 2008
  • Don't judge words by their author 28 May 2008
  • Martha's Vineyard Lighthouse 24 May 2008
  • Welcome 21 May 2008
  • Brainteasers and interviews 14 May 2008
  • Why we may never colonize space 13 May 2008
  • Printers no longer come with cables? 13 May 2008
  • Pronunciation 08 May 2008
  • The homeless in the US 04 May 2008
  • On Microsoft walking away from Yahoo 04 May 2008
  • Why does EA want Take Two? 29 Apr 2008
  • Video games as art 29 Apr 2008
  • On Apple buying PA Semiconductor 25 Apr 2008
All content copyright © 2019 • All rights reserved.
Made with Jekyll and Amplify. Theme inspired by Simon Hørup Eskildsen.