
David Eisinger
VP of Development
The Iceman. David's parents met at IBM and he's been using (and breaking) computers since before he could walk. After studying computer science at TJHSST and Duke University, he's been at Viget since 2008, where he leads technical engagements with some of our biggest clients.
David strives to deliver high quality, forward-thinking software on time and budget. His primary interests include database design, functional programming, distributed architectures, and being right almost exclusively.
David's Insights
News & CultureStackStash: Taking Bookish Musings to the Next Level
CodeMaintenance Matters: Good Tests
News & CultureWhat’s in a Word? Building a Verbose Party Game
CodeSimple Commit Linting for Issue Number in GitHub Actions
CodeMaintenance Matters: Continuous Integration
CodePandoc: A Tool I Use and Like
CodeLocal Docker Best Practices
CodeExtract Embedded Text from PDFs with Poppler in Ruby
CodeFive Turbo Lessons I Learned the Hard Way
CodeLet’s Make a Hash Chain in SQLite
Code“Friends” (Undirected Graph Connections) in Rails
CodeMaking an Email-Powered E-Paper Picture Frame
CodeEmail Photos to an S3 Bucket with AWS Lambda (with Cropping, in Ruby)
CodeLet’s Write a Dang ElasticSearch Plugin
CodeWhy I Still Like Ruby (and a Few Things I Don’t Like)
CodeThings About Which The Viget Devs Are Excited (May 2020 Edition)
CodeTesting Solr and Sunspot (locally and on CircleCI)
CodeThe Right Way to Store and Serve Dragonfly Thumbnails
CodeThe Little Schemer Will Expand/Blow Your Mind
CodeJSON Feed Is Cool (+ a Simple Tool to Create Your Own)
CodeUsing Microcosm Presenters to Manage Complex Features
- Code
Get Lazy with Custom Enumerators
- Code
Functional Programming in Ruby with Contracts
- Code
Romanize: Another Programming Puzzle
- Code
OTP: a Functional Approach (or Three)
- Code
OTP: a Language-Agnostic Programming Challenge
- Code
Adding a NOT NULL Column to an Existing Table
- Code
Required Fields Should Be Marked NOT NULL
- Code
Use .pluck If You Only Need a Subset of Model Attributes
- Code
First-Class Failure
- Code
Diving into Go: A Five-Week Intro
- Code
“What’s new since the last deploy?”
- Code
Write You a Parser for Fun and Win
- Code
Level Up Your Shell Game
- Code
AWS OpsWorks: Lessons Learned
- Code
Simple, Secure File Transmission
- Code
Simple App Stats with StatBoard
- Code
Large Images in Rails
- Code
Manual Cropping with Paperclip
- Code
Three Magical Git Aliases
- News & Culture
New Pointless Project: OfficeGames
- Code
The Balanced Developer
- Code
Regular Expressions in MySQL
- Code
Testing Your Code’s Text
- Code
PUMA on Redis
- Code
On Confidence and Real-Time Strategy Games
- Code
Rails Admin Interface Generators
- Code
Convert a Ruby Method to a Lambda
- Code
Static Asset Packaging for Rails 3 on Heroku
- News & Culture
New Pointless Project: I Dig Durham
- Code
Getting into Open Source
- Code
Practical Uses of Ruby Blocks
- Code
Social Media API Gotchas
- Code
CoffeeScript for Ruby Friends
- Code
DevNation Coming to San Francisco
- Code
Around "Hello World" in 30 Days
- Code
Gifts For Your Nerd
- Code
HTML Sanitization In Rails That Actually Works
- News & Culture
Refresh Recap: The Future of Data
- Code
Viget Devs Storm Chicago
- Code
Single-Use jQuery Plugins
- Code
Simple APIs using SerializeWithOptions
- Code
How (& Why) to Run Autotest on your Mac
- Code
Unfuddle User Feedback
- Code
Backup your Database in Git
- Code
Shoulda Macros with Blocks
- Code
Out, Damned Tabs
- Code
Stop Pissing Off Your Designers
- Code
Sessions on PCs and Macs
- Code
Getting (And Staying) Motivated to Code
- Code
Multi-line Memoization
- Code
Protip: TimeWithZone, All The Time
- Code
Introducing: EmailLabsClient
- Code
RubyInline in Shared Rails Environments
- News & Culture
Refresh 006: Dr. jQuery
- Code
cURL and Your Rails 2 App















