Matt RaibleMatt Raible is a Web Architecture Consultant specializing in open source frameworks.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

UberConf 2015: My Presentations on Apache Camel and Java Webapp Security

Last week I had the pleasure of speaking at UberConf 2015. My first talk was on Developing, Testing and Scaling with Apache Camel. This presentation contained an intro to Apache Camel and a recap of my experience using it at a client last year. You can click through the presentation below, download it from my presentations page, or view it on SlideShare.

My second presentation was about implementing Java Web Application Security with Java EE, Spring Security and Apache Shiro. I updated this presentation to use Java EE 7 and Jersey, as well as Spring Boot. I used Spring Boot to manage dependencies in all three projects, then showed the slick out-of-the-box security Spring Boot has (when you include the Spring Security on the classpath). For Apache Shiro, I configured its filter and required dependencies using Spring's JavaConfig. You can click through my security presentation below, download it from my presentations page, or view it on SlideShare.

One thing that didn't make it into the presentation was the super-helpful pull request from Rob Winch, Spring Security Lead. He showed me how you can use basic and form-based authentication in the same app, as well how to write tests with MockMvc and Spring Security's Testing support.

The next time I do this presentation (at the Rich Web Experience), I'd like to see if it's possible to use all-Java to configure the Java EE 7 example. I used web.xml in this example and the Servlet 3.0 Security Annotations might offer enough to get rid of it.

All the demos I did during the security presentation can be seen in my java-webapp-security-examples project on GitHub. There's branches for where I started (javaee-start, springsecurity-start and apacheshiro-start) as well as "complete" branches for where I finished. The complete examples should also be in-sync with the master branch.

If you have any questions about either presentation, please let me know.

Posted in Java at Jul 27 2015, 08:08:48 AM MDT Add a Comment

Grails + Angular vs. JHipster

I recently received an email from a long time follower of my comparing web frameworks research and presentations. He asked some interesting questions:

I am starting on a new venture to build a direct to consumer web application. I am planning to leverage Cloud services to build my CI/CD pipeline. I am very strong with Java Backend/middleware and learning Javascript Front-end frameworks. I love Spring and SOFEA. Having said that, I am wondering if I should use Grails + Angular or JHipster? My primary concern with JHipster is there is hardly any ‘community', there is Julien and whatever he says/thinks goes! Can you give me some pointers?

I imagine there's other JVM developers with similar questions, so I figured I'd publish my response for all to see.

JHipster may have a smaller community than Grails, but remember that it's built on Spring Boot and AngularJS. Both have huge communities. In fact, Grails 3 is built on Spring Boot, just like JHipster.

Even though JHipster generates your code in Java, there's nothing preventing you from writing your code in Groovy or Scala. I dig JHipster, but I've also worked with AngularJS and Spring Boot for a couple years. The fact that someone put these technologies together and makes it easy to work with them is awesome.

I like JHipster so much, I decided to write a book on it. I hope to finish it in the next couple months and have it published in the fall. It'll be a free download from InfoQ. Learn more at http://www.jhipster-book.com.

Yes, I'm probably a bit biased since I'm writing a JHipster book. However, it's been easy for me to introduce and use Spring Boot at my last few clients. They were already using Spring, so the transition to using a Spring simplifier was a no-brainer. I haven't had as much luck getting clients to adopt Grails, even though I've suggested it. That could change now that it's based on Spring Boot.

What's your experience? Would you recommend Grails + Angular over JHipster? If so, why?

Posted in Java at Jul 14 2015, 08:02:01 AM MDT 1 Comment

Life Update: The Bus Project, New Gigs, New House and More

I've written a few Life Update blog posts in the past and it seems appropriate to write another one today. A lot has happened since I wrote about our trip to Syncro Solstice 2015 in Moab. First of all, let's talk about the most exciting one: The Bus Project.

The Bus Project
The last time I wrote about The Bus, it'd just arrived at Sewfine to have the interior installed. From the get-go, I knew this was going to be a good experience. I've been talking with the owners (Carol and Mike) for years about the project. Seeing the knowledge they had about VWs and knowing it was in good hands brought a sense of calmness over me. They estimated it'd take 4-8 weeks to finish and it ended up taking 12. I'm proud to say it left Sewfine yesterday with a completed interior.

Love the color scheme with chrome accents The cockpit

In mid-May, we took The Bus to its first show: VWs on the Green in Littleton. Sewfine had completed the driver's seat and ragtop. I got license plates and insurance and was planning on driving it to the show. However, Mike pointed out that the engine compartment wasn't sealed and the engine might get really hot on the 10-mile drive (because it's an air-cooled engine). I agreed to trailer it instead and rented a car hauler from U-Haul.

[Read More]

Posted in The Bus at Jul 08 2015, 10:14:56 PM MDT 1 Comment

The Last Day of School

Today marks the last day of the school year for Abbie and Jack. I wrote about their first day of school back in August. It's Jack's last day in 4th grade and Abbie's last day in 6th grade. I snapped a picture to capture the memory as they were rushing off this morning.

The Last Day of School 2015

For summer activities, Abbie is still horseback riding every week. Jack is playing flag football and his team has been dominating. Both just joined a swim team. They competed in their first swim meet last weekend and did great. This is the first summer we didn't sign them up for a bunch of summer camps. We figured their daily 8am swim practice would be enough. I'd love to do a summer Devoxx4Kids class, but I'm having some difficulty finding volunteer instructors.

For summer vacations, we've only planned one: a 4-day road trip through Wyoming, Jackson Hole and Yellowstone National Park. From there, we'll head to my parent's house for a fun-filled 4th of July. Our current plan is to drive the Syncro and The Bus. Yeah, it's a long shot that The Bus will be done after all these years, but one can dream, right? ;)

Posted in General at Jun 02 2015, 08:31:31 AM MDT Add a Comment

Syncro Solstice 2015

Our Syncro has been running in tip-top shape ever since we got a new Subaru H6 engine last August. Since then, we've driven it 9000 miles, most of them on trips during the ski season. To begin the camping season this year, we traveled to Moab, Utah for the annual Syncro Solstice gathering. We attended our first Syncro Solstice last year and it's been on our calendar ever since. This year, Trish and Abbie opted out, so it was a boys trip for Jack and I.

Locked and Loaded My co-pilot and best son

We left Denver on the Thursday morning before Mother's Day weekend. We made it all the way to Grand Junction (about 4 hours) before we stopped for gas. That's where our adventures began.

[Read More]

Posted in General at May 21 2015, 09:35:38 AM MDT 3 Comments

Farewell to the 2014-2015 Ski Season

My family and I had a terrific ski season this year. Last year was an epic year with 11 resorts and a heli-skiing trip to British Columbia. This year, we skied Winter Park/Mary Jane, Steamboat, Copper, Crested Butte and Telluride. I logged 42 days of skiing, my most ever.

My season started on November 19th at Winter Park. Trish and I skied it again together a few days later. Opening Day at Mary Jane on November 28th was beautiful.

Over Christmas and New Years, we stayed at our Ski Shack near Winter Park and got a number of days in. My buddy Joe Lamont and I skied together on the coldest day, when it was -6°F at the base of Mary Jane. I was pumped when got to ski with Mattias Karlsson and his family just after New Years.

[Read More]

Posted in General at May 12 2015, 08:19:03 AM MDT Add a Comment

The Bus Arrives at Sewfine

11 years ago yesterday, I bought a '66 21-Window VW Bus using "buy it now" on eBay. 11 years later, it was delivered to Sewfine Interior Products to get the interior installed. When I originally spoke with them last year, they estimated it'd only take two weeks to finish. After seeing how much work needed to be done, they changed that estimate to 4-8 weeks.

After Sewfine, it still needs another week at the body shop to clean it up and install the rear deck lid. After that, I'll probably drive it for a few weeks before taking it to the stereo shop for the sound system.

While finalizing my interior order yesterday, I got to start it for the first time. It sounded like a muscle car. So fricken' sweet! :)

In the first photo below, you'll notice there's two yellow busses. Sewfine had a '62 (the far one) they were just finishing up. It was awesome to see the two together. Sewfine published a whole bunch of pictures of the '62 on Facebook.

Twins! Safari Windows

The paint looks soooo good! I like its smile

My favorite bus... The '62 is a pale yellow in comparison

Air Ride Suspension Power Steering wheel might need to be replaced

If you'd like to learn more about the VW Bus and the Deluxe Samba, see 21 Window & 23 Window Volkswagen Buses.

Posted in The Bus at Apr 11 2015, 11:09:24 AM MDT 2 Comments

Getting Hip with JHipster at Denver's Java User Group

Last night, I had the pleasure of speaking at Denver's Java User Group Meetup about JHipster. I've been a big fan of JHipster ever since I started using it last fall. I developed a quick prototype for a client and wrote about solving some issues I had with it on OS X. I like the project because it encapsulates the primary open source tools I've been using for the last couple of years: Spring Boot, AngularJS and Bootstrap. I also wrote about its 2.0 release on InfoQ in January.

My Hipster Getup To add some humor to my talk, I showed up as a well-dressed Java Developer. Like a mature gentleman might do, I started the evening with a glass of scotch (Glenlivet 12). Throughout the talk I became more hip and adjusted my attire, and beverage, accordingly. As you might expect, my demos had failures. The initial project creation stalled during Bower's download all JavaScript dependencies. Luckily, I had a backup and was able to proceed. Towards the end, when I tried to deploy to Heroku, I was presented with a lovely message that "Heroku toolbelt updating, please try again later". I guess auto-updating has its downsides.

After finishing the demo, I cracked open a cold PBR to ease my frustration.

I did two live coding sessions during this presentation; standing on the shoulders of giants to do so. I modeled Josh Long's Getting Started with Spring Boot to create a quick introduction to Spring Boot. IntelliJ IDEA 14.1 has a nice way to create Spring Boot projects, so that came in handy. For the JHipster portion, I created a blogging app and used relationships and business logic similar to what Julien Dubois did in his JHipster for Spring Boot Webinar. Watching Josh and Julien's demos will give you a similar experience to what DJUG attendees experienced last night, without the download/deployment failures.

You can click through my presentation below, download it from my presentations page, or view it on SlideShare.

You might notice my announcement on slide #32 that I've signed up to write a book on JHipster.

The JHipster Mini-Book

I haven't started writing the book yet, but I have been talking with InfoQ and other folks about it for several months. I plan to use Asciidoctor and Gradle as my authoring tools. If you have experience writing a book with these tools, I'd love to hear about it. If you've developed an application with JHipster and have some experience in the trenches, I'd love to hear your stories too.

As I told DJUG last night, I plan to be done with the book in a few months. However, if you've been a reader of this blog, you'll know I've been planning to be done with my '66 VW Bus in just a few more months for quite some time, so that phrase has an interesting meaning for me. ;)

Posted in Java at Apr 09 2015, 08:31:54 AM MDT 4 Comments

Skiing Adventures with our Syncro in the Rocky Mountains

Our Syncro Westy was returned to us in early February, after being in the shop since just before Christmas. It was in the shop for body work caused by an accident that was my fault. Luckily, no one was hurt and the damage was minor. The morning after we got it back, my awesome friend Ryan Moore and I packed it up and headed on a hut trip near Aspen, Colorado.

Packed and ready for Crested Butte. The next weekend was one of the most popular skiing holidays: Presidents' Day Weekend. We packed up the kids and drove our Ski Bus to Crested Butte. I took my guitar and Trish took her banjo (we both started taking weekly lessons at the beginning of the year). Our drive was smooth and our weekend was fabulous.

Saturday was Valentine's Day and I surprised Trish with a photo shoot of our family. I'd secretly hired Alison White to take our pictures and we met with her to talk about what we wanted on Saturday morning. After a fun consultation, we ventured to the mountain, picking up James Ward along the way. We skied a few runs together, stopped at the Ice Bar for a car bomb, then whisked off to our photo shoot.

Jack, James, Abbie and myself skiing in heaven! Yay! Car bombs at Ice bar

We are extremely pleased with the results. Thanks Alison!

Abbie Jack

Trish, You're Amazing!

[Read More]

Posted in General at Mar 13 2015, 06:01:09 AM MDT Add a Comment

How To Setup Your Own Software Development Company, 6 Years Later

Just over six years ago, I wrote a popular post titled How To Setup Your Own Software Development Company. I'd just left LinkedIn a few months earlier and was enjoying consulting life again, working with a group of friends at Evite. In the article, I wrote about how I liked consulting because it forces you to keep your skills up-to-date and it pays a lot better. I also talked about the type of legal entity you should form (I have an S Corp), what business insurance you should buy, what I had for health insurance and how I automated payroll and tax payments.

I recently received an email from a reader, asking me if I had any updated thoughts.

It's been nearly six years since you wrote the article about starting your own business ... and thanks, by the way.

I am starting my venture into independent contract work as a software engineer (Java technology) in California and most likely will setup an S corp entity.

Seeing that you wrote this six years ago and things have considerably changed in the U.S. (economy, health care, etc.), I was wondering if you had some updated thoughts to share, perhaps some learned lessons even.

And also, I have questions about business insurance: what type of insurance should I opt for? Is there really an umbrella insurance out there? Or does each (or many) clients out there dictate the insurance you need?

Yes, a lot has changed in the last six years. The economy has improved and health care costs have risen. Through this time, I've been able to continue to operate as an independent software developer and keep the contracts flowing. Personally, the biggest changes in my life have been outside of work. I met an exceptional woman, traveled to conferences all around the world with her, got married, traveled some more, then bought a VW Westfalia so we could have lots of fun traveling in our own backyard. All the while, I've worked for some great clients. I built a team of hot shots at Time Warner Cable (many of them still work there), I skied the awesome powder of Utah while working at Overstock and I enjoyed a long-term contract at Oracle. After Oracle, I got into the healthcare industry and I've been working in it ever since.

In fact, I just finished working for a healthcare company last week and I'm on the hunt for my next gig in April. Check out my LinkedIn profile if you'd like to see my résumé.

I've learned quite a few lessons over the last several years. As an independent developer, the biggest thing I've learned is marketing is key. I've always known this, but I've been reminded of its importance a few times. When I worked at Taleo (after Overstock), I was on a 3-month contract that turned into a 9-month contract that got a 1-year extension when Oracle bought them. The work was challenging, but the application was outdated. Getting them to adopt new technologies like Bootstrap and AngularJS was difficult. When Oracle took over, they offered me a 1-year contract at a great rate. I accepted, never thinking it would be difficult to get paid from someone like Oracle. It took them over three months to pay my first invoice and it took me another three months to get payments flowing regularly. I felt like I was trapped. I felt like I could quit, but that wouldn't speed up the process of getting my invoices paid. From this experience, I'm hesitant to start with any contract that's longer than three months.

During my time at Oracle, I didn't blog as much as I had previously (because the day-to-day work wasn't that exciting), but I did still speak at conferences. Last year, I took the year off from speaking at conferences altogether. Speaking is an excellent marketing tool. Because of my lack of speaking, I saw a downturn in contract opportunities in Q4 last year.

As far as health insurance is concerned, I continued to have a disaster prevention plan, with a $5K per year deductible. I paid around $300/month for this, and rarely used it. By riding my bike to my office in downtown Denver, and skiing a bunch in the winter, I felt like I was pretty healthy. After I stopped eating sugar last fall, I became much healthier. So much healthier that I've stopped taking high blood pressure medication. Today, I don't pay for health insurance. Trish went back to IT Security Sales in November and she was able to get me on her company's plan for $100 cheaper than what I was paying. I didn't have dental insurance for the last five years and I did have to shell out $5K for a tooth implant at one point.

For business insurance, I have the Business Owner's Policy from The Hartford. I pay around $600/year and I've gotten that back when I've had laptops stolen or accidentally killed my iPhone. I've got automated backups going all the time, so I haven't lost any data in several years. This insurance policy and its liability coverage has been "good enough" for all my clients, including the big ones.

I think the biggest lesson I've learned in the last several years is that the best way to be rich is to be rich in time. I've always dreamed of making $500/hour and working 20 hours per week. While $500/hour sounds crazy, you know there's consultants out there that are making that kinda cash. They're probably not in software, maybe they're political consultants, or former professional athletes, but those consulting rates do exist. In software, there's certainly companies that bill those kinda rates. My rates for the last several years haven't been that good, but they've been pretty awesome.

Earlier this year, I had the opportunity to work 20 hours per week instead of 40. It was one of the greatest work-life experiences I've had to date. I was still able to pay all my bills, and I had time during each-and-every-day to do something fun. When working 40 hours per week, exercising and cooking dinner were somewhat of a chore. When I flipped to working less, work became the chore and exercise and cooking became the fun parts of my day. I read somewhere recently that if Americans valued health over wealth, we'd be a lot better off. I felt like I did this when working less and that I was rich in time.

Related to feeling better over making more, I've started to target employment opportunities that offer a good team to work with. For the last year, most of my contracts have been with remote clients, where they haven't required me to travel onsite. While this sounds great in theory, I do miss the comradery that exists when working with a team. Working with someone over a Skype/HipChat call is nothing like sitting next to each other and cracking jokes while writing code. Don't get me wrong, I love remote work, but I do think it's important to be onsite and collaborating face-to-face at least once per month.

To those individuals looking to start their own Solopreneurship, I hope this advice helps. It's been a great experience for me.

Posted in Java at Mar 02 2015, 09:26:01 AM MST 5 Comments