San Francisco, CAUSA
Hometown: Colorado Springs, CO
April 30, 2012
I've worked primarily in Java for the last six years - before that I worked with C++ for five years. I am gaining knowledge in Clojure but am far from an expert.
Clojure is now emerging as my favorite programming language and I try to take every opportunity to play with it and gain a better understanding of it. I believe that a deep understanding of Clojure will make me a better programmer in all languages. Java would be another favorite of mine but mostly because of the wealth of freely available libraries. I've enjoyed Java much more since I've learned about Dependency Injection and the Spring Framework.
IntelliJ is my favorite text editor for Java based development. Notepad++ is another tool that I leverage and I worked in vi for the first five years of my professional career.
Three strategies that I use to produce timely, working, reliable software are: Interface Based Programming so I can develop hardened contracts between components and test these contracts for all implementations. Functional Interfaces so that we don't have underlying/implied state in the contract and thus can simplify our implementations by removing state management from their responsibilities. Separation of concerns so that we can separate our business logic into standalone components which can be reused and tested simply.
I'm a software engineer who believes in continually improving myself and learning new technologies (FP in particular). For the last four years, I have been the lead software engineer for an RDF/OWL based situation awareness learning system.
This is a great meetup to go to if you're interested in the 'Frontier' of software development.