Session Descriptions
Dan Allen - Principal Software Engineer at Red Hat, Author and Open Source Advocate
Continuous Enterprise Development in Java
Are you confident enough to push your application to production right now? Will it deploy? Integrate all the components? Keep the fail whale at bay? Confidence comes from tests. Real tests.
Forge Ahead with Java Development
How many times have you wanted to start a new project in Java, but struggled with copying and pasting all the pieces together? Has the Maven archetype syntax left you with your eyes crossed? Everyone else is talking about Rails, Grails, and Roo, and you're left thinking, "I wish it were that easy for Java EE." Well, it is!
Scott Bain - Author of "Emergent Design"
Patterns and Agile Development: Emergent Design
Our industry is at a major turning point; moving away from waterfall-style development methodologies and toward lighter-weight, Lean-Agile development. This brings great promise. However, it also creates interesting questions. What is the role of design in an Agile process? How much design is enough, and how much is over-design? Are patterns still relevant, with TDD and refactoring gaining momentum throughout the industry?
Sustainable Test-Driven Development
Test-Driven Development has gained a strong foothold among many development teams, but as popular as it has often become, many organizations struggle to keep the testing effort sustainable over a long period of time. As test suites become large, they tend to become significantly difficult and time consuming to maintain, which is required to keep the TDD effort alive. Similarly, disciplined refactoring skills have become, for many, an essential part of a development team's toolkit, especially when confronted with large amounts of legacy code. However, the effort it can take to refactor a system can be difficult to weigh against the business value of new development; spending time on one would seem to limit the time spent on the other.
Peter Bell - Evangelist/hacker for hackNY
Agile Recipes
You don't need to "do scrum" or "implement lean" to be agile.
NoSQL data modeling with Mongo and Neo4j
With NoSQL data stores you need to completely rethink how to model your data.
Professional Javascript development for the Java developer
Like it or not, with application servers like node.js and increasingly rich client MVC frameworks like backbone.js, Javascript is in your future.
Software Craftsmanship: Positioning, Patterns and Practices
None of us want to think of ourselves as "cowboy coders", but what does it mean to be a software craftsman, and is it a useful distinction? If so, what are some of the best patterns for honing our craft?
The Lean Startup - for Enterprise Software Developers
Intuit and even the US government want to be "lean startups".
Why Agile Works
Learn why key agile practices work.
Tim Berglund - GitHubber
ClojureScript
Clojure has recently been gaining attention as one of the most innovative languages of the JVM in current use, and it has mostly found a home on the server. In parallel, JavaScript has ascended to the position of the most important language of the web, and until recently it has lived only on the client. Few observers looked at the world of web development and predicted that these two would get together. Happily for us, they have!
Connected Data with Neo4j
Neo4j is an open-source, enterprise-class database with a conventional feature set and a very unconventional data model. Like the databases we're already used to, it offers support for Java, ACID transactions, and a feature-rich query language. But before you get too comfortable, you have to wrap your mind around its most important feature: Neo4j is a graph database, built precisely to store graphs efficiently and traverse them more performantly than relational, document, or key/value databases ever could.
Decision Making in Software Teams
Alistair Cockburn has described software development as a game in which we choose among three moves: invent, decide, and communicate. Most of our time at No Fluff is spent learning how to be better at inventing. Beyond that, we understand the importance of good communication, and take steps to improve in that capacity. Rarely, however, do we acknowledge the role of decision making in the life of software teams, what can cause it to go wrong, and how to improve it.
Gradle Workshop (Bring a Laptop)
Gradle. Another build tool? Come on! But before you say that, take a look at the one you are already using.
Whether your current tool is Make, Rake, Ant, or Maven, Gradle has a lot to offer. It leverages a strong object model like Maven, but a mutable, not predetermined one. Gradle relies on a directed acyclic graph (DAG) lifecycle like Maven, but one that can be customized. Gradle offers imperative build scripting when you need it (like Ant), but declarative build approaches by default (like Maven). In short, Gradle believes that conventions are great -- as long as they are headed in the same direction you need to go. When you need to customize something in your build, your build tool should facilitate that with a smile, not a slap in the face. And customizations should be in a low-ceremony language like Groovy. Is all this too much to ask?
Prerequisite: Knowledge of any build tool such as Ant, Maven, Rake, BuildR, Make, Leiningen, or SBT.
Hadoop
When you want to measure fractions of a millimeter, you get a micrometer. When you want to measure centimeters, you get a ruler. When you want to measure kilometers, you might use a laser beam. The abstract task is the same in all cases, but the tools differ significantly based on the size of the measurement.
Likewise, there are some computations that can be done quickly on data structures that fit into memory. Some can't fit into memory, but will fit on the direct-attached disk of a single computer. But when you've got many terabytes or even petabytes of data, you need tooling adapted to the scale of the task. Enter Hadoop.
Neo4J Workshop
TBA
NoSQL Smackdown 2012
Alternative databases continue to establish their role in the technology stack of the future—and for many, the technology stack of the present. Making mature engineering decisions about when to adopt new products is not easy, and requires that we learn about them both from an abstract perspective and from a very concrete one as well. If you are going to recommend a NoSQL database for a new project, you're going to have to look at code.
Then Our Buildings Shape Us
Winston Churchill famously said, "First we shape our buildings, and afterwards, our buildings shape us." He was talking about the reconstruction of the House of Parliament, which was damaged in a bombing raid in World War II. There was a debate about how to shape the chamber to best accommodate the deliberative activity of the body that met in it. Churchill was talking about buildings, but it turns out his insight is a very general one indeed.
Charles Bradley - Agile and Scrum Coach
Acceptance and Story Testing Patterns
Acceptance Testing, also known as Story Testing, is a practice that can be applied to any software project, Agile or not. However, to achieve the Agile vision of "working software over comprehensive documentation," it's very important that acceptance tests are easily automated, resulting in a phenomenon you may have heard of, called the "Agile Specification."
The User Story Lifecycle: Just Enough, Just In Time
The key to User Stories is making sure your related practices are just enough, just in time.
Andrey Breslav - Lead on Project Kotlin
Introduction to Kotlin
Some years ago "alternative" programming languages for the JVM lived mostly in research labs and garages, industry knew about some of them, sometimes even used them, but never produced them. Recently, the trend has changed: new languages are backed by industrial vendors. To put it another way: the time has come for a new JVM language, and there are a few projects competing in this field. One of them is Kotlin, backed by JetBrains, a leading IDE vendor.
Kotlin is a modern statically typed language targeting JVM and JavaScript and intended for industrial use. The main goal behind this project is to create a language that would be a good tool for developers, i.e. will be safe, concise, flexible, 100% Java-compatible and well-supported by IDE and other tooling. Kotlin is an open-source project started developed JetBrains with the help of the community.
Jeff Scott Brown - Core Member of the Grails Development Team
A Thorough Introduction To Grails
Grails represents technology that offers great flexibility and power without the complexity introduced by other Java web application frameworks. Custom tag libraries are a snap. GSP Templates provide a simple mechanism for reusing UI elements. Sitemesh is integrated to help provide a consistent presentation across the entire application. GORM is super powerful ORM. Grails provides simple mechanisms for leveraging the power of Ajax.
What's New In Grails 2.0?
In this session, Grails core developer Jeff Brown will deliver an update on the latest and greats features of the Grails framework - a dynamic, web application framework based on the Groovy language and designed for Spring.
Adrian Cole - Cloud Guy at Netflix
DIY NoSQL: Spinning up services with Whirr
Whether it's HBase, Cassandra or one of the many others, you've probably already heard about NoSQL. Perhaps you have a continuous test flow dependency, yet are concerned about learning curve or infrastructure required for the NoSQL store you need.
Hands on Cloud Storage
You may have heard about cloud storage offerings such as Amazon S3, OpenStack or Microsoft Azure. While conceptually similar, these offerings have different apis and behaviour that place the "write once (run|test) anywhere" mantra at risk. The jclouds open source java and clojure library aims to eliminate cloud vendor lock-in, exposing easy to use, portable, and powerful APIs. Bring your laptop, armed with latest revs of Eclipse, git, and maven, and we'll walk through getting you setup to hack jclouds java or clojure BlobStore applications in a collaborative fashion.
Portable Cloud Storage with jclouds
Key/value stores are the most common storage offerings in the cloud today. While conceptually similar, BlobStores present different programming models and consistency models that must be considered in application design. After this session, you'll understand these differences, and know how to use jclouds to avoid cloud lock-in and increase testability without restricting access to cloud-specific features.
Luke Daley - Principal Engineer @ Gradleware
Functionally Testing Modern Web Applications with Geb
Geb is a browser automation solution for Groovy. It brings together the power of WebDriver, the elegance of jQuery content selection, the robustness of Page Object modelling and the expressiveness of the Groovy language. Geb enables more expressive, more concise, and (very importantly) more maintainable web tests.
Gradle Plugin Best Practices
One of Gradle's attractive features is that plugins are extremely simple to write and can do anything. Gradle plugins can add new functionality, enhance existing functionality or even remove undesired functionality. If you've ever wanted to write a Gradle plugin, or are interested in the deep details of plugins, then this session is for you.
In this session we'll explore some fundamental concepts that can be used as guidelines when developing plugins and new Gradle functionality, and the role of plugins and how they can be used.
Managing JavaScript with Gradle
JavaScript is playing an ever increasing role in modern web applications. This is having an impact on the way be automate the building of our applications as JavaScript introduces new challenges such as magnification, unification and even compilation of languages such as CoffeeScript.
Next Level Spock
So you already know and love Spock, the Enterprise ready testing framework, but want to know how to make the most of it and take your testing to the next level? Then this talk is for you. Even if you're new to Spock, but are interested in making your testing more effective this talk is for you.
Hans Dockter - Founder of Gradle and CEO of Gradleware
Patterns for Efficient Build Promotion
We have seen quite a few larger projects for which a naive practice of early integration between the components lead to constant breakages. Thus they were not capable to successfully build a new version of the software stack for days or even weeks. Obviously the problem of that is dramatic as no regular manual testing and capacity testing is taking place. Not only is this a massive waste of testing resources, it also leads to very long and therefore expensive feedback cycles that severely affect your time-to-market of new features. It also a likely source of conflict between the CI team and software development, as with no other means at hand, there is a desire to create stability by not adding new features or doing important refactoring.
Johan Edstrom -
Succeeding with the Apache SOA stack
Real world applications, there is more to SOA and scaling systems than just dropping some XML files into a file area and applying XSLT style-sheets, you still need some old-fashioned engineering.
When you start building complex SOA applications, there will be a few key factors that you’ll see in larger systems, they are usually not addressed in current texts or documentation, they are complicated; but to really win with asynchronous solutions, you need to be able to
· Build State Machines · Have Conversational patterns · Realize how you can cluster aggregations and complex patterns · Know when to transact and where it really doesn’t matter.
Todd Ellermann - VP of Engineering for VirtualTourist.com
Enterprise/Application Architecture a Case Study: Virtualtourist.com
Imagine you are the new CTO for virtualtourist.com and just been acquired by Tripadvisor. You are given 4 mid level software engineers 8 million monthly unique visitors, and the following running environment: No automated deployment, PHP batch jobs, PHP forum, Java servlet based home grown framework, WebObjects server talking to JBOSS EJB (Entity Beans {CMP}), and everyone writes and tests code on the "staging" server. Now what?
Grails Grown Up: How do we get sub 500m/sec response?
How do you handle 9 million monthly unique visitors with Grails? Build pages using concurrency, SOLR, SQUID, and RESTful services on Grails, that's how!
Grails in the Enterprise: Can I? Should we?
Java/J2EE looking for something better but not sure if you can sell paying the price of a new language/framework? Not sure if Grails will work in YOUR environment?
Szczepan Faber - Founder of Mockito
Mockito Workshop
Do you want to learn more about Mockito framework directly from the founder? Join the workshop and get up to speed with: - principles of interaction testing - using test spies to drive the design and high quality production code - getting most of the test spy pattern to produce readable and maintainable tests - solutions to typical unit testing challenges with regards to mocking - Mockito features and patterns along with the use cases when they are most useful
Neal Ford - Application Architect at ThoughtWorks, Inc.
Agile Engineering Practices
Most of the time when people talk about agile software development, they talk about project and planning practices and never mention actual development practices. This talk delves into best development practices for agile projects, covering all of its aspects.
Prerequisite: Having worked in an organization that values bureaucracy more than individuals
Build Your Own Technology Radar
A Technology Radar is a tool that forces you to organize and think about near term future technology decisions, both for you and your company.
Clojure Workshop
In an increasingly crowded field of languages, Clojure stands alone. It is a dynamic, functional, high performance dialect of Lisp that runs on both the JVM and CLR. The creator cast aside assumptions from both the Lisp and Java communities to create a remarkable language implementation.
Continuous Delivery All-day Workshop Pt 2: Agile Infrastructure
Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.
Continuous Delivery All-day Workshop, Pt. 1: Deployment Pipelines
Getting software released to users is often a painful, risky, and time-consuming process. This workshop sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers and operations, delivery teams can get changes released in a matter of hours–sometimes even minutes–no matter what the size of a project or the complexity of its code base.
Raju Gandhi - Java/Ruby Developer/Language Geek
Web Application Design from a Developer's perspective
Poorly designed web applications fail to serve both the business and the users, leading to a unnecessary costs, and frustrated customers. By keeping the user in mind, and following a few simple guidelines, you can make huge leaps in the way your users interact with your applications.
jRuby Workshop
The last decade has seen an explosion in the number of languages targeting the Java runtime. Amongst these, one of the (arguably) strong contenders is JRuby - a 100% Java port of the Ruby language. Ruby aims to make programmers "happy", and with JRuby you can find happiness without having to leave your favorite runtime! JRuby also provides deep integration with Java, allowing you to leverage existing Java libraries while writing code that is succinct, elegant and beautiful.
Jeff Genender - Java Open Source Consultant
ActiveMQ In The Trenches – Advanced Tips On Architectures and Implementations with ActiveMQ
Whether its an ESB, JavaEE, or an eventing system, Messaging is becoming the foundation for many mission critical development efforts and a common platform for many architectures. Implementing a MQ may seem simple enough, but once it runs in production, you may find that the container is unstable with seizing queues, out of memory problems, slow performance, and messages that just seem to get stuck. 75% of the time this is due to misconfiguration, and 25% its due to poor implementation and architecture.
Jerry Gulla - Architect for SaveLocal.com at Constant Contact
Career.Next
We all know that a career in software can be challenging. Keeping up with the latest trends, mapping out career choices and knowing how to stay marketable are critical skills. The speaker, using his own 20+ year career as an example, will talk about techniques he’s used to survive economic downturns, government contracts, technology shifts and even going from engineering to management and back - twice!
JRuby in the Enterprise
Bring the power of Ruby and Rails to your enterprise! Interested in harnessing the power of Ruby on Rails but not sure how to incorporate it into your existing Java/J2EE/Spring word? In this session, we’ll talk about real-world experiences, lessons learned and best practices for developing a new Ruby on Rails using JRuby.
RSpec for API Testing
We all know the benefits of Service Oriented Architecture (SOA), but it’s not without it’s pitfalls. If you’re providing an API, wether for internal or external use, testing it is essential. Even if you only consume other APIs, testing them to make sure they didn’t change or break can be critical. RSpec is Behavior Driven Development (BDD) testing framework. Although RSpec was born out of the Ruby community, it’s not limited to testing Ruby APIs! It turns out it’s a great way to test ALL your APIs, regardless of language.
Using Vagrant
Vagrant is “virtualized development made easy.” If you’re looking to lower development setup time, minimize manual configuration and setup and eliminate the “it works on my machine” excuse, Vagrant is for you.
James Harmon - Android Expert
Android Workshop
The technology industry has been swept up in many historical waves. In 1980 the widespread adoption of the PC, fifteen years later in 1995 the browser became widespread and in 2010 with the introduction of the iPhone, the smart phone wave began. Don't miss out. Grab your surfboard and learn how to ride the coming wave of smart phone development with Android.
Spend a day learning how to do development on the most popular smartphone platform available. Android is a Java platform - you can leverage your existing Java skills. You'll get hands on experience developing an Android app that will use all the major components of Android applications.
Erik Hatcher - co-author of "Lucene in Action"
Introduction to Solr
Apache Solr serves search requests at enterprises and the largest companies around the world. Built on top of the top-notch Apache Lucene library, Solr makes indexing and searching integration into your applications straightforward. This talk will introduce Solr's capabilities with live demonstrations.
Power Solr: Performance, Scaling, and Relevancy
Make the most out of Solr by leveraging these tips and tricks to increase performance, scale Solr to your needs, and tune search results. This talk will discuss Solr architecture decisions, performance and scaling best practices, and considerations and techniques for adjusting search results for your application.
Prerequisite: Introduction to Solr (or equivalent experience)
Solr Recipes
Solr Recipes provides quick and easy steps for common use cases with Apache Solr. Bite-sized recipes will be presented for data ingestion, textual analysis, client integration, and each of Solr’s features including faceting, more-like-this, spell checking/suggest, and others.
Prerequisite: Java JDK 1.6 and a current version of Ant is recommended to run the examples.
Christopher Judd - Developer, Consultant, Author & Mobility Expert
iOS Workshop
During the all day iOS hands-on tutorial, we will do soup to nuts iOS development. We will start with how to use XCode and build a universal application for iPhone and iPad using a variety of common APIs. We will finish up talking about and demoing how to prepare and deploy to the app store.
Heath Kesler - Open Source Evangelist
Advanced SOA architectures using Open Source
In this session attendees will learn about the different levels of concern within SOA and where to implement different frameworks within enterprise architectures. Tips and tricks that can only be learn through the school of hard knocks are presented here to give the attendee a big leap ahead in architected their systems. It will also point out commons trouble spots often encountered in large-scale systems. These are advanced system integration concepts with a focus on high availability using open source frameworks in a service-orientated architecture.
Frank Kim - Author of Secure Coding in Java/JEE
How to Use Secure HTTP Headers
Learn how to use the latest HTTP headers to prevent attacks like Clickjacking, Cross-Site Scripting (XSS), and Session Hijacking. To address security defects developers typically resort to fixing architectural issues and security bugs directly in the code. A few use security related HTTP headers to mitigate the risks posed by malicious attackers. Some developers might even pray that security issues will be fixed automagically by the browser.
Security Inception
Learn how your organization can fall prey to malicious attackers. Using real-world case studies you'll see exactly how hackers exploited and embarrassed several well-known companies. Analyzing these events provides enormous insight into what works and what doesn't when building, maintaining, and defending your app.
Kenneth Kousen - Author of "Making Java Groovy"
Groovy Workshop
This half-day workshop will bring you up to speed on the specifics of the Groovy programming language. We'll touch on most of the major features of the language, from collections and closures to builders, AST transformations, and metaprogramming. Specific examples will cover topics from Groovy itself and will be supported by unit and integration tests and built using Gradle.
Spock: Logical Testing for Enterprise Applications
The Spock framework brings simple, elegant testing to Java and Groovy projects. It integrates cleanly with JUnit, so Spock tests can be integrated as part of an existing test suite. Spock also includes an embedded mocking framework that can be used right away.
Matthew McCullough - Head of Training, GitHub
Adam Smith Builds an Application
Economics, psychology, game theory, and marketing; those fields of study imply a distinct lack of semicolons and curly braces. However, even the venerable Adam Smith, were he alive today, would recognize the applicability of those seemingly tangential components to the business we call software.
Many of us self-identify with the hard core branding of "geek" and "nerd," or the softer choices, "programmer" and "developer." However, we rarely hear mentioned "business person," "saleswoman," salesman," "inventor," "strategist," or "economist," yet they are equally, if not more accurate in the description of the talents of a software craftsperson. Though unstated, we, as developers, are expected to be skilled in each of those areas. Rarely in business are so many combined talents expected from an individual contributor.
Applying Git: 10 Power Tips
Git is a powerful content tracker and has gained acceptance by many forward leaning consultants and teams over the past several years. Those developers know that it offers the usual commit, branch, merge and tag in a distributed environment, and yet, only a few developers have explored the more powerful functions of Git. These range from searching months of history for a unit-test bug to undoing literally any mistake to splitting in-progress work into multiple commits within a single file.
Prerequisite: Students must have used Git use in the workplace for several months before attending this talk in addition to setting up Git according to http://teach.github.com/articles/github-class-prerequisites/
Build Lifecycle Craftsmanship Tools
You've heard a bit about Git, Gradle, Jenkins, and Sonar, but are you putting them to use? Are you maximizing what they can offer in terms of standardized project models, faster incremental compiles, automated commit-triggered builds, and rapid source code analysis? In this intense presentation, live demonstrations will be given for all of the latest versions of the aforementioned tools and what they have to offer a highly proficient Java developer.
Developer Productivity Power Ups on Mac OSX
You're a talented coder and you apply many agile practices to your daily workflow. Still, you are looking for that next boost to better keep track of information, manage your open applications, make working with the terminal more productive, recall information quickly, manage files rapidly, and produce documentation in a portable and effective manner.
This presentation will show you how to apply DevonThink, Delicious bookmarks, RSS feeds, Pinboard.in, Pomodoro, Things, LaunchBar, Bash profiles, mind maps, markdown files and spotlight filters to become a more productive developer that has a world of information sorted and accessible at a moment's notice.
Prerequisite: Very basic developer proficiency on the Mac.
Git Bootcamp - An All-Day Workshop
Distributed version control is all the rage these days, but is it worth it? It has been transformative for the dozens of organizations and thousands of developers that I've mentored on the unique implementation called Git. But don't take my word for it. Discover the joy of a version control system that works for you, not against you, in a hands-on workshop. Bring a Windows, Mac, or Linux laptop and we'll install, set up, use and bend Git into workflows that weren't even possible with the version control systems of yesteryear. Be prepared to rethink how lightweight, fast, and refreshing source code control can be. After completing this workshop you'll be able to do practical work with Git for your day job or weekend OSS hobby
Prerequisite: Knowledge of a version control system, whether that be CVS, SVN, ClearCase, Perforce, StarTeam or Accurev.
Git Workshop (Bring A Laptop)
Git is a version control system you may have been hearing a bit about lately. But simply hearing more about it may not be enough to convince you of its value. Getting hands on experience is what really counts. In this workshop, you'll bring your Windows, Mac or Linux laptop and walk through downloading, installing, and using Git in a collaborative fashion.
Prerequisite: Basic knowledge of a version control system. Subversion knowledge is a plus, but not imperative.
Sonar Code Metrics Workshop (Bring a Laptop)
You're serious about improving the quality of your code base, but with 10,000 lines of code, where do you start and how do you ensure the greatest ROI for the re-work your team members will perform?
Sonar is an open source tool that brings together the best of breed static and dynamic analysis of Java projects. The result is a unified view of problematic areas of your code on a time-line basis, allowing the team to attack the problems with the best ROI, and maintain a more watchful eye for positive and risky trends in the codebase in the future.
Prerequisite: Knowledge of any build tool such as Ant, Maven, Rake, BuildR, Make, Leiningen, or SBT.
Gradle Workshop (Bring a Laptop)
Gradle. Another build tool? Come on! But before you say that, take a look at the one you are already using.
Whether your current tool is Make, Rake, Ant, or Maven, Gradle has a lot to offer. It leverages a strong object model like Maven, but a mutable, not predetermined one. Gradle relies on a directed acyclic graph (DAG) lifecycle like Maven, but one that can be customized. Gradle offers imperative build scripting when you need it (like Ant), but declarative build approaches by default (like Maven). In short, Gradle believes that conventions are great -- as long as they are headed in the same direction you need to go. When you need to customize something in your build, your build tool should facilitate that with a smile, not a slap in the face. And customizations should be in a low-ceremony language like Groovy. Is all this too much to ask?
Prerequisite: Knowledge of any build tool such as Ant, Maven, Rake, BuildR, Make, Leiningen, or SBT.
Pratik Patel - CTO TripLingo & Code Hacker
Advanced JavaScript for Java Devs
So you think you've picked up enough JavaScript to be dangerous, but feel like the whole prototypical language thing is still a mystery. In this session, we'll go from basic JavaScript to advanced JavaScript. We'll discuss and code modular JavaScript with CommonJS. We'll look into the details of a prototype language and discuss things like parasitic inheritance. We'll also look at JavaScript libraries that will help you get the most out of JavaScript - not jQuery, but a library like UnderscoreJS and SugarJS.
Apponomics
You've got a great idea for a mobile app. You have a team together. You're building the killer app. Do you know enough about the various app stores to know what to do next? How about pricing strategies for iOS and Android? Have you thought about the Nook Color and Amazon Fire? In this session, I'll bring my experience as CTO of TripLingo, an awesome company developing foreign language learning apps. TripLingo has been featured on the iOS store a dozen times, as well as the Android market and Nook store.
Developer guide to the cloud
There's a ton of options for deploying to the cloud right now. Heroku and Engineyard are among the well known Platform as a Service (PaaS) providers. What if you don't want to use these PaaS services? What if you don't know which one is better? Are they cost effective? What about private deployments into internal infrastructure? This session answers these questions with a discussion of PaaS services and setting up your own PaaS using CloudFoundry.
Mobile Development Options 2013
There's a bevy of options for developing mobile apps. If you're looking at cross-platform solutions, there's a multitude of options to choose from. In this session we'll explore the three basic categories for developing mobile apps: native, cross-platform-to-native, and mobile web. We'll discuss the sweet spot for each of these three approaches and the benefits and drawbacks of each. Technologies discussed include Android, iOS, HTML5/CSS3, Phonegap, Titanium, and jQuery Mobile.
Mobile Performance Tips n' Tricks
Creating a web site, web app, or native app for mobile use presents a special set of challenges. Specifically, developers and designers should be zoned into the techniques for usability - and usability can be enhanced greatly by taking performance elements into consideration up-front. In this session, we explore the many performance tips and tricks you can employ to make your website or web app or native app shine on mobile devices. This is an advanced course that discusses issues such as image loading, JavaScript performance, and wireless latency.
Matt Raible - Sr. UI Architect and Creator of AppFuse
HTML5 with Play/Scala, CoffeeScript and Jade
This session shows you how to use some of the hottest technologies today to build a webapp, an API and a mobile application to track fitness workouts. Using HTML5 technologies (specifically geo and local storage), I’ll show you how you can track the time, distance and music you listened to while exercising. Play with Scala is used for the backend and services, while CoffeeScript and Jade are used for the front-end templating and Ajax communication.
Play vs. Grails Smackdown
In this session, Matt and James will develop two apps that do the same thing. One will be written in Grails and one will be written in Play. We'll deploying them to Heroku and hammer them to see how they both perform under load. Afterward, we'll compare performance, lines of code, etc. Who will be declared the winner?!
Nilanjan Raychaudhuri - Author of "Scala in Action"
Scala Koans - A new and fun way to learn a Scala programming language (Bring a Laptop)
Have you looked into Scala? Scala is a new object-functional JVM language. It is statically typed and type inferred. It is multi-paradigm and supports both object oriented and functional programming. And it happens to be my favorite programming language.
If you are interested in Scala, how you are planning to learn Scala? You probably are going to pick up a book or two and follow through some examples. And hopefully some point down the line you will learn the language, its syntax and if you get excited enough maybe build large applications using it. But what if I tell you that there is a better path to enlightenment in order to learn Scala?
Programming Concurrency with Akka
I call the JDK concurrency API as the synchronize and suffer model. Fortunately, you don't have to endure that today. You have some nice options, brought to prominence on the JVM by Scala and Clojure.
Paul Rayner - Founder and Owner at Virtual Genius
Aggregate-Oriented Modeling with DDD and NoSQL
Many of the problems encountered in scaling, parallelizing and distributing systems that tend to be addressed in ad-hoc ways are actually deeply connected with the manner in which the business domain has been modeled. Domain-Driven Design (DDD) has rich modeling resources for tackling concurrency, transactional and distribution boundary issues within the domain model itself, enabling teams to be more effective in dealing with business complexity and change.
Domain Modeling Using Domain-Driven Design (DDD)
This presentation seeks to provide a solid introduction to the fundamentals of DDD. Learn why modeling a complex business domain in software is so advantageous to your business and ways in which your team can go about delivering software models to give your business a competitive edge.
Domain-Driven Design (DDD) Workshop
Build your awareness of the basic concepts and value of Domain-Driven Design (DDD) in one day through group exercises, paired code walkthroughs, lecture and games.
Understand what DDD is and when and why it is valuable to software intensive organizations. Overview the basic principles and processes needed develop the useful sort of models, tie them into implementation and business analysis, and place them within a viable, realistic strategy.
Strategic Design Using DDD
Not every part of a software system will be well-designed. How do you know where to put the time and effort to refine the design, or refactor existing code? Learn how strategic Domain-Driven Design (DDD) patterns can show you how to know which parts of your system matter most to your business and how to focus your team's design efforts most effectively.
Using DDD Patterns for Supple Design
Come on a guided tour of how applying Domain-Driven Design (DDD) building block patterns can make your code cleaner, more expressive, and more amenable to change. We cover examples of DDD patterns such as entities, value objects, closure of operations and side-effect-free functions. We will focus particularly on how implementing value objects can lead to more supple design.
Mark Richards - SOA and Integration Architect, Author of Java Message Service
AMQP: From Concept To Code
Advanced Message Queuing Protocol (AMQP) is a new way of looking at messaging that is quickly gaining in popularity and use, particularly in the financial services industry. Unlike JMS, which defines a standard API across platforms, AMQP defines a standard wire-level protocol across languages and platforms, finally making true cross-platform messaging a reality. In this session I will start by describing exactly what AMQP is and what problems it specifically solves (that JMS can't!). I will then describe the basic architecture and how AMQP routes messages, and then, through live interactive coding, demonstrate how to build a simple producer and consumer using RabbitMQ to send and receive AMQP messages. We will then take a brief look at other aspects of AMQP such as performance, load balancing, and handling undelivered messages.
Prerequisite: Basic knowledge of messaging in general
Enterprise Architecture Workshop
Enterprise Architecture (EA) is one of the most misunderstood terms in our industry. Ask 10 people what EA is and you will get 10 different answers. To better understand what EA is and how it impacts your company (and you!) we will go back in time to maritime Britain in the late 1700's. Through exercises in designing a fleet of war ships and making decisions about what to do with the fleet you will understand the various approaches, directions, and implications of EA and how necessary EA is to achieve any company goal. So put your admirals hat on and climb aboard this workshop for a maritime adventure you won't forget!
High Performance Messaging
If you need your messaging-based systems to be fast - really fast - then this is the session to attend. In this session I will introduce and demonstrate some relatively simple tips and tricks to get the best performance and throughput from your messaging system. Through live code demonstrations I will show the impact of both configuration and design changes using Spring JMS, ActiveMQ, and RabbitMQ. So buckle up those seat belts - its going to be a fast ride.
Prerequisite: Some knowledge of JMS messaging and messaging systems in general
Integration Architecture: Concepts and Patterns
Very few applications stand alone anymore. Rather, they are combined together to form holistic systems that perform complex business functions. One of the big challenges when integrating applications is choosing the right integration styles and usage patterns. In this session we will explore various techniques and patterns for application integration, and look at what purpose and role open source integration hubs such as Camel and Mule play in the overall integration architecture space (and how to properly use them!). Through actual integration scenarios and live coding examples using Apache Camel you will learn which integration styles and patterns to use for your system and how open source integration hubs play an part in your overall integration strategy
Know Your Enemy: Understanding AntiPatterns
The ancient Chinese warrior Sun Tzu taught his men to "know your enemy" before going into battle. For us, the same thing is knowing and understanding anti-patterns - things that we repeatably do that produce negative results. Anti-patterns are used by developers, architects, and managers every day, and are one of the main factors that prevent progress and success. In this session we will look at some of the more common and significant software development anti-patterns. Through coding and design examples, you will see how these anti-patterns emerge, how to recognize when the antipattern is being used, and most importantly, how to avoid them. Although most of the coding examples will be in Java, this is a technology-agnostic session.
The Art of Problem Solving
Whether developer, designer, or architect, we are all presented with problems and work to find a way to solve them, usually through technology. In my opinion this is what makes this industry so much fun. Let's face it - we all love challenges. Sometimes, however, the problems we have to solve are hard - really hard. So how do you go about solving really hard problems? That's what this session is about - Heuristics, the art of problem solving. In this session you will learn how to approach problems and also learn some the common techniques for solving them effectively. So put on your thinking cap and get ready to solve some easy, fun, and hard problems.
Prerequisite: An open mind and a willingness to learn how to better approach and solve problems
Nathaniel Schutta - Author, speaker, software engineer focused on user interface design.
Designing for Mobile
The word just came down from the VP - you need a mobile app and you need it yesterday. Wait, you've never built a mobile app...it's pretty much the same thing as you've built before just smaller right? Wrong. The mobile experience is different and far less forgiving. How do you design an application for touch? How does that differ from a mouse? Should you build a mobile app or a mobile web site? This talk will get you started on designing for a new, and exciting, platform. Whether that means iPhone, Android, Windows Phone or something else, you need a plan, this talk will help.
HTML5
Interested in HTML5? Want a change to play around with the latest and greatest in web app development? This workshop is for you! We'll cover feature detection, web forms, the new HTML elements, take a spin around the canvas, and we'll finish up with offline/local storage and web sockets.
Hacking Your Brain for Fun and Profit
The single most important tool in any developers toolbox isn't a fancy IDE or some spiffy new language - it's our brain. Despite ever faster processors with multiple cores and expanding amounts of RAM, we haven't yet created a computer to rival the ultra lightweight one we carry around in our skulls - in this session we'll learn how to make the most of it. We'll talk about why multitasking is a myth, the difference between the left and the right side of your brain, the importance of flow and why exercise is good for more than just your waist line.
JavaScript Libraries You Aren't Using...Yet
You're all over jQuery - you write plugins in your sleep - and before that, you were a Prototype ninja. Your team treats JavaScript like a first class citizen, you've even written more tests than Kent Beck. Is that all there is in the land of the JavaScript developer? Believe it or not, the JavaScript party hasn't stopped. What other libraries are out there? What do they offer? This talk will survey the field of modern JavaScript libraries getting you up to speed on what's new. We'll dive in just deep enough to whet your appetite on a wide variety of libraries such as Backbone, Underscore, Zepto and more.
Leading Technical Change
Technology changes, it's a fact of life. And while many developers are attracted to the challenge of change, many organizations do a particularly poor job of adapting. We've all worked on projects with, ahem, less than new technologies even though newer approaches would better serve the business. But how do we convince those holding the purse strings to pony up the cash when things are "working" today? At a personal, how do we keep up with the change in our industry?
The Mobile App Smackdown: Native Apps vs. The Mobile Web
Mobile is the next big thing and your company needs to there. But what does there actually entail? Should you build a native app? On which platforms? Do you have the skills for that? What about the web? Can you deliver an awesome experience using nothing but a mobile web browser? This talk will help you navigate these treacherous waters. We'll discuss the pros and cons of the various approaches and give you a framework for choosing.
The Who and What of Agile - Personas and Story Maps
Successful projects require any number of practices but if you don't know who you're building it for or what you're supposed to build, failure is a distinct possibility. How do we capture the who and what? Personas and story maps are two effective techniques that you can leverage. After discussing the basics, we'll break into small groups and you'll have a chance to actually try building a set of personas as well as a story map.
Ken Sipe - Architect, Web Security Expert
Architecture: Non-Functional Requirements
The agile focus of software development puts heavy focus on user requirements through user stories. However we can not lose sight of the non-functional requirements as well. The software could be written to the exact specification and desire of the user, however if it takes 5 minutes for a request response, or it only supports 2 users or it isn't secure, then we still haven't done our jobs as developers.
Complexity of Complexity
Of all the non-functional requirements of software development, complexity receives the least attention and seems to be the most important from a long term standard point. This talk will look at some of forces that drive complexity at the code level and at a system level and their impact. We will discuss what causes us to over look complexity, how our perception of it changes over time and what we can do about it?
Enterprise Security API library from OWASP
When it comes to cross cutting software concerns, we expect to have or build a common framework or utility to solve this problem. This concept is represented well in the Java world with the loj4j framework, which abstracts the concern of logging, where it logs and the management of logging. The one cross cutting software concern which seems for most applications to be piecemeal is that of security. Security concerns include certification generation, SSL, protection from SQL Injection, protection from XSS, user authorization and authentication. Each of these separate concerns tend to have there own standards and libraries and leaves it as an exercise for the development team to cobble together a solution which includes multiple needs.... until now... Enterprise Security API library from OWASP.
Getting Agile Right!
Whether you are just getting started, or you’ve made an attempt and well… it could be better… a lot better, this session is for you. Ken has been working on Agile projects as a coach and mentor for a number of years. Come discover the common reasons teams fail to get it right. Bring your own challenges and lets discuss. This is set to be an engaging and illuminating discussion.
Hacking Workshop
The net has cracks and crackers are among us. With all the news of security failures, it can be a challenge to know what is FUD and what is really at risk and to what extent. This session isn’t about hacking an application together nor is it about coding a solution. It is about looking at the network and network infrastructure and understanding some of its weaknesses. This workshop is a 50% mix of lecture / discussion and hands on attacking in order to best understand the challenges.
MongoDB: Scaling Web Applications
Google “MongoDB is Web Scale” and prepare to laugh your tail off. With such satire, it easy to pass off MongoDB as a passing joke… but that would be a mistake. The humor is in the fact there seems to be no end to those who parrot the MongoDB benefits without a clue. This session is about getting a clue.
Networks for Programmers
In the words of John Gage, "The network is the computer". At the heart of everything we do is a complex system of infrastructure from which we are often abstracted. For general application development this abstraction provides the convenience of simplifying our efforts. With a growing number of mobil applications with intermittent connectivity and higher latency, and with increased hostility on the network from a security standpoint, there is great value in pulling back the curtain and understanding the details of this computer.
OOP Principles
For decades object-oriented programming has been sold (perhaps over sold) as the logical programming paradigm which provides “the way" to software reuse and reductions in the cost of software maintenance as if it comes for free with the simple selection of the an OO language. Even with the renewed interests in functional languages, the majority of development shops are predominately using object-oriented languages such as Java, C#, and Ruby. So most likely you are using an OO language… How is that reuse thing going? Is your organization realizing all the promises? Even as a former Rational Instructor of OOAD and a long time practitioner, I find great value in returning to the basics. This session is a return to object-oriented basics.
Web Security Workshop
As a web application developer, most of the focus is on the user stories and producing business value for your company or clients. Increasingly however the world wide web is more like the wild wild web which is an increasingly hostile environment for web applications. It is absolutely necessary for web application teams to have security knowledge, a security model and to leverage proper security tools.
Brian Sletten - Forward Leaning Software Engineer
NetKernel: Making IT Matter Again
The premise of Nicholas Carr's "Does IT Matter?" book was that if everyone uses the same tools, processes, products, etc., is there any competitive advantage to be had from the average IT organization?
NetKernel represents a fundamentally different approach to building systems. It takes what we like about Unix, REST and SOA and mixes it together. It inexplicably changes everything while allowing you to reuse existing code, services and libraries. Not only can it make building the kinds of systems you are building today easier, it does it more efficiently, with less code and a far more scalable runway to allow you to take advantage of the emerging multi-core, multi-CPU hardware that is coming our way.
Semantic Web Workshop
The Web is changing faster than you can imagine and it is going to continue to do so. Webs of Documents are giving way to machine-processable Webs of Information. We no longer care about data containers, we only care about data and how it connects to what we already know.
Perhaps the concepts of the Semantic Web initiative are new to you. Or perhaps you have been hearing for years how great technologies like RDF, SPARQL, SKOS and OWL are and have yet to see anything real come out of it.
Whether you are jazzed or jaded, this workshop will provide you with the understanding of a technological tidal wave that is heading in your direction.
Visualizing Data on the Web
We are far from the early days of ugly HTML. We have sophisticated visualization tools available to us now to help our users consume complex data in attractive and informative ways.
Come hear how you can adopt these visualization systems (calling them libraries is inappropriate) today.
Venkat Subramaniam - Founder of Agile Developer, Inc.
Applying Groovy Closures for fun and productivity
You can program higher order functions in Groovy quite easily using closures. But the benefits of closures go far beyond that. Groovy has a variety of capabilities hidden in closures.
Automated testing tools and techniques for JavaScript
Programmers often complain that it is hard to automate unit and acceptance tests for JavaScript. Testability is a design issue and with some discipline and careful design we can realize good automated tests.
Creating DSLs in Groovy
Domain Specific Languages have two main characteristics, fluency and context. Creating external DSLs has the advantage of good validation. However, we have to struggle with parsers. Internal DSLs offer the benefit of using the language as the host and its compiler as the parser. For a language to be a host, it needs two important characteristics: low-ceremony and metaprogramming.
Mastering JavaScript
JavaScript is one of those very powerful languages that is often misunderstood and underutilized. It's quite popular, yet there's so much more we can do with it.
Programming Concurrency with Akka
I call the JDK concurrency API as the synchronize and suffer model. Fortunately, you don't have to endure that today. You have some nice options, brought to prominence on the JVM by Scala and Clojure.
Programming with HTML 5
Developing a rich user interface for web applications is both exciting and challenging. HTML 5 has closed the gaps and once again brought new vibe into programming the web tier. Come to this session to learn how you can make use of HTML 5 to create stellar applications.
Scala for the Intrigued
Scala is a statically typed, fully OO, hybrid functional language that provides highly expressive syntax on the JVM. It is great for pattern matching, concurrency, and simply writing concise code for everyday tasks. If you're a Java programmer intrigued by this language and are interested in exploring further, this section is for you.
Craig Walls - Author of Spring in Action
Building Next Generation Apps Workshop
For a long while, we've built applications pretty much the same way. Regardless of the frameworks (or even languages and platforms) employed, we've packaged up our web application, deployed it to a server somewhere, and asked our users to point their web browser at it.
But now we're seeing a shift in not only how applications are deployed, but also in how they're consumed. The cost and hassle of setting up dedicated servers is driving more applications into the cloud. Meanwhile, our users are on-the-go more than ever, consuming applications from their mobile devices more often than a traditional desktop browser. And even the desktop user is expecting a more interactive experience than is offered by simple page-based HTML sites.
With this shift comes new programming models and frameworks. It also involves a shift in how we think about our application design. Standing up a simple HTML-based application is no longer good enough.
Client-Side MVC: Web and Mobile Development with Spine.js
In this session, we'll start with an empty directory and use Spine.js to create an interactive client-side web application. Then we'll leverage what we learned to build a mobile web application with a native feel that can be deployed either through a phone's web browser or via native wrapper frameworks such as Apache Cordova (aka, PhoneGap).
Effective Spring Workshop
After 9 years and several significant releases, Spring has gone a long way from challenging the then-current Java standards to becoming the de facto enterprise standard itself. Although the Spring programming model continues to evolve, it still maintains backward compatibility with many of its earlier features and paradigms. Consequently, there's often more than one way to do anything in Spring. How do you know which way is the right way?
Securing the Modern Web with OAuth
Web security is nothing new. As users of the web, we're all accustomed to entering our usernames and fumbling to recall our passwords when trying to access private data on one of the many online services we use. But while traditionally web security could be described as a two-party process between a web application and a user, the modern web involves applications that seek to access other applications on behalf of their users. This presents some new challenges in keeping a user's sensitive data secure while still allowing a the third party application to access it.
OAuth is an open standard for authorization, supported by many online services, that allows one application to access a user's data in another application, all while giving the user control of what information is shared.
Spring Data Workshop
In recent years, there has been a renewed interest in how data is stored. Although RDBMS has long been treated as a one-size-fits-all solution for data storage, a new breed of datastores has arrived to offer a best-fit solution. Key-value stores, column stores, document stores, graph databases, as well as the traditional relational database are options to consider.
With these new data storage options come new and different ways of interacting with data. Even though all of these data storage options offer Java APIs, they are widely different from each other and the learning curve can be quite steep. Even if you understand the concepts and benefits of each database type, there's still the huge barrier of understanding how to work with each database's individual API.
Spring Data is a project that makes it easier to build Spring-powered applications that use new data, offering a reasonably consistent programming model regardless of which type of database you choose. In addition to supporting the new "NoSQL" databases such as document and graph databases, Spring Data also greatly simplifies working with RDBMS-oriented datastores using JPA.
James Ward - Developer Advocate, Typesafe
Practicing Continuous Delivery on the Cloud
This session will teach you best practices and patterns for doing Continuous Delivery / Continuous Deployment in Cloud environments. You will learn how to handle schema migrations, maintain dev/prod parity, manage configuration and scaling.
Running Java, Play! & Scala Apps on the Cloud Workshop
Heroku is a Polyglot Cloud Application Platform that makes it easy to deploy Java, Play! and Scala apps on the cloud. Deployment is as simple as doing a "git push".
Play vs. Grails Smackdown
In this session, Matt and James will develop two apps that do the same thing. One will be written in Grails and one will be written in Play. We'll deploying them to Heroku and hammer them to see how they both perform under load. Afterward, we'll compare performance, lines of code, etc. Who will be declared the winner?!
Johnny Wey - Lead Principal Engineer with MapVine
Intelligently Organizing Large JavaScript Projects
Using the same techniques we've learned over the last decade of Java and other OO languages, find out how to think about and organize a large JavaScript code base intelligently.
WebSockets Overview
Ever wanted to send a realtime "push" message from a server to a client running in a browser? Send messages from one client to another? Write realtime games and other demanding applications using JavaScript?
Oleg Zhurakousky - Principal Architect w/Hortonworks
Enterprise Integration Patterns with Spring Integration
In this workshop Oleg will give a short overview of the Enterprise Integration Patterns (EIP) as catalogued in the highly influential book of the same name and Spring Integration (SI) framework. As one of the core developers of the Spring Integration(SI) framework, Oleg will provide a quick introduction of Spring Integration, its API and will demonstrate how SI enables the development of Message and Event based systems. Along the way, you will see how SI builds upon familiar Spring idioms such as interceptors, templates, strategy and other patterns. You will also see how SI maximizes reuse of the integration support available in the Spring Framework core for everything from remoting, JMS/AMQP, data, transactions, task execution and others flattening the learning curve considerably for those already familiar with Spring framework.
Messaging in the cloud - why do i care?
"Cloud" is forcing a fundamental shift in enterprise application architecture towards a highly distributed, highly parallelized, horizontal scale-out services model. Traditional means of scale-out based on the RPC and JEE deployment model are showing their limitations when it comes to the "cloud". Over the past several years, with the emergence of simple J2SE-based frameworks, open TCP and non-blocking-I/O-based messaging/eventing middleware, and noSQL data stores, it is easier than ever to deliver simple and cost-effective solutions that enable the flexible distribution and parallelization of your business applications in the cloud. This new breed of middleware allows you to base your cloud application architecture on distributed light-weight Java-based components that use simple, open messaging and eventing for inter-process collaboration.
Principal Software Engineer at Red Hat, Author and Open Source Advocate
As Principal Software Engineer at Red Hat, Dan serves as the JBoss Community liaison, leads the JBoss Testing Initiative and is a member of the Arquillian, ShrinkWrap and JBoss Forge projects. He authored Seam in Action (Manning), served as a representative for Red Hat on the JSR-314 Expert Group (JSF 2.0), writes for IBM developerWorks and NFJS magazine and is an internationally recognized speaker. He's appeared at major industry conferences including JavaOne, Devoxx, NFJS, JAX and Jazoon and has received recognition as a JavaOne Rock Star, a JBossWorld Top Presenter and a JAX Hall of Fame speaker.
To colleagues, Dan's known for his hard work and passion for Open Source technologies. His technical expertise includes Java frameworks (Seam, CDI, Weld, JSF, EJB 3, JPA, Hibernate, Spring), testing frameworks (Arquillian, JUnit, TestNG, Selenium), build tools (Maven 2, Gradle, Ant) and web development (Ajax, JavaScript, CSS) and more.
You can keep up with Dan's discoveries by reading his blogs at http://mojavelinux.com and http://community.jboss.org/people/dan.j.allen/blog or tracking what he's currently up to by following him on Twitter at http://twitter.com/mojavelinux.
Author of "Emergent Design"
Scott Bain is a 35+-year veteran in computer technology, with a background in development, engineering, and design. He has also designed, delivered, and managed training programs for certification and end-user skills, both in traditional classrooms and via distance learning. Scott teaches courses and consults on Agile Analysis and Design Patterns, Advanced Software Design, and Sustainable Test-Driven Development. Scott is a frequent speaker at developer conferences. He is the author of "Emergent Design: The Evolutionary Nature of Professional Software Development" which won a Jolt Productivity Award. He is also one of the co-authors of Essential Skills for the Agile Developer. Both books are available from Addison Wesley/Pearson Education. He is currently writing, with Amir Kolsky, Sustainable Test-Driven Development.
Evangelist/hacker for hackNY
Peter is an evangelist and hacker for hackNY - a not-for-profit that aims to federate the next generation of hackers for the New York innovation community.
Peter is a regular presenter at national and international conferences on ruby, nodejs, NoSQL (especially MongoDB and neo4j), cloud computing, software craftsmanship, java, groovy, javascript, and requirements and estimating. He is on the program committee for Code Generation in Cambridge, England and the Domain Specific Modeling workshop at SPLASH (was ooPSLA) and reviews and shepherds proposals for the BCS SPA conference.
He has presented at a range of conferences including DLD conference, ooPSLA, RubyNation, SpringOne2GX, Code Generation, Practical Product Lines, the British Computer Society Software Practices Advancement conference, DevNexus, cf.Objective(), CF United, Scotch on the Rocks, WebDU, WebManiacs, UberConf, the Rich Web Experience and the No Fluff Just Stuff Enterprise Java tour.
He has been published in IEEE Software, Dr. Dobbs, IBM developerWorks, Information Week, Methods & Tools, Mashed Code, NFJS the Magazine and GroovyMag. He's currently writing a book on managing software development for Pearson.
He is an organizer of the CTO School http://www.ctoschool.org - an organization in NYC devoted to creating the next generation of technical leaders. He also organizes the node.js meetup in New York and co-organizes the Domain Driven Design and Grails meetups.
He is a regular instructor at General Assembly in New York. His presentations cover managing software development, NoSQL, mobile development, Javascript development, Twitter Bootstrap and Javascript frameworks.
He tweets regularly as @peterbell.
Tim is a full-stack generalist and passionate teacher who loves working with people as much as he loves to code. He believes the best developer is one who is well-informed of specifics and can also make deep connections between software development and the broader world. He has recently been exploring non-relational data stores, why professionalized product management is a global suboptimization, and of course everything related to Git. He does not really believe that it is possible to teach, but rather believes that it is his responsibility to create an environment in which people can learn.
He is also a poet, having composed and produced companion videos for Oh, The Methods You'll Compose and The Maven, with another project currently in the works. If you've been in his Git classes, you've seen some famous poems make their way into the world's best version control system.
Tim is a speaker internationally and on the No Fluff Just Stuff tour in the United States, and is co-president of the Denver Open Source User Group, author of the Gradle Liquibase Plugin, the maintainer of the Ratpack web framework, co-presenter of the best-selling O'Reilly Git Master Class, co-author of Building and Testing with Gradle, a member of the O'Reilly Expert Network, and a member of the GigOM Pro Analyst Network. He occasionally blogs at timberglund.com.
He lives in Littleton, CO, USA with the wife of his youth and their three children.
Agile and Scrum Coach
Mr Bradley is an experienced Scrum Coach, Certified Scrum Professional, Certified ScrumMaster, and Certified Professional ScrumMaster I. In addition to his Scrum credentials, Mr. Bradley is also a highly capable, full lifecycle experienced, software development team lead that prefers XP for good engineering practices. He is Sun Certified in Java, and has 13 years of experience in J2EE application development across all tiers. More recently he has also picked up some good C# experience as well. In his spare time, he enjoys driving his wife crazy by talking about Scrum, especially when he refers to his “honey do” list as his “personal backlog” and asks his wife to prioritize her requests. He lives in Denver, Colorado, and he is easily found on LinkedIn.
Lead on Project Kotlin
Andrey is the lead language designer working on Project Kotlin at JetBrains (http://kotlin.jetbrains.org/). He also works on making the Java language better, serving as a Java Community Process expert in a group for JSR-335 ("Project Lambda"). In what spare time is left he tries to make sure that his traveling is not all about work and teaches programming to high-school children. Used to teach OOP/Software Design at a university, but currently switched to speaking at software conferences. Audiences of Devoxx, OSCON, StrangeLoop, Jfokus and other events gave warm reception to his talks on Kotlin, programming languages and foundations of software engineering.
Core Member of the Grails Development Team
Core member of the Grails development team, Jeff Scott Brown, is a Senior Software Engineer with SpringSource. Jeff has been involved in designing and building object oriented systems for over 15 years. Jeff's areas of expertise include web development with Groovy & Grails, Java and agile development.
Cloud Guy at Netflix
Adrian is an active member of cloud interoperability, REST, and DevOps
circles. He is the founder of two popular open source projects:
jclouds and denominator, both of which are java libraries that help
create portable cloud deployments. His current title is "cloud guy"
at Netflix, focused on programmatic edge infrastructure.
Principal Engineer @ Gradleware
Luke Daley is a member of the Gradleware engineering team. At Gradleware Luke works on Gradle (A JVM based build automation tool) and helps teams reach new levels of project automation and quality.
Luke is the lead of the Geb project (a productivity focussed Groovy browser automation/web testing tool) project which he created in 2010. You'll also find Luke contributing to other Open Source projects such as Grails (a Groovy web development framework), Spock (a next generation testing framework for the JVM) and anything else that catches his attention.
Founder of Gradle and CEO of Gradleware
Hans Dockter is the founder and project lead of the Gradle build system and the CEO of Gradleware, a company that provides training, support and consulting for Gradle and all forms of enterprise software project automation in general.
Hans has 13 years of experience as a software developer, team leader, architect, trainer, and technical mentor. Hans is a thought leader in the field of project automation and has successfully been in charge of numerous large-scale enterprise builds. He is also an advocate of Domain Driven Design, having taught classes and delivered presentations on this topic together with Eric Evans. In the earlier days, Hans was also a committer for the JBoss project and founded the JBoss-IDE.
Johan Edstrom is an open source software evangelist, Apache developer and seasoned architect; he has created Java architectures for large scalable, high transaction monitoring, financial and open source systems.
Johan has worked as development lead, infrastructure manager, IT lead, programmer and guided several large companies to success in the use of open source software components.
Lately he has been helping some of the worlds largest networking companies and medical startups achieve high availability, scalability and dynamically adapting SOA systems.
VP of Engineering for VirtualTourist.com
Todd is a 15 year veteran of the Java development and has 4 years of professional Grails development experience. He is currently the V.P. of Engineering for VirtualTourist.com a TripAdvisor Media Group Company. In 2008, VirtualTourist.com was acquired by TripAdvisor/Expedia(EXPE), and Todd was brought in to lead a team of Java/Groovy/Grails engineers in the redevelopment effort. A graduate of the University of Arizona, with a B.S. in Computer Engineering, and an MBA from ASU with an emphasis on management of the creative software engineering process. When he is not actively writing code for his own startup ideas, you will find him entertaining his daughters or getting lost in a glass of wine, both of which usually lead to other crazy coding ideas like this one: "What would happen if I did a screencast of writing the same web application in eight different languages?" -- www.betterwebapp.com
Founder of Mockito
Szczepan Faber is a software craftsman professionally involved in IT since early 2000. He worked for Thoughtworks UK helping companies to build enterprise software using XP methods. He was a team leader and an agile coach for Sabre Holdings where he relentlessly pushed teams for more agility, effective processes and state-of-art development environment. Szczepan specializes in an enterprise project automation, developer tools and agile engineering practices. His passion for agile testing and TDD led him to author or contribute to numerous open source tools in programming languages ranging from Groovy, Java, JavaScript to Flex or Python.
Szczepan is a founder of Mockito framework, a popular mocking library that augments Test Driven Development. Szczepan has been speaking at international conferences and delivered various trainings on agile programming techniques and project automation.
Application Architect at ThoughtWorks, Inc.
Neal is Director, Software Architect, and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery.
Before joining ThoughtWorks, Neal was the Chief Technology Officer at The DSW Group, Ltd., a nationally recognized training and development firm. Neal has a degree in Computer Science from Georgia State University specializing in languages and compilers and a minor in mathematics specializing in statistical analysis.
He is also the designer and developer of applications, instructional materials, magazine articles, video presentations, and author of 6 books, including the most recent The Productive Programmer. His language proficiencies include Java, C#/.NET, Ruby, Groovy, functional languages, Scheme, Object Pascal, C++, and C. His primary consulting focus is the design and construction of large-scale enterprise applications. Neal has taught on-site classes nationally and internationally to all phases of the military and to many Fortune 500 companies. He is also an internationally acclaimed speaker, having spoken at over 100 developer conferences worldwide, delivering more than 600 talks. If you have an insatiable curiosity about Neal, visit his web site at http://www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.
Java/Ruby Developer/Language Geek
Raju Gandhi is a Java/Ruby developer and a programming language geek. He has been writing software for the better part of a decade in several industries including education, finance, construction and the manufacturing sector. Raju has a graduate degree in Industrial Engineering from Ohio University. In his spare time you will find Raju reading, or watching movies, or playing with yet another programming language. He is affectionately known as looselytyped on Twitter.
Java Open Source Consultant
Jeff Genender is a Java Champion, Apache Member, and Java Open Source consultant specializing in SOA and enterprise service implementation. Jeff has over 23 years of software architecture, team lead, and development experience in multiple industries. He is a frequent speaker at such events as TheServerSide Symposium, JavaZone, Java In Action, JavaOne, JFokus, and numerous Java User Groups on topics pertaining to Enterprise Service Bus (ESBs), Service Oriented Architectures (SOA), and application servers.
Jeff is an active committer and Project Management Committee (PMC) member for Apache ServiceMix, CXF, Geronimo, a comitter on OpenEJB and Mina, and author of several very popular Mojo (Maven plugins). He is the author of Enterprise Java Servlets (Addison Wesley Longman, 2001), co – author of Professional Apache Geronimo (2006, Wiley), and co-author of Professional Apache Tomcat (2007, Wiley). Jeff also serves as a member of the Java Community Process (JCP) expert group for JSR-342 (Java Platform, Enterprise Edition 7 (Java EE 7) Specification) as a representative of the Apache Software Foundation.
Jeff is an open source evangelist and has successfully brought open source development efforts, initiatives, and success stories into a number of Global 2000 companies, saving these organizations millions in licensing costs.
Architect for SaveLocal.com at Constant Contact
Jerry Gulla is the Architect for SaveLocal.com from Constant Contact - Massachusetts‘ largest SaaS company. He fell in love with hacking both hardware and software more than 20 years ago after getting his first computer, a TRS-80 Model I. He’s worked at companies large and small, including Sun/Javasoft, as well as several small startups. Jerry is passionate about technology and has developed software for everything from the simulator for the B-2 stealth bomber all the way to HTML5 applications for modern smartphones.
His latest interests brings him into the mobile web as well as the world of alternative languages on the JVM, where he’s leveraging the power of dynamic languages and modern frameworks to rapidly deliver new applications for both mobile devices and the desktop.
Android Expert
James is an experienced Java developer and has spent a majority of his career building large-scale online applications at Accenture and at several Web-centric consulting firms. He now specializes in training Java developers to be more productive by using the latest technologies and frameworks. Jim has provided training for Fortune 500 companies and large private and governmental organizations including Knight Ridder Newspapers and the State of Wisconsin. He lectures extensively throughout the United States and Canada. He is also the author of "Dojo: Using the Dojo JavaScript Library to Build Ajax Applications".
James is also the founder and principal contributor to the site AndroidDevTools.com
co-author of "Lucene in Action"
Erik Hatcher is the co-author of "Lucene in Action" as well as co-author of "Java Development with Ant". Erik has been an active member of the Lucene community - a leading Lucene and Solr committer, member of the Lucene Project Management Committee, member of the Apache Software Foundation as well as a frequent invited speaker at various industry events. Erik co-founded and works as a Senior Solutions Architect at LucidWorks.
Developer, Consultant, Author & Mobility Expert
Christopher Judd is the president and primary consultant for Judd Solutions (http://www.juddsolutions.com), an international speaker, an open source evangelist, the Central Ohio Java Users Group (http://www.cojug.org) and Columbus iPhone Developer User Group leader, and the co-author of Beginning Groovy and Grails (Apress, 2008) as well as the author of the children’s book “Bearable Moments”. He has spent 16 years architecting and developing software for Fortune 500 companies in various industries, including insurance, retail, government, manufacturing, service, and transportation. His current focus is on consulting, mentoring, and training with Java, Java EE, Groovy, Grails, Cloud Computing and mobile platforms like iPhone, Android, Java ME and mobile web.
Open Source Evangelist
Heath Kesler is an open source software evangelist, developer and architect; he has created Java architectures for large scalable, high transaction load systems for such companies as Health Language, LeapFrog Enterprises, AT&T, Timera, and IBM.
Heath has been a team lead in many project recovery implementations, helping to rescue systems on the verge of collapse. He was recently involved with the implementation of the customer account creation and third-party integration on mission-critical systems for the largest educational products provider in the United States. Heath enjoys pushing the envelop by finding new ways to implement solutions using cutting edge technologies for old problems.
Heath has spoken at conferences all over the world and enjoys any opportunity to discuss the latest technologies with those who share in his passion.
Author of Secure Coding in Java/JEE
Frank Kim is the curriculum lead for software security at the SANS Institute as well as the founder of ThinkSec. Frank has over fifteen years of experience in software development, information technology, and security. He has designed and developed applications for large healthcare, technology, insurance, and consulting companies. Frank currently focuses on security strategy and application security program development with a special interest in integrating security into the software development life cycle. Frank is the author of the SANS Institute's Secure Coding in Java course. He has spoken internationally at events like JavaOne, Devoxx, Jazoon, and UberConf and was twice named a JavaOne Rock Star.
Author of "Making Java Groovy"
Ken Kousen is the President of Kousen IT, Inc., through which he does technical training, mentoring, and consulting in all areas of Java and XML. He is the author of the O'Reilly screencast "Up and Running Groovy", and the upcoming Manning book about Java/Groovy integration, entitled "Making Java Groovy".
He has been a tech reviewer for several books on software development. Over the past decade he's taught thousands of developers in business and industry. He is also an adjunct professor at the Rensselaer Polytechnic Institute site in Hartford, CT. His academic background includes two BS degrees from M.I.T., an MS and a Ph.D. from Princeton, and an MS in Computer Science from R.P.I.
Head of Training, GitHub
Matthew McCullough is an energetic 15 year veteran of enterprise software development, open source education, and co-founder of Ambient Ideas, LLC, a Denver consultancy. Matthew currently is VP of Training at GitHub.com, author of the Git Master Class series for O'Reilly, speaker at over 30 national and international conferences, author of three of the top 10 DZone RefCards, and President of the Denver Open Source Users Group. His current topics of research center around project automation: build tools (Gradle), distributed version control (Git, GitHub), Continuous Integration (Jenkins, Travis) and Quality Metrics (Sonar). Matthew resides in Denver, Colorado with his beautiful wife and two young daughters, who are active in nearly every outdoor activity Colorado has to offer.
CTO TripLingo & Code Hacker
Pratik Patel is the CTO of Atlanta based TripLingo (http://www.triplingo.com/). He wrote the first book on 'enterprise Java' in 1996, "Java Database Programming with JDBC." He has also spoken at various conferences and participates in several local tech groups and startup groups. He's in the startup world now and hacks iOS, Android, HTML5, CSS3, JavaScript, Rails, and ..... well everything except Perl.
Pratik's specialty is in large-scale applications for mission-critical and mobile applications use. He has designed and built applications in the retail, health care, financial services, and telecoms sectors. Pratik holds a master's in Biomedical Engineering from UNC, has worked in places such as New York, London, and Hong Kong, and currently lives in Atlanta, GA.
Sr. UI Architect and Creator of AppFuse
Matt Raible has been building web applications for most of his adult life. He started tinkering with the web before Netscape 1.0 was even released. For the last 15 years, Matt has helped companies adopt open source technologies (Spring, Hibernate, Apache, Struts, Grails, Bootstrap, jQuery) and use them effectively. Matt has been a speaker at many conferences worldwide, including Devoxx, The Rich Web Experience, Jfokus, No Fluff Just Stuff, and a host of others.
Matt is an author (Spring Live and Pro JSP), and an active "kick-ass technology" evangelist on raibledesigns.com. He is the founder of AppFuse, a project which allows you to get started quickly with Java open source frameworks, as well as a committer on the Apache Roller and Apache Struts projects.
Matt has had quite a ride in the past few years, serving as the Lead UI Architect for LinkedIn, the UI Architect for Evite.com and the Chief Architect of Web Development at Time Warner Cable. He currently consults as a UI Architect for HTML5 apps at Taleo/Oracle.
Author of "Scala in Action"
Nilanjan is a consultant and trainer for Typesafe. He started his professional career as a software developer in 2000 using object oriented programming languages. Nilanjan has previously worked with IBM, ThoughtWorks and LivingSocial where he gained a lot of experience in managing and developing software solutions in Java/JEE, Ruby, Groovy and also in Scala. He is zealous about programming in Scala ever since he got introduced to this beautiful language. Currently he spends his spare time working on the scala-webmachine open source project (restful resource framework). In the past Nilanjan worked on other open source projects and libraries. At Typesafe he is mainly teaching and designing Scala and Play courses and helping customers to adopt these technologies. Nilanjan enjoys sharing his experience via talks at various conferences. He is also the author of the "Scala in Action" book.
Founder and Owner at Virtual Genius
Paul is a seasoned design coach and leadership mentor, helping teams ignite their design skills via DDD and BDD. He gets teams unstuck through intensive coaching workshops and hands-on pair programming, combined with focused one-on-one leadership mentoring. His company Virtual Genius is a software solutions provider, specializing in custom Ruby applications. Paul actively serves the community: co-authoring the upcoming Addison Wesley book, BDD with Cucumber, teaching classes in BDD and DDD, contributing to OSS, and co-leading the DDD Denver Meetup group.
Look for him speaking at user groups, on the No Fluff Just Stuff conference tour in the United States, and at local and international conferences. Paul is from Perth, Australia, but chooses to live, work and play with his amazing wife and two children in Denver. He tweets with an Australian accent at @ThePaulRayner and blogs at thepaulrayner.com
SOA and Integration Architect, Author of Java Message Service
Mark Richards is an Independent Consultant working in the field as an Enterprise, Integration, and Application Architect, where he is involved in the architecture, design, and implementation of SOA, EDA, messaging, and other architectures, primarily in the Java platform. Previously, Mark was an Executive IT Architect with IBM, where he worked as an SOA and enterprise architect in the financial services area. He has been involved in the software industry since 1984 and has many battle scars to show for it. Mark served as the President of the Boston Java User Group in 1997 and 1998, and the President of the New England Java Users Group from 1999 thru 2003. Mark is the author of the book Java Message Service (2nd edition) from O'Reilly. He is also the author of Java Transaction Design Strategies, contributing author of the book 97 Things Every Software Architect Should Know from O'Reilly, contributing author of NFJS Anthology Volume 1, and contributing author of NFJS Anthology Volume 2. Mark has many architect and developer certifications, including those from IBM, Sun, The Open Group, and Oracle. He is a regular conference speaker at the No Fluff Just Stuff Symposium Series and speaks at other conferences and user groups around the world. When he is not working Mark can usually be found hiking with his wife and two daughters in the White Mountains or along the Appalachian Trail.
Author, speaker, software engineer focused on user interface design.
Nathaniel T. Schutta is a senior software engineer focussed on making usable applications. A proponent of polyglot programming, Nate has written two books on Ajax and speaks regularly at various worldwide conferences, No Fluff Just Stuff symposia, universities, and Java user groups. In addition to his day job, Nate is an adjunct professor at the University of Minnesota where he teaches students to embrace dynamic languages. In an effort to rid the world of bad presentations, Nate coauthored the book Presentation Patterns with Neal Ford and Matthew McCullough.
Architect, Web Security Expert
Ken has been a practitioner and instructor of RUP since the late 1990s, and an extreme programmer and coach since the middle 2000s. Ken has worked with Fortune 500 companies to small startups in the roles of developer, designer, application architect and enterprise architect. Ken's current focus is on enterprise system automation and continuous delivery systems.
Ken is an international speaker on the subject of software engineering speaking at conferences such as JavaOne, JavaZone, Jax-India, and The Strange Loop. He is a regular speaker with NFJS where he is best known for his architecture and security hacking talks. In 2009, Ken was honored by being awarded the JavaOne Rockstar Award at JavaOne in SF, California and the JavaZone Rockstar Award at JavaZone in Oslo, Norway as the top ranked speaker.
Forward Leaning Software Engineer
Brian Sletten is a liberal arts-educated software engineer with a focus on forward-leaning technologies. His experience has spanned many industries including retail, banking, online games, defense, finance, hospitality and health care. He has a B.S. in Computer Science from the College of William and Mary and lives in Auburn, CA. He focuses on web architecture, resource-oriented computing, social networking, the Semantic Web, data science, 3D graphics, visualization, scalable systems, security consulting and other technologies of the late 20th and early 21st Centuries. He is also a rabid reader, devoted foodie and has excellent taste in music. If pressed, he might tell you about his International Pop Recording career.
Founder of Agile Developer, Inc.
Dr. Venkat Subramaniam, founder of Agile Developer, Inc., has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia. Venkat helps his clients effectively apply and succeed with agile practices on their software projects, and speaks frequently at international conferences and user groups. Venkat is also an adjunct faculty and teaches CS courses remotely at the University of Houston. He is author of ".NET Gotchas," coauthor of 2007 Jolt Productivity Award winning "Practices of an Agile Developer," author of "Programming Groovy: Dynamic Productivity for the Java Developer" and "Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine" (Pragmatic Bookshelf).
Author of Spring in Action
Craig Walls is a senior engineer with SpringSource as the Spring Social project lead and is the author of Spring in Action and XDoclet in Action (both published by Manning) and Modular Java (published by Pragmatic Bookshelf). He's a zealous promoter of the Spring Framework, speaking frequently at local user groups and conferences and writing about Spring and OSGi on his blog. When he's not slinging code, Craig spends as much time as he can with his wife, two daughters, 2 birds and 3 dogs.
Developer Advocate, Typesafe
James Ward (www.jamesward.com) works for Typesafe where he teaches developers the Typesafe Stack (Play Framework, Scala, and Akka) . James frequently presents at conferences around the world such as JavaOne, Devoxx, and many other Java get-togethers. Along with Bruce Eckel, James co-authored First Steps in Flex. He has also published numerous screencasts, blogs, and technical articles. Starting with Pascal and Assembly in the 80′s, James found his passion for writing code. Beginning in the 90′s he began doing web development with HTML, Perl/CGI, then Java. After building a Flex and Java based customer service portal in 2004 for Pillar Data Systems he became a Technical Evangelist for Flex at Adobe. In 2011 James became a Principal Developer Evangelist at Salesforce.com where he taught developers how to deploy apps on the cloud with Heroku. James Tweets as @_JamesWard and posts code at github.com/jamesward.
Lead Principal Engineer with MapVine
Johnny has been working with web technologies for over ten years. He is currently the lead principal at a new startup in the Denver area called MapVine.
Before coming to MapVine, he functioned as the lead engineer on the Common Services Tier at Time Warner Cable. This tier provided services and a common API for everything from streaming video to scheduling billing orders and had over a dozen constituent applications. Combined with other customer-facing portals, the traffic on sites Johnny was responsible for was well into the millions of requests per day. Prior to working at Time Warner Cable, Johnny helped create the primary OSS at Dash Carrier Services resulting in a VOIP platform that powered the nations leading next generation emergency network.
Johnny lives in Denver with his wife and son. He enjoys riding his bike and playing music and volunteers monthly at a local recovery organization in the north Denver area.
Principal Architect w/Hortonworks
Oleg is a Principal Architect with Hortonworks responsible for architecting scalable BigData solutions using various OpenSource technologies available within and outside the Hadoop ecosystem. Before Hortonworls Oleg was part of the SpringSource/VMWare where he was a core engineer working on Spring Integration framework, leading Spring Integration Scala DSL and contributing to other projects in Spring portfolio. He has 17+ years of experience in software engineering across multiple disciplines including software architecture and design, consulting, business analysis and application development. Oleg has been focusing on professional Java development since 1999. Since 2004 he has been heavily involved in using several open source technologies and platforms across a number of projects around the world and spanning industries such as Teleco, Banking, Law Enforcement, US DOD and others.
As a speaker Oleg presented seminars at dozens of conferences worldwide (i.e.SpringOne, JavaOne, Java Zone, Jazoon, Java2Days, Scala Days, Uberconf, and others).











































