Keith R. Bennett

Software Engineer in Reston, Virginia

Visit my website

Software Development

I have a passion for creating value in the form of functional, reliable software. My current focus is Ruby and JRuby, used mostly for back end programming such as data manipulation and automating workflows.

I am equally comfortable as a teacher and developer. As a teacher I can elevate the expertise of Ruby teams by training, mentoring, and code reviewing. As a developer I can write easy-to-use libraries the team can use to avoid dealing with detail and be more productive.

Earlier in my career, I worked with Java, C++, and C. Current interests include functional languages such as Elixir and Clojure.

I am an enthusiastic practitioner of best practices regarding testing, code clarity, and sound design principles such as low coupling and DRY code.


My technical blog is at; I also have a blog about the human aspects of software development at


I come from a family of teachers, and have enjoyed teaching and tutoring from time to time. A long while back I taught a couple of semesters of C language at New York University's School of Continuing Education.

Occasionally I've enjoyed speaking at user group meetings and conferences. My slide presentations are at My FunctionalConf talk about Ruby Lambdas is on YouTube at

Technical Community, Travel, and Natural Languages

I am active in technical community such as user group meetings and conferences. I enjoy combining travel with this and have attended conferences in Hong Kong, Canada, Thailand, Singapore, India, and the Philippines.

I've travelled in Asia, Europe, and Africa, and have varying degrees of expertise in the French, Swedish, Korean, Japanese, and Thai languages.


For fun I like hanging out with friends, swimming, karaoke, and the occasional study of massage in Thailand and the USA.