Who I Am

In Summary
My name is Patrick Wright. I am a software engineer who has been designing and writing software as a career since 1993, working freelance since 1997 or thereabouts. I am currently based in Berlin, Germany. Contact me for a copy of my resume/CV.

I take interest and great pleasure in all facets of software development: analysis, design, implementation, testing, maintenance.

I’ve worked in a variety of markets, but haven’t specialized in any of them. One of the best parts of my job is learning about new types of business and associated problem domains.

I’ve done this work in companies of many sizes, from large corporations to teeny, tiny, just-getting-started startups.

What I Like
I love the process of software design. The discussion and the arguments. The give and the take. Seeking agreement. Struggling to find a common understanding.

I love planting the seeds for a new software system and watching it grow into production. The planning involved. Laying out the interfaces, fitting the pieces together. Watching the logic of the whole system come alive.

I love the struggle to understand an existing system. I love the effort to understand a system well enough so that I can help fix it and improve it, to make it best suit its intended purpose.

I love analysis, as well as writing specifications and design documents. I believe good teamwork is driven by clear communication.

I love vigorous discussion and disagreement within a team, as long as we all aim to make a better system and better software and can still respect each other the next morning.

What I Do and What I Offer
For many years now, my platform of choice has been Java and related frameworks on the JVM.

I’ve worked in a variety of architectures, most recently fully distributed, many-tier, service-oriented systems. My focus nowadays is systems design on the one hand, and back-end service and infrastructure development on the other.

In the last couple of years I’ve designed and deployed systems on Amazon Web Services (AWS), over EC2 and with help of S3.  I was responsible for deployment, administration and monitoring of a small cluster on AWS for a while. Monitoring involved tools such as
Ganglia, Nagios and Logster, as well as home-grown REST interfaces.

I’m excited by the whole move to local, developer-friendly virtualization via tools like Vagrant, VirtualBox, Chef and Puppet. I’ve worked on small virtualization solutions to aid in development and testing for teams for several years now.

I’ve worked with a slew of Java libraries and frameworks over the years, including Google JEE, JMS, JPA, Guava, Metrics, Jackson, Spring, JPA,  Maven/Ant, Jini, various web stacks, etc. At different times I’ve used Groovy, PHP, a bit of Python, a bunch of various UNIX shell scripting languages. I’ve built a couple of small apps against Google App Engine. I’ve done modeling and programming for a variety of relational databases, including MySQL, PostgreSQL, Oracle, MS SQL Server, Sybase and a handful of “desktop” database systems.

I’ve worked alone, in small groups, and as a team lead.

Lately I’ve become interested in two newer programming languages, Scala and Clojure. I’m pretty excited by the new work going on in programming language design.

Work in and for the Community
I’ve been a core contributor since 2004 to the open source Flying Saucer XHTML/CSS library, a popular, pure-Java, LGPL-licensed library. My handle there is pdoubleya.

What I Want (when I work with you)
I want to be challenged, and feel excited and energized by the work I do.

I want to work with others inspired by all the awesome work going on in software development, even if we can’t immediately see how we will apply it to our own work.

I want to work with people that encourage learning and welcome enthusiasm.

I value continuous improvement in working relationships, technical skills and team spirit.

I want to work with a team small enough that all the critical stakeholders will fit around one table when decisions need to be made, where I know everybody’s name, and where I know everyone well enough that I am truly happy for them on their birthday.

I want the product we work on, our software, to be amazing, best-of-breed, and best in its class.

I want our software to be really good. And then I want us to make it great.