Blog

A collection of blog posts and personal anecdotes.

October 9, 2016 • Career

Goodbye, Lightbend

It’s been an incredible two-and-a-half years.

April 26, 2016 • Process

The Zen of Process

Process improvement is the most impactful way to rise above your individual work and impact the overall capacity of the company you work for. All organizations live and die by the quality of their processes.

April 16, 2015 • Architecture

Reflecting on Reactive Systems

Reactive systems are at the heart of a new breed of enterprise system that fully embraces modern infrastructure.

August 6, 2014 • Architecture

Retrospective: A Night of Reactive Programming

I hosted the first event for ReactiveTO on July 24th. It was fantastic evening filled with great talks on reactive programming principles, microservices, Akka, and ReactiveCocoa.

November 15, 2013 • Process

Agile and Waterfall can live together in harmony

Agile is challenging to use on certain projects, like those bound by fixed-price, fixed-date contracts. Agencies, governments, and other organizations who are bound by contracts struggle to implement Agile effectively. We'll explore ways that we can borrow the best processes from Agile when we're bound by the limitations of fixed-price contracts and statements of work.

September 11, 2012 • Process

Migrating to Git, Part 3: Moving your code to Git

If you're ready to proceed with a migration to Git, congratulations! You're about to start using one of the best development tools available. In this third part of the series we'll explore the actual migration and how it will impact your workflow in the future.

September 10, 2012 • Process

Migrating to Git, Part 2: Prerequisites

Changing version control systems is not a trivial undertaking. Certain technical debt should not exist in your code base to ensure a smooth transition. This is a checklist to help make sure your team is prepared to move to Git.

September 9, 2012 • Process

Migrating to Git, Part 1: Advantages

Git is simply one of the best things that’s happened to the development workflow in a decade; if you choose to master it. The first in this three part series will begin your journey from Git novice to Git master.

July 2, 2012 • Career

Joy at QCon New York

Joy isn't the typical emotion that comes to mind when one pictures enterprise software and enterprise software developers, but technical culture is changing rapidly and more people are recognizing the business value of joy. It's an exciting time to be a software developer.

November 2, 2011 • Code

Multiplayer tic-tac-toe in Java using the WebSocket API, Netty (NIO), and jQuery

It was big news in 2010 when Twitter migrated their search from Ruby on Rails to Java-based Netty. Not only was it big in the news department, but it was also big in the results department: Twitter reported their search performance increased by 3x. In this post we'll explore Netty by using it to build a game of multiplayer tic-tac-toe.

December 28, 2010 • Code

Fixing Fancybox with AJAX (and Wicket)

A page I'm working on accepts multiple image uploads. Once the images are successfully processed asynchronously on the server, an image panel on the same page is automatically refreshed. The AJAX callback works fine and updates the panel view with the newly uploaded photos, but the net result is that Fancybox stops working completely.

December 26, 2010 • Code

Connection pooling with Hibernate 3.3.x and C3P0

Hibernate uses it’s own built-in connection pool out of the box. There are some pretty heavy duty sites running with the default connection pool enabled in production despite the obvious warning against doing this.

December 13, 2010 • Architecture

Beyond Java

We explore a Forrester report which asserts that Java is a dead end for enterprises and business software should be built with a 4GL such as webMethods. Let's explore why Java won't disappear from the enterprise any time soon.

November 15, 2010 • Architecture

The future of Java in the enterprise

Java is a utilitarian, status-quo ecosystem for getting things done, albeit not very quickly. This is a good thing. Instead of worrying about sharp edges, developers get to work with a very stable, very slow moving target. What's the future hold for enterprise Java developers?

September 5, 2010 • Architecture

Desire paths

A desire path represents the evolutionary nature of how people interact with their environment. An engineer designs a concrete path, but people find it more convenient to create their own. Software isn't any different. Users bump up against the limitation of an application but find their own workaround through sheer necessity.

August 22, 2010 • Code

The greatest line of code ever

Look at this piece of code to be reminded of the magnificence of code reviews. Hallelujah.

April 30, 2010 • Code

Integrating Uploadify with Java using Apache Wicket

One of the most requested features on any site that accepts file submissions is the ability to handle multiple uploads elegantly. The current HTML standard only permits one file upload at a time, which makes transferring a large number of files quite tedious. This tutorial will show how to painlessly integrate Uploadify and Java using Apache Wicket.

February 23, 2010 • Career

Be a Revolutionary

Good developers always try to deliver amazing software in spite of obstacles. The perfect methodology for our team may not integrate well with the rest of the organization. The perfect programming language may be unknown to most developers on the team. The perfect architecture may require three months to develop but the deadline is three weeks away. Good developers embrace a harmonious balance between pragmatism and idealism.

November 18, 2009 • Architecture

Apache Aries: OSGi for the Enterprise

It looks like enterprise developers are in for a real treat: the missing secret sauce that allows enterprise application developers to harness the goodness of OSGi.

October 23, 2009 • Process

Don't forget team structure

In my experience I've noticed that flexible and adaptable organizations produce flexible and adaptable applications. Rigid and inflexible organizations tend to produce rigid and inflexible applications. Co-incidence?

August 10, 2009 • Architecture

Is SOA doomed?

The spirit of SOA is fantastic; adaptable, flexible, maintainable, loosely-coupled applications supported by open governance, strong relationships between business and technology folks, and co-operation across all silos and levels of an organization. What's not to love? We'll explore the pitfalls of SOA and explore the future of SOA in the enterprise.

Publications

A collection of articles and interviews by leading technical publications that I've been featured in.

September 8, 2015 • TechRepublic

Why your company's big data is not nearly fast enough

Stream-based processing is taking over big data. Matt Asay and I chatted about “fast data” to put some context around the value of data and why speed matters.

March 15, 2015 • ReadWriteWeb

Reactive Systems: Easy To Program, Now Easier To Manage

On top of user expectations being significantly higher today than a decade ago, the pressures facing enterprise operations teams to manage resilient, responsive systems is brutal; most existing technologies available today are not designed to deploy and manage reactive systems running on clusters.

September 14, 2014 • InfoQ

Actor-based Concurrency for Reactive Systems

According to reactive manifesto, reactive applications are built on four guiding principles: responsiveness, resiliency, scalability, and message-driven architecture. In Kevin’s view, those four guiding principles are closely related in that both resiliency and scalability are necessary qualities to ensure that a system remains responsive, i.e., “quick to react to users,” under varying working conditions and loads.

September 13, 2014 • Microsoft Open Technologies

Reactive Programming at Microsoft

Typesafe has extended their Reactive Maps Activator template to Azure, which enables easy deployment of Java-based technologies such as Scala, the Play Framework and the Akka Toolkit on Microsoft Azure. MS Open Tech has also published a tutorial on using the Play Framework with Azure.

Interested in meeting?

I organize a few local groups for programmers in the Toronto area. If you'd like to meet in person, feel free to come out to one of these events.

Interested in chatting?

I'm located in Toronto, Canada. If you're interested in learning more about anything I've published and would like to meet via Skype or have a coffee in Toronto, feel free to contact me at one of the links below.

Email

LinkedIn

Twitter