I have been involved with projects and companies leveraging Java since version 1.2. Java is one of the languages and environments in which I am most comfortable. I have experience writing Java at all levels where Java can be applied. From cross-platform desktop applications to command line utilities to J2EE business logic to microservices. I have experience applying Java to several programming paradigms, including highly concurrent and distributed environments. I continue to find myself in situations where Java is a good fit for the problem, and I continue to enjoy working with tools and languages that build on the JVM and the Java ecosystem. I feel very confident about my ability to immediately contribute in this language.
Groovy is my language of choice when I want to write dynamic code or do rapid prototyping in the Java environment. I have several years of experience working with Groovy and leveraging the Java ecosystem from Groovy. I am comfortable across the entire spectrum between writing very Java-like Groovy and writing idiomatic Groovy taking advantage of Groovy's dynamic nature. I am very confident in my knowledge of this language.
I have been working with C# since Microsoft introduced the .NET platform. As with the Java ecosystem, I have experience using C# and .NET across many different problem domains, from hardware automation to classical desktop applications to server-side processing. C# is my language of choice when specifically targeting Windows platforms. I am very confident in my knowledge of this language, and am familiar with the .NET environment.
Almost every non-trivial problem has non-trivial persistence needs. Very often, relational databases are an appropriate solution. While I appreciate the architectural benefits of an ORM layer, I have always enjoyed working with SQL directly when the opportunity is presented. I am very comfortable with standard SQL and relational databases in general.
When I was first introduced to JavaScript, I was not particularly interested in using it. As the language and ecosystem has matured in the last several years, I have come to appreciate JavaScript more. I have been very excited by the developments of modern JS engines and am very excited about some of the features introduced in ECMA Script 6. JavaScript has become a performant, expressive language and many of the shortcomings and warts it possesed are being addressed. In particular, with the emergence of frameworks like Backbone and React, as well as the libraries surrounding large-scale application development in JavaScript, I have found it a very pleasent language to work with. I have several years of experience building web-based applications with JavaScript. I feel very confident in my knowledge and expertise with this language.
PHP is a language I have had cause to use several times in my career, most often because it is the native language of an existing solution. In my time with QuantumDigital I had the oportunity to futher my understanding of modern PHP by enrolling in Zend's advanced PHP training courses. While it has been several years since I have worked regularly in PHP I am confident in my past experience and ability to ramp up quickly to an expert level.
When I first learned of Erlang it immediately caught my attention due to it's philosophy of expecting failure, it's approach to concurrency and it's functional nature. While I have had the oportunity to use Erlang successfully on some personal projects, I have not yet had the opportunity to be a part of a team of people all working in the language. I am very familiar with the standard library, aware of the growing ecosystem surrounding Erlang in modern use, and thouroughly enjoy writing Erlang code. I would be excited for the opportunity to work with and learn from a team using Erlang to build their solutions. I feel very confident in the core language and runtime, and confident in my ability to ramp up on new subjects in this domain.