Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.


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.

Want a kick-ass Java/UI Engineering Job in Mountain View?

The last month working at LinkedIn has been an absolute blast. I'm new to the whole "treating developers like royalty" thing, so that's taken a while to get used to. It's definitely nice, especially when the company gives you ownership of the things you're working on. Sure, there's schedules and priorities, but it seems like each and every engineer has control of their own destiny. As a consultant, I've been very impressed with the way I've been embraced and folded into the team like a regular employee. There's lots of team lunches, a tech meetup every now and then, and I even played hoops with a bunch of guys last night. This is probably the coolest company I've ever worked for.

Wanna have fun like I am? LinkedIn is looking to hire quite aggressively over the next several months. There's new faces almost every week and hopefully I can "hook you up" to be a part of the festivities. Below is a position that we're currently hiring for in the UI Engineering team. Working remotely is not an option at this time, you need to live in (or relocate to) the Bay Area.

LinkedIn is an online network of more than 11 million experienced professionals from around the world, representing 150 industries. We are four years old, profitable and one of the fastest growing pre-IPO Web 2.0 companies in Silicon Valley.

LinkedIn is developing the UI infrastructure for our next generation applications. This is a strategic initiative that will enable LinkedIn to develop highly interactive and intuitive applications leveraging the latest Web UI technologies. We are looking for a world-class software engineer to work on this critical component of our infrastructure, in partnership with one or more technical leads, the engineering and the product team.

    • 3+ years of overall professional work experience
    • In depth and hands on knowledge of Java, the J2EE platform and experience working with relevant tools (IDEs, ant, junit, etc.)
    • A passion for UI frameworks: JSF and Facelets experience preferable.
    • In depth knowledge of JSP, JSTL.
    • Experience with Ajax.
    • Experience with portal technologies.
    • I18n experience a plus.
    • Solid understanding of design, coding and testing patterns
    • Ability to work in a fast paced, test-driven collaborative and iterative programming environment
    • Ability to effectively interact with product managers and other organizational units such as QA and CS
    • Excellent communication skills
    • B.S./M.S in Computer Science or equivalent experience.

I don't know if JSF and Facelets experience is still a requirement (now that I'm here ;-)), but a passion for UI frameworks and web development is. You should know at least two leading Java frameworks and have a lot of experiencing with testing web applications out-of-container. We're not looking for Java Developers turned web developers, we're more looking for Web Developers that know Java.

If this sounds interesting to you, shoot me your resume in an e-mail. Don't forget to include a link to your LinkedIn Profile.

Posted in Java at Aug 17 2007, 10:24:00 AM MDT 20 Comments

Why are you so bitter?

Posted by Jacob Hookom on August 17, 2007 at 12:31 PM MDT #

So what are you using instead of JSF and facelets?

Posted by SM on August 17, 2007 at 02:02 PM MDT #

I'm not bitter, I just don't think JSF and Facelets is the right tool for a LinkedIn-style application, do you? It's stateless, and one of the highest trafficked sites on the web.

I've had a hard time finding good examples of high-traffic sites that use Java web frameworks in general. If you know of some, I'd love to hear about them, including their page views per hour/day/etc.

We're using Struts 2 in our prototyping phase - mainly because I think request-based frameworks are better suited for a LinkedIn-style site. We're not convinced it'll be the recommended solution, but it wins over Stripes because no one has heard of Stripes here (which makes it a tough sell for me) and we're not using Spring MVC because we can't call methods with parameters, which is important to the team here. There is a strong desire to use JSP rather than FreeMarker or Velocity.

I'm open to hear opinions on why X framework is a better solution. However, please keep in mind that we're only concerned with the front-end, the backend doesn't need to be touched.

Posted by Matt Raible on August 17, 2007 at 02:19 PM MDT #

I should mention that another reason we like Struts 2 is because it supports JSF and Facelets, which are definitely suitable for modules/pages that want richer functionality and receive less traffic. I'm not sure if the integration is good enough for production, but it seems to work. Spring MVC has a similar feature according to JSF-Spring's Documentation. Unfortunately, there's not much documentation, so I don't know how well supported this library is.

Posted by Matt Raible on August 17, 2007 at 02:24 PM MDT #

Another big problem with JSF: it's difficult to do progressive enhancement with Ajax (Hijax). One of the best JSF component libraries has an all-or-nothing approach when it comes to Ajax. You actually have to have separate pages for JavaScript and non-JavaScript. That's not how web developers here like to code.

Posted by Matt Raible on August 17, 2007 at 02:34 PM MDT #

What about using Tap4.1 or Tap5.x - if they released a beta - been while not checked with Tapestry development !!

Posted by Mittal on August 17, 2007 at 02:37 PM MDT #

i was half joking-- there's always a matter of best choice based on the target audience/deployment for the app. And send my apologies for wanting to go with JSP ;-)

Posted by Jacob Hookom on August 17, 2007 at 02:53 PM MDT #

I'm fallen in love with Tapestry 5. But it's not yet released. Still a lot of people seem to use it to develop production code, as it is quite stable. We develop our project management tool Savila with it and have not had any issues with it since March.

Posted by Stephan Schwab on August 17, 2007 at 06:33 PM MDT #

Mittal - we considered Tapestry. However, it's difficult to recommend/choose it when 5.x is still a preview release and there's no upgrade path from 4.x. Also, I believe TSS and (its high-traffic reference sites) were written with Tapestry 3.x. It has no recent examples of extreme scalability (that I know of).

Posted by Matt Raible on August 18, 2007 at 08:39 AM MDT #

"we're not using Spring MVC because we can't call methods with parameters"

I do not quite understand this? What do you mean that you can't call methods with parameters?

Posted by Joe S. on August 19, 2007 at 02:38 PM MDT #

Joe - I mean to say you can't pass arguments to methods. This is because you can only use JSP + JSTL with Spring MVC, rather than OGNL (or another expression language that allows this). We're not convinced we need this feature, but since their current expression language allows this - it will make migration easier.

Posted by Matt Raible on August 19, 2007 at 09:21 PM MDT #

I really like the current Linked In web UI. The look and feel and usability is really nice. Please don't spoil it :)

What are they presently using? Web technologies / backend? And I'm curious why and what are they looking to change by introducing the use of Struts 2 or whatever.

Posted by Sanjiv Jivan on August 20, 2007 at 03:30 PM MDT #

I have to agree with Sanjiv linkedIn's current look is great whatever they used the last time was pretty good. if it ain't broke...dont go JS...F it up.

Posted by Sm on August 21, 2007 at 08:24 AM MDT #

Sanjiv - we don't plan on spoiling it. The current web UI was created by a team of awesome web developers and they're not going to let us change anything to do with look and feel. The entire stack is proprietary, written from the ground up based on Java - starting around 2000 (possibly earlier). They're looking to move to a different web framework because their developers find their current one cumbersome to work with. However, it's so highly customized for their needs, it's probably going to be very difficult to replace.

Posted by Matt Raible on August 21, 2007 at 02:23 PM MDT #

The LinkedIn UI is neat, but it seems too similar to YouTube for me not to suspect one or the other of stealing. Or perhaps there is a single puppet master behind both designs?

Posted by Chris Wash on August 21, 2007 at 04:13 PM MDT #

What I like most about the LinkedIn layout is that it is packed full of details. The designers obviously spent, and continue to spend, a lot of time considering each element on the pages throughout the site. Everywhere I look there is a strong, thoughtful attention to detail. That's why I have to scoff when comparisons to YouTube are drawn. The UI design of YouTube seems half-finished. It's "good enough", but that's it.

Posted by Geof Harries on August 21, 2007 at 09:57 PM MDT #

Sounds great! I don't think I comply with "JSF and Facelets experience preferable" though. Every post here turns into a SuperX vs SuperY framework, relax guys :)

Posted by musachy on August 21, 2007 at 10:22 PM MDT #

I agree that LinkedIn has a really well designed and innovative UI, combining presentation of information without cluttering the UI and YouTube isn't really a comparison.

Can you share the Linkedin High Availability / Clustering story in a couple of lines? Also how are they managing their RESTful URL's. Are they using Apache mod or UrlRewrite?

Posted by Sanjiv Jivan on August 22, 2007 at 01:08 PM MDT #

The RESTful URLs are done the old fashioned way - there's a different servlet mapped to each URL in their web.xml.

Posted by Matt Raible on August 22, 2007 at 01:16 PM MDT #

I guess I agree with Matt. There are some webapplications that I would not use JSF/Facelets.

I tend to use Spring MVC for really high traffic sites, less headache and more control for web designers.

For internal web apps that act more like apps and less like web sites... I use JSF/Facelets.

BTW I really love linkedin. I have been a big fan for a while.

Posted by Rick Hightower's Sleepless Night in Tucson on February 29, 2008 at 11:31 AM MST #

Post a Comment:
  • HTML Syntax: Allowed