The project consists of a diverse group of volunteers who share common values regarding collaborative, community-based open source development.
In July 2007, there were more than 2800 subscribers to STRUTS-USER (including the digest version). In addition to the regular subscribers, an unknown number of developers read the lists through newsfeed mirrors and through several list archives.
According to recently released statistics, Apache Struts downloads range around 150,000 a month from the main site, plus an unknown number of downloads through the mirroring system and Maven repository.
In March 2007, Apache Struts downloads zoomed to to over 350,000 a month from the main site alone, in response to the releases of Struts 1.3.8 and Struts 2.0.8.
Committee members are listed in the chronological order, according to the date each person become a committer or committee member.
Other committers are listed in the chronological order, according to the date each person became a committer.
Emeritus volunteers are no longer active in the project. An emeritus volunteer can become active again upon request. ("Merit never expires.")
Project committers are the core Apache Struts community.
I've been involved with servlet and JSP technology since around 1998. It started out that I needed a way to build some web applications for several projects, and liked Java a lot better than the alternatives. I also liked the price tag of open source software, and started using Apache JServ -- later, getting involved in the project (like many people, I was whining about the twelve months it took to get from version 0.9 to version 1.0, and my son said "Dad, you know Java -- go help them finish it!" -- so I did :-).
For quite a while, I was participating a lot the JSP-INTEREST and SERVLET-INTEREST mailing lists , especially the topic of good architectures for web applications. I was disgusted with the hash that many beginners created when they used (or abused) scriptlets in JSP pages, and built (for my former employer) a pretty comprehensive framework that could considered ("Struts 0.01 without the custom tags"). It was proprietary code, but I was able to describe the concepts, and there started to a feeling the lists that this "Model 2" thing was pretty cool -- but there were no good examples to look at, so it was mostly hand waving types of discussions.
Over the same time period, I got involved as an individual contributor in the Java Community Process , and joined the expert group that defined the servlet 2.2 and JSP 1.1 specs. Sun was impressed enough to offer me a job as the technical lead the team within Sun (currently five other individuals) that works Tomcat -- the architecture for Catalina, which is the servlet container part of Tomcat 4.0, is also mine -- so I am in the really nice position of getting paid to work open source software :-). And, participate the expert groups for Servlet 2.3 and JSP 1.2. And, speak at various conferences, including ApacheCon and JavaOne. And, talk to groups within Sun about using Struts and JSP/servlet technology. And ... (there's some really interesting things being considered for the future).
The original design of what came to Struts has been in my head for a long time, since those interesting mailing list discussions, but the first version of the actual code was written my laptop a Memorial Day weekend vacation trip (end of May, 2000) to the Oregon coast -- in between watching the surf and having the house shaken by a windstorm at night. Since then, it has gathered attention and popularity as we approach our first official release, and it delights me to see my "baby" grow up so well :-). Of course, it is no longer just me -- there have been incredible numbers of good ideas from all over, and a peek at the TODO list for 1.1 says that even more good stuff is coming in the future.
One motivation factor was Jason Hunter's article about the Problems with JSP. Jason and I get along fine, even though we have different preferences about presentation technologies. Besides being the author of a very popular book about servlets, with a second edition coming soon, Jason is also the representative for the Apache Software Foundation the Executive Committee of the Java Community Process.
Personally, I live in Portland, Oregon (even though my team at Sun is mostly in Cupertino, CA -- staying here was part of the job deal :-). I like to support Oregon sports teams (Oregon State Beavers, Oregon Ducks, Portland Trailblazers) and work cool software.
I figured out I was getting pretty old when I realized that 2000 was the 25th year I had been paid to work in some aspect of software development :-). I've got a son who is a full-time software developer (primarily in PHP so far, but I'm going to corrupt him with Java eventually :-), and a daughter in college. I'll happily let the other committers speak for themselves.
I'm currently a student of computer science at Drexel University in Philadelphia, PA. I've been working at HP Middleware, formerly Bluestone Software for 3 years programming in Java and recently J2EE technologies. I'm a full time worker from September until April and a student and part time worker from April until August. In my spare time I've been known to run monkey-knife fights in a shady south philly warehouse. Err... I mean... nothing.
In the late 1990s, I was working with a local PBS station to improve their web presence. Like most stations, WXXI had an annual fundraising auction. Each year, we would do a little more for the auction. At first, we posted a few static pages about the "big ticket" items. The next year, we accepted "pre-bids" on the more expensive items, using a JavaScript application.
Then, late in 1999, the CEO decided we should do a lot more with the auction on the website. The next big step would be to accept bids for all items online. A colleague recommended FileMaker Pro, and we went to work automating the bid-taking process. For "Spring MarketPlace 2000", we entered the telephone bids into computers in the studio, and Internet users could enter their own bids directly.
The system worked, but we ran into some walls that were difficult to work around. We also wanted to expand the system to do scheduling and inventory as well as bid taking. So, I started looking for a new platform. I came close to selecting PHP, but there were some cool new Java products, like Resin and Jetty, coming out in 2000. I was impressed and decided to go with Java.
At the time, web application frameworks for Java were a new idea, and only a couple were available. I stumbled upon Struts at Jakarta, and started posting questions to the list. At first, the list traffic was so low, I wasn't sure if the group was still active. But, answers came, and so I kept on posting.
To help teach myself the framework, I started a "walking tour" of the infamous MailReader application. I posted the tour as I wrote it, and people kindly corrected my understanding of how things worked as I went.
In December 2000, Craig was asking for volunteers to help with the documentation. Mike Schachter and I raised our virtual hands, we became Struts committers 006 and 007.
By the Spring of 2001, WXXI's new auction application was ready to ship using the Struts 1.0 beta. We took over 50,000 bids on 5,000 items with nary a hitch. We added an inventory module for 2002, and the station continued to use the original software unchanged through 2005.
Since joining Struts in 2000, I've become a Member of the Apache Software Foundation and Struts Project Management Committee. My books include JUnit in Action, Struts in Action, and Professional JSP Site Design. I've consulted with Struts teams throughout the United States, including CitiGroup, Nationwide Insurance, and the Pepsi Bottling Group. These consultations developed into a open source Struts training course that I offer through Struts Mentor.
Currently, I'm working with the Oklahoma State Department of Environmental Services to improve their permitting system. We started the work in Java, but the enterprise migrated to ASP.NET in 2004. Rather than quit the team, I stuck it out. We still use .NET on the backend, but on the frontend, we now use the Yahoo! User Interface (YUI) library, with a little help from Yazaar and Anvil.
As a dreamer / researcher I have thought a lot about a framework like Struts. But, as a lazy developer I have first checked what already exists, and I have found Struts. Struts goals fulfilled nearly all I needed for my (now old) portal project, except the capability to reuse and assemble easily pieces of pages or components. So, I have proposed the Components framework. This framework can seen as a superset of the Templates tag library contributed by David Geary, and contains lot of interesting features.
From a professional point of view, I have a Ph.D. in computer science. I have worked for 3 years in the R&D department of a worldwide company developing Internet banking solutions. I am now a researcher at a university, and work European research projects. My main research interest is WWW, Distributed Systems and Object Oriented Design. When developing code, I always try to first propose reusable pieces of code.
Early in the year 2000, I was asked, by my employer at that time, to investigate the best way to develop a new web-based application for the administration and management of an existing product. After exploring a number of technologies, I settled on Java, along with servlets and JSP, as the way to go. Then I started looking for methodologies and "best practices", since others must surely have been down that path before me.
In addition to rummaging around on the web, I subscribed to the SERVLET-INTEREST and JSP-INTEREST mailing lists, along with several others, and monitored the discussions for a while. It was clear that others were seeking the same answers as I was, and it was also clear that many people were building their applications in truly horrible ways.
At some point -- I don't recall when, exactly -- the concept of "Model 1" versus "Model 2" applications came up, and there was a great deal of discussion around that. Model 2 seemed very much like A Good Thing to me, and I paid it close attention.
Then, in May of 2000, I saw a message from Craig McClanahan about a new framework called Struts that was designed to ease the process of building Model 2 applications, and provide solutions for some of the important issues at the same time. I hopped on over to the website and took a look around. This was exactly what I had been looking for.
My first postings to the Struts mailing list were, of course, questions to help me understand how to do things and why Struts is the way it is. Over time, I became more involved in both the user and developer communities, started submitting bug reports, patches and change requests, and eventually became a committer. Not long after that, I volunteered to take on the release process, and became the release manager for Struts 1.0.1 and beyond. Little did I know what I was letting myself in for!
A large majority of the people who contribute to Apache projects are volunteers who are not paid for their contributions. Like most of those volunteers, I also have a "day job" to put bread on the table. Currently, I am a Software Architect at EMC, where I work on the Documentum family of products, focussed on the WDK/WebTop platform. Working with, and on, Struts has provided me with an excellent perspective with which to do that!
As I worked web based projects I started looking for something that would really help save time during development. I ran across Struts in the Summer of 2000 and decided it was a good solution for web development. As I used Struts it really helped to remove a lot of the repetitive work, but validation still seemed very repetitive. I had an idea to create validation rules in an xml file and have them easily integrated with Struts. It started out simple and continued to develop over time. The validation project was eventually incorporated into Struts and the core was moved to Jakarta Commons. I'm happy to see Struts continue to grow and develop.
I currently am employed at Forbes.com. I occasionally get to do some internal projects using Struts. The last interesting project was a publishing system using Message Driven EJBs in JBoss and Struts was used to display the status of each publishing process.
I have gone from Unix -to- Windows -to- Unix based development about ever 6 years now. When moving to Windows I was amazed at how primitive the OS was compared to Unix. While developing for Win32 I had the pleasure of discovering Delphi and developed many GUI/databases, telephony, Internet enabled applications. I remain impressed with its design. Delphi, always enabled development of a simple elegant solution, much like the language itself. I was convinced after 10 years of development with C/C++ that it was a kinder gentler language.
Then in July 2000 I decided to move into Java, and Web development. This is after using the Internet since 1985 and occasionally teaching classes about it. I was hired as a consultant to take over a JSP based application. I realized it had been written with the equivalent of "goto's"(Model 1) and had to be redesigned. I searched for a better way to design the code and by late August I had found Struts. It is also a simple elegant solution.
To date I have mainly served to pitch in where needed. I continue to amazed at the Struts committers' generous contributions of time, insight, and good will. I feel fortunate to part of the Apache Struts group.
I, like many others, discovered Struts when contemplating writing my own MVC Java framework for the web. Struts had everything I needed and more so I scrapped plans for my own and joined the mailing lists. After playing with it for several months I started submitting documentation and a few source patches. I'm excited about helping Struts evolve and am continually amazed by the framework and the community surrounding it.
Struts was forced upon me when the E-Commerce sweat-shop...errr ...I mean "the company I worked for" decided to go from being a full fledged Microsoft Partner to a full J2EE shop. That was back in 2000. What little skills in Java I had were poor at best and I had never heard of Struts or even Tomcat for that matter.
I was fortunate to have several excellent mentors watching over my shoulder and helping our team cross the "great divide" between ASP/COM and Java/OOP. You could say our mentors knew a thing or two about Java, web development, and frameworks in general. Chuck Cavaness, Brian Keeton, and many more, I cannot thank you enough for all the leadership and guidance you have given me (and others). I truly believe that without your help, I would not be where I am today.
Where am I today? That depends on who you ask ;) I own my own business and I am currently working for a clientin the North Atlanta (GA) area. I created the Struts-Atlanta Users Group along with James Holmes several years ago with the primary goal of mentoring, educating, and assisting other developers.We are a large group (over 200 members) of Struts enthusiasts and we meet monthly to discuss just about anything, not just Struts.I don't want this to sound like a resume, but if you are looking for talent, I have helped several of our membersfind jobs in our area. Our list is a great resource for finding and nurturing local talent.
I call myself an "Open Source Evangelist" for a reason. I use the word "Evangelist" because that's what I feel I am doing. Just as Martin Luther was considered a rebel in his day, I too hope to make a change. I hope to change the way Software is developed in our world and how the lack of collaboration for the sake of "intellectual property" is inhibiting the growth of our economy. I believe businesses have a right to make a profit. I believe businesshave a right to make a profit on their "intellectual property", but for heaven's sake, some wheels don't needto be reinvented 50,000 times. Where I draw the line is when they leverage existing market share to strong-arm the competition literally out of business. Based on what I just wrote and depending on what you've been exposed to in your career, you might be thinking of one company right now. You are probably right in your assumption, but believe me, there are many companies that practice the same, or worsetechniques. To them, it's not about playing on a level playing field, it's about getting to the game early,buying 80% of the seats, and paying off the officials so there is little chance for any real competition. Ofcourse, for some companies, it doesn't hurt if you own the stadium and keep the other players locked out. "Well, they were invited to compete, but they didn't show up. "....sound familiar?
Enter....the Open Source movement. I would encourage you (if you haven't already) to pick up a copy of The Cathedral and the Bazaar .This is an excellent introduction to this whole "Open Source" thing and why it is so popular.
Compared to what I want to do in life, Struts is just a drop in the pond. However, that said, I am very happy and excited to be a part of this (and other) open source projects. Thanks for putting up with me :P
I discovered Struts somewhat by accident. In 2001 I began writing a book for SAMS on JSP web development (MySQL and JSP Web Development), and as part of it, I decided to write a chapter on Struts in the advanced section. In the process of learning enough about Struts to write about it, I realized that it could simplify some of the projects that I was working on for clients.
After a half a year of working with Struts, I was asked by SAMS to write another book, this time concentrating on Struts specifically. That book, co-authored with a former co-worker n amed Kevin Bedell, became Struts Kick Start.
In the process of writing that book, I began to realize that there were things I could do to contribute to Struts beyond writing about it. One thing in particular was to clean up and add some functionality to the Commons Validator project, which eventually led to me release-managing (with a lot of help!) the Commons Validator 1.0 release.
More generally, I've been a software developer for over 22 years, starting with work as a Research Specialist at the MIT AI Lab. I spent nearly a decade working in LISP, before moving on to C/Unix, a stint managing the Website for the Christian Science Monitor, and finally Java based e-Commerce development, which has kept me busy for the last five years.
In addition to the two books mentioned above, I also write for a number of publications, including WIRED and the aforementioned Christian Science Monitor. You can get a look at my portfolio here . I'm also working on a third book with a bunch of other folks for O'Reilly, which will cover Apache Axis. I also edit the OpenSolaris.org site for Sun.
My first experiences with Java made me wince. The language was young-ish still and growing by leaps and bounds all the time. To me, it seemed unintelligent to invest any significant intellectual resources in learning it because I perceived it as such a "moving target". Of course, that has changed.
I'd been looking for a way to really do heavy-duty processing of web requests that was higher-level than CGI. In particular, I was on a quest to find somethiong that did not involve using Microsoft (tm) technologies. A friend of mine started chatting up the idea of Java servlets and JSP pages. I didn't really like the idea of using Java because of my previously formed opinion, but, having a great deal of respect for my friend's opinion, I set out on an exursion to delve into the world of Java-driven dynamic web page generation.
The language (and myself) had matured considerably by this time, and I found my previous inhibitions were no longer well founded. However, as much as I liked the technology, I was dissatisfied. There just had to be a better way! I loved the concept of having a controller servlet, but, lacking experience in building externally-configurable Java "thingies", I was hard-coding a lot, and, after a point, that started to really rub me wrong. At this point, I started buying books and really "studying" the technology more seriously.
I honestly don't recall where I stumbled onto Struts, but I do recall having toyed with a number of different frameworks - none of which I really recall now. I quickly fell in love with Struts -- partially because it was an Apache project, and partially because it was evident to me that the project had a really great user-base.
As time rocked along, I found myself becoming more deeply involved in the project. I studied the source and learned a great deal about architecting configurable Java "thingies", and learned a fantastic amount about actually using the framework.
In time, I got comfortable enough with how Struts was structured that I began submitting patches - mostly documentation, which Ted Husted "massaged" and applied. I enjoyed the feeling of gratification I got from helping to make Struts better, even if minorly.
My last patch submitted as a non-committer was for ActionServlet. This was back when Struts 1.1 was working toward GA release. It was the first patch I hadn't had applied within a few days of submission and I grew impatient. Modules did not work properly without it and they did with it! "How can they not apply that patch when it's so critical to Struts?" I thought to myself.
Well, to keep this book from becoming a novel, I started a campaign to have the patch applied which resulted in my gaining committer status and applying the patch myself! I should note that Steve Ditlinger and myself collaborated on the patch. I submitted a version, he made some suggestions and submitted an altered patch, and then we, collectively, decided to make a couple of other modifications, which I applied just before committing the patch.
I've worked as a developer since 1988 using various technologies/platforms. In the late nineties I kept meaning to learn java but never found the time until 2000. I bought a couple of books (Java in 30 Days and a Certification Study Guide), passed the Sun certification exam and got my first java job.
Early in 2001 I was investigating writing the first web app for the company I was working for and came across Struts - just before the 1.0 beta was released. After a while I came off the user list because of the volume of traffic and just monitored the developers list. Late in 2003 I migrated to Struts 1.1, re-joined the user list and started submitting a few patches. Was invited to become a Struts Committer in May 2004 and PMC member in September 2004.
I started working with Java early in 2000. We designed and implemented a servlet-based application that to this day gives me and a fellow designer the urge to do a total rewrite. On my next assignment, somebody introduced me to a series of patterns useful for web applications. We built a framework using these patterns and it worked out well for us.
When I tried to bring this framework into the next project, somebody suggested using Struts instead. The two frameworks resembled each other so closely that we had no trouble at all switching. One of the things missing in Struts was an easy way to do redirects with parameters, so we wrote our own class for that. The same guy who suggested Struts suggested I contribute it to Struts. A few months after that, I joined the mailing lists and sought how to contribute.
I found myself enjoying answering questions on the user list. After some time, I was participating on the dev list as well. Soon I was able to contribute a few patches and even came up with my own Struts extension. In February of 2005, I accepted an invitation to be a committer, and in July 2005, accepted an invitation to join the PMC.
In late 2001, I was asked to put information from a database on the web, including a few forms to allow updates. By that time I had been working with Java for a couple of years in class projects, but "Servlet" was still a foreign word. With no real deadline and complete freedom to pick anything I wanted, I spent hours online searching and participating in different forums and lists. And any time I asked for advice using 'Java' and 'HTML forms' in the same sentence, I got a resounding chorus of "Struts!" in reply.
That first webapp went through quite a few iterations as I tried and discarded various things. But I kept coming back to Struts, and eventually things fell into place-- thanks mostly to the helpful community on the struts-user list. As I gained more experience, asking questions on the user list naturally transformed into answering them, which I've been doing ever since. I accepted an invitation to become a Struts Committer in June, 2005, and was invited to join the PMC in December, 2005.
I landed an internship in college working with the big blue iron where I dappled in the craft of VSE COBOL and JCL. Through the 90's, I worked my way into several client-server technologies (Visual Basic, PowerBuilder and Delphi) and finally thought that I had learned the last programming language I would ever need to know, Forté Transactional Object Oriented language (TOOL).
I rode the Forté wave for several years and suddenly found myself looking for work and feeling like a real "tool". An empty, dust free shelf was just the right size for the proprietary distributed object solution once called Forté.
In 2002, is when I found Java. While working a VB assignment, I decided the only hope I had of getting a competitive edge was to become a Sun Certified Java Programmer. With that card, I found an opportunity to become a Struts developer and began lurking about the Struts mailing lists in 2003.
In late 2004, I started hearing a buzz about a new Struts subproject and became very interested in the ideas. I also began acquiring a stack of JSF books matching my Struts collection. My experience with Struts, Tiles and something that Colorado Department of State calls Rustts, gave me the idea that has become known as the Shale "Clay" plug-in. I was invited to become a Struts Committer in July 2005.
During a job interview in 2002 I was asked if I had any experience with Struts. I told the interviewer that I had never heard of it. That night when I got home I set out to figure out what Struts was all about. It turns out I already knew it (sort of.) I had been spending a lot of time researching design patterns and I was working with my own custom framework that combined several patterns that I thought worked well together.
I then realized that I wasn't the only one trying to improve the way in which complex web applications were being designed. Of course, as with all open source projects, the result of several minds working together is superior to that of a single mind working alone. I quickly abandoned my custom framework in favor of Struts. A few years later I was the one interviewing people asking them if they knew Struts!
Struts was also the beginning of my serious interest in open source. Like many other committers I started out as a user, then became a participant on the mailing lists, then started reporting bugs, then started patching bugs and finally started proposing and supplying new features. The Struts community was an invaluable resource for me, especially when it came to getting advice on tricky design issues.
In October 2005 I was invited to become a Struts Committer. I have also been involved in a few other open source projects including commons-lang and commons-chain. I am also a PMC member of the MyFaces project where I spend most of my free time these days. My current interest in Struts lies with the Shale subproject.
In early 2000 I was working on a client-server application that was written in Visual Basic and C++. The decision was made to rebuild the application as a web-based app using Java and JSP. We bought into the MVC architecture and implemented it using Sun's Blueprints with a JSP front controller. Then one of our architects came back from JavaOne raving about Struts. From that point on there was no turning back for me.
Over the years my involvement has come in spurts. If I was working on a web-based project it was a given that this project would involve Struts. Finally, our organization was bitten by the SOA bug so it was "webapp no more" for a while. But I never bothered to unsubscribe from the Struts lists and always kept one ear tuned in to the chatter in my inbox.
Finally I decided to plant myself back in the web tier with or without my employer's support and changed jobs. Very soon afterwards, in October 2005, I was invited to become a Struts committer. This comes at a time when Tiles, my favorite part of Struts, is seeing a lot of activity. I hope to play a large part in digging the Standalone version out of the sandbox. I am also very interested in JSF, Shale, content management systems, and portals.
The truth is I still haven't decided what I want to be when I grow up. In addition to my software pursuits I am also a family man and a musician . If anyone knows of any good methods of cloning yourself, please let me know! I'm happy to be a part of this community and the Apache Way.
I've been lurking on the fringes of the Struts project for years, on and off, but it wasn't until early 2005 that I became an active participant. I founded Zotech Software and selected Struts as the framework on which we would build our first product. I thought long and hard about how to give back to the Open Source community from whose work we would derive so much value, and decided that one important contribution I could make would be to answer questions on the Struts user list, among others. Over time, I found myself wanting to add bits and pieces to Struts itself, and began submitting patches.
In October 2005 I was invited to become a committer. My main interests lie with the core Struts framework and supporting sub-projects, though I'm keeping an eye on Ti and some of the other experimental work that's going on.
In 2001 I joined a team that had been tasked with building a front end to a lottery system using Java technology. The system had to have Web interface (HTML), cellular phone interface (WML and later SMS) as well as audio interface for regular telephone (VoiceXML). Someone suggested to use Struts. I did not know about Struts at that time, but the framework quickly proved to be superior to simple JSP-based Model1 approach. The team effort resulted in a multi-layer application that is still competitive and maintainable today.
Struts proved its value, but some common practices seemed inconvenient or plain wrong to me. I started to read what other people say. I found great value in Ted Husted's tips, as well as in the book by Chuck Cavaness. After a while I devised some practices of my own (or just rediscovered something that others has been doing for long time) and since then I have been trying to improve Struts in different ways.
I started to think about page flows and Back button support back in 2002, this resulted in a simple but robust wizard engine. I also wanted to make development with Struts more object-oriented. I found DispatchAction useful in this regards but with quirks of its own. So I created my own dispatch action that allowed me to process both input and render phases of a web resource. Promoting this approach is a job of its own.
My most recent area of interest is web components and Ajax. Creating independent components using Ajax is actually simpler than using less fancy patterns like redirect-after-post. In attempt to combine Ajax and non-Ajax components into one package I came up with idea of dual-mode components that work either with or without Javascript.
Struts has been good to me. I want Struts to keep being improved and to remain the Java web framework of choice.
My first encounter with Struts was at the university in June 2003, when my teacher gave me an assignment in which I had to convert a sample web application using Struts and Tiles. After that the same teacher gave me my thesis assignment, in which I had to develop the missing part of a web application rapid prototyping tool based on the same technologies.
After my graduation, I worked for a year at the same university and my job was to enhance that tool to support multi-user and multi-device applications, with different modelling techniques, so my experience with Struts and Tiles grew more and more.
My job at the university finished and I went into the "real world", but I kept my subscription in both users and developers Struts mailing lists. One day I noticed that Greg Reddin was working on a stand-alone version of Tiles, so I submitted some patches for bugs and enhancements in Tiles. After a while, in June 2006, I've been invited by Greg Reddin himself to become a committer: you can't imagine my joy!
I am currently working on the integration between Struts 1 and Tiles 2. My other Java EE interests are in the view layer (I am a developer and administrator of Dimensions) and in synchronization between client's browser and application server: the latter led me to create Scopes.
When I graduated from school in 1999 I headed to Flower Mound, Texas (a Dallas Suberb) where my wife Teresa had grown up. I was fortunate to find my first web development contract and began my career on a portal development team providing user interface implementation support.
Since that first job, I have worked for a few small consulting companies providing J2EE design and development consulting to mid sized and Fortune 500 clients. Many of the projects I've been involved in over the yeras have leveraged struts and tiles. I also have used other web frameworks such as JSF and Tapestry.
In the summer of 2006 I left full time employment in order to begin Three Pillar Software, Inc. This move was driven by my desire to spend more time doing the things I love (developing open source software, agile coaching, spending time with my wife and kids, etc. . .) and less time in corporate meetings and sales calls. My first project as an independent consultant proved to provide just that, as I've had time to contribute to the development of both Struts2 and Tiles2. I was invited to become a struts committer in October of 2006.
I am also a committer for Apache Pluto, a member of the JSR-286 Expert Group, an author of various online articles and have been known to speak at conferences such as ApacheCon US 2005, Agile2006, and SD Best Practices 2006. In my spare time, I enjoy spending time with my wife Teresa and our 4 kids (under 6!), Sarah, Joseph, Rebekah, and Catherine. We now live in Northern Virginia.