I began speaking at developers conferences in 1996 after attending a few. Since then, I've spoken at several a year every year, expanding to other countries. I enjoy speaking at these conferences, and the (generally) interesting travel opportunities they afford me.
| Year |
Conference
|
Location
|
Type
|
Paper
|
Talk #
|
|
1997
|
Borland | Nashville | Session | Alternative Architectures for C++Builder Applications |
1
|
|
|
Session | Creating C++Builder Components |
2
|
||
|
1998
|
Borland | Denver | Session | Multi-Tier Application Development in JBuilder |
3
|
|
|
Session | Multi-tier C++Builder Development for the Internet |
4
|
||
|
|
Session | Multi-Tier Architecture in C++Builder |
5
|
||
|
|
Session | Multi-Threaded Queries in C++Builder |
6
|
||
|
|
Pre-conference Tutorial | Intro to Java |
7
|
||
|
1999
|
Borland | Philadelphia | Session | Multi-Threaded Queries in VCL |
8
|
|
|
Pre-conference Tutorial | Intro to Java |
9
|
||
|
|
Pre-conference Tutorial | Advanced Database Development in JBuilder |
10
|
||
| Entwickler | Frankfurt, Germany | Session | Multi-Threaded Queries in the VCL |
11
|
|
| Session | Advanced Database Development in JBuilder |
12
|
|||
| Session | Introduction to Java Programming |
13
|
|||
|
2000
|
Borland | San Diego | Pre-conference Tutorial | Intro to Java |
14
|
|
|
Pre-conference Tutorial | Advanced Database Development in JBuilder |
15
|
||
|
|
Session | Advanced JBuilder Deployment Techniques |
16
|
||
|
|
Entwickler | Frankfurt, Germany | Session | Intro to Java |
17
|
|
|
Session | JBuilder for VCL developers |
18
|
||
|
|
Session | Advanced Database Development in JBuilder |
19
|
||
|
|
Session | Advanced JBuilder Deployment Techniques |
20
|
||
|
|
Session | Working with XML in Java |
21
|
||
|
|
BorCon UK | London | Session | Advanced Database Development in JBuilder |
22
|
|
|
Session | JBuilder for VCL developers |
23
|
||
|
|
Session | Working with XML in Java |
24
|
||
|
|
BorCon Australia | Sydney, NSW | Pre-conference Tutorial | Intro to Java |
25
|
|
|
Session | Working with XML in Java |
26
|
||
|
|
Session | JBuilder for VCL developers |
27
|
||
|
|
Session | Advanced Database Development in JBuilder |
28
|
||
|
2001
|
JAX (Java, Apache, XML) |
Frankfurt, Germany | Session | Working with XML in Java |
29
|
|
|
Session | Working with Apache's Ant |
30
|
||
|
|
Session | Working with Struts |
31
|
||
|
|
Session | Advanced Java and XML for Web Development |
32
|
||
|
|
Session | Design Patterns for Web Development |
33
|
||
|
|
JavaOne | San Francisco, CA | Session | Performance Tuning in Java |
34
|
|
|
Borland | Long Beach, CA | Pre-conference Tutorial | Intro to Java |
35
|
|
|
Session | Performance Tuning in Java |
36
|
||
|
|
Session | Advanced JBuilder Deployment Techniques |
37
|
||
|
|
Session | Automating Enterprise Development in Java |
38
|
||
| BorCon Europe | London | Session | Building Custom Providers and Resolvers |
39
|
|
| Session | Working with XML in Java |
40
|
|||
| Session | Using XSLT to Extend the Functionality of Wireless Devices |
41
|
|||
|
|
Amsterdam | Session | Building Custom Providers and Resolvers |
42
|
|
|
|
Session | Working with XML in Java |
43
|
||
|
|
Session | Using XSLT to Extend the Functionality of Wireless Devices |
44
|
||
|
|
Entwickler | Frankfurt, Germany | Pre-conference Tutorial | Web Development in Java |
45
|
|
|
Pre-conference Tutorial | Survey of Enterprise Java |
46
|
||
|
|
Session | JBuilder for VCL developers |
47
|
||
|
|
Session | Advanced JBuilder Deployment Techniques |
48
|
||
|
|
Session | Automating Enterprise Development in Java |
49
|
||
|
|
Session | Design Patterns for Web Development |
50
|
||
|
|
Session | Building Custom Providers and Resolvers |
51
|
||
|
|
Session | Working with XML in Java |
52
|
||
|
|
BorCon Australia | Melbourne, VIC | Pre-conference Tutorial | Intro to Java |
53
|
|
|
Session | Advanced JBuilder Deployment Techniques |
54
|
||
|
|
Session | Automating Enterprise Development in Java |
55
|
||
|
|
Session | JBuilder for VCL developers |
56
|
||
|
|
Session | Performance Tuning in Java |
57
|
||
|
|
Session | Working with XML in Java |
58
|
||
|
2002
|
JAX | Frankfurt, Germany | Workshop | Web Development in Java |
59
|
|
|
Session | Working with Ant |
60
|
||
|
|
Session | Working with XML in Java |
61
|
||
|
|
Session | Using XSLT to Extend the Functionality of Wireless Devices |
62
|
||
|
|
Session | Working with the Struts Framework |
63
|
||
|
|
Session | Design Patterns for Web Development |
64
|
||
|
|
Borland | Anaheim, CA | Pre-conference Tutorial | Intro to Java |
65
|
|
|
Session | Building Custom Providers and Resolvers |
66
|
||
|
|
Session | Configuration Management for Complex Applications |
67
|
||
|
|
Session | J2EE Best Practices |
68
|
||
|
|
BorCon Australia | Sydney, NSW | Pre-conference Tutorial | Web Development in Java |
69
|
|
|
Session | J2EE Best Practices |
70
|
||
|
|
Session | Design Patterns for Web Development |
71
|
||
|
|
Comdex Atlanta | Atlanta | Session | Building Web Services with Java |
72
|
|
|
Entwickler | Frankfurt, Germany | Workshop | Web Development in Java |
73
|
|
|
Session | Building Custom Providers and Resolvers |
74
|
||
|
|
Session | Working with Struts in JBuilder |
75
|
||
|
|
BorCon Europe | London, UK | Session | J2EE Best Practices |
76
|
|
|
Session | Using XSLT to Extend the Functionality of Wireless Devices |
77
|
||
|
|
Session | Working with Struts in JBuilder |
78
|
||
|
|
Comdex Fall | Las Vegas, NV | Session | Building Web Services with Java |
79
|
|
|
Session | Programming Web Services beyond Connectivity and Moving to Information Exchange |
80
|
||
|
2003
|
BorCon Europe | Amsterdam | Pre-conference Tutorial | Art of Java Web Devleopment |
81
|
|
|
Session |
Working with Struts in JBuilder Part 1 |
82
|
||
|
|
Session | Working with Struts in JBuilder Part 1 |
83
|
||
|
|
Session | Working with XML in Java |
84
|
||
|
|
Entwickler 7 | Frankfurt | Session | Working with Struts in JBuilder Part 1 |
85
|
|
|
Session | Working with Struts in JBuilder Part 1 |
86
|
||
|
|
Session | Working with XML in Java |
87
|
||
|
|
BorCon US | San Jose, CA | Pre-conference Tutorial | Intro to Java |
88
|
|
|
Session | J2EE Design Strategies |
89
|
||
|
|
Comdex Fall | Las Vegas, NV | Panel | Web Services Today: Core Technologies and Issues |
90
|
|
|
Panel | Creating a Web Service |
91
|
||
|
|
Panel | Choosing a Web Service Platform |
92
|
||
|
2004
|
AJUG DevCon | Atlanta, GA | Session | MVC Web Framework Shootout |
93
|
|
|
NetSec 2004 |
San Francisco, CA |
Session |
Implementing Cryptographic Algorithms |
94
|
|
|
NFJS - Lone Star Software Symposium |
Austin, TX |
Session | Power Regular Expressions in Java |
95
|
|
|
Session |
Comparison of Java Web Frameworks |
96
|
||
|
|
Session |
J2EE Design Strategies |
97
|
||
|
|
Session |
Clean Up Your Code: 10 Java Coding Tricks and Techniques |
98
|
||
|
|
NFJS - Central Ohio Software Symposium |
Columbus, OH |
Session |
Power Regular Expressions in Java |
99
|
|
|
Session |
Clean Up Your Code: 10 Java Coding Tricks and Techniques |
100
|
||
|
|
Session |
Top 10 Security Vulnerabilities Building Web Applications |
101
|
||
|
|
BorCon US |
San Jose, CA | Session | Hard-core Multi-threading in Java |
102
|
|
|
Session |
Java Coding Idioms and Techniques |
103
|
||
| Entwickler 8/European Borcon 2004 | Frankfurt/Main, Germany | Pre-conference Tutorial | Art of Java Web Development | 104 | |
| Session | Begining Struts | 105 | |||
| Session | Advanced Struts | 106 | |||
| Session | Agile Programming in .NET | 107 | |||
| Session | Design Patterns in .NET | 108 | |||
| Session | Clean Up Your Code: 10 Java Coding Tricks and Techniques | 109 | |||
| NFJS - Atlanta Software Symposium | Atlanta, GA | Session | Power Regular Expressions in Java | 110 | |
| Session | Clean Up Your Code: 10 Java Coding Tricks and Techniques | 111 | |||
| Session | Top 10 Security Vulnerabilities Building Web Applications | 112 | |||
| Session | Hard-core Multi-threading in Java | 113 | |||
| NFJS - Northern Virginia Software Symposium | Reston, VA | Session | Power Regular Expressions in Java | 114 | |
| Session | Clean Up Your Code: 10 Java Coding Tricks and Techniques | 115 | |||
| Session | Top 10 Security Vulnerabilities Building Web Applications | 116 | |||
| Session | Comparison of Java Web Frameworks | 117 | |||
| Session | Hard-core Multi-threading in Java | 118 | |||
| 2005 | NFJS - Atlantic Northeast Software Symposium | Philadelphia, PA | Session | Clean Up Your Code: 10 Java Coding Tricks, Techniques, and Philosophies | 119 |
| Session | Regular Expressions | 120 | |||
| Session | Clean Up Your .NET Code | 121 | |||
| Session | Power Regular Expressions in .NET | 122 | |||
| Session | Building Domain Languages atop Java | 123 | |||
| Session | Advanced Enterprise Debugging Techniques | 124 | |||
| Session | Advanced Updating Scenarios for ADO.NET | 125 | |||
| Session | Functional Languages and .NET | 126 | |||
| NFJS - New England Software Symposium | Boston, MA | Session | Clean Up Your Code: 10 Java Coding Tricks, Techniques, and Philosophies | 127 | |
| Session | Clean Up Your .NET Code | 128 | |||
| Session | Power Regular Expressions in .NET | 129 | |||
| Session | Advanced Enterprise Debugging Techniques | 130 | |||
| Session | Advanced Updating Scenarios for ADO.NET | 131 | |||
| Session | Functional Languages and .NET | 132 | |||
| SDA.NET Conference | Singapore, Singapore | Session | Updated Design Patterns for .NET | 133 | |
| Session | Advanced Updating Scenarios for ADO.NET | 134 | |||
| Session | Clean Up Your .NET Code | 135 | |||
| NFJS - Central Ohio Software Symposium | Columbus, OH | Session | Introduction to JavaServer Faces | 136 | |
| Session | Comparison of Java Web Frameworks | 137 | |||
| Session | Advanced Enterprise Debugging Techniques | 138 | |||
| Session | Building Domain Languages atop Java | 139 | |||
| NFJS - Research Triangle Software Symposium | Raleigh, NC | Session | Introduction to JavaServer Faces | 140 | |
| Session | Comparison of Java Web Frameworks | 141 | |||
| Session | Advanced Enterprise Debugging Techniques | 142 | |||
| NFJS Central Florida Software Symposium | Orlando, FL | Session | Introduction to JavaServer Faces | 143 | |
| Session | Comparison of Java Web Frameworks | 144 | |||
| Session | Advanced Enterprise Debugging Techniques | 145 | |||
| Session | Power Regular Expressions | 146 | |||
| Session | The Fallacies of Enterprise Systems (Architecture) | 147 | |||
| NFJS New York Software Symposium | Newark, NJ | Session | Introduction to Java Server Faces | 148 | |
| Session | Comparison of Java Web Frameworks | 149 | |||
| Session | Advanced Enterprise Debugging Techniques | 150 | |||
| Session | Power Regular Expressions | 151 | |||
| Session | Web Application Security Vulnerabilities | 152 | |||
| Session | Language Oriented Programming and Language Workbenches | 153 | |||
| NFJS Central Iowa Software Symposium | Des Moines, IA | Session | Introduction to Java Server Faces | 154 | |
| Session | Comparison of Java Web Frameworks | 155 | |||
| Session | Advanced Enterprise Debugging Techniques | 156 | |||
| Session | Power Regular Expressions | 157 | |||
| Session | Language Oriented Programming and Language Workbenches | 158 | |||
| Ark Group: Planning & Implementing Service Oriented Architecture | Singapore, Singapore | Session | Defining SOA | 159 | |
| Session | Deploying a Reliable and Managed SOA | 160 | |||
| Workshop | SOA & Agile Programming | 161 | |||
| Workshop | Enterprise Service Buses | 162 | |||
| NFJS Salt Lake Software Symposium | Salt Lake City, UT | Session | Advanced Enterprise Debugging Techniques | 163 | |
| Session | Power Regular Expressions | 164 | |||
| Session | Pragmatic Extreme Programming | 165 | |||
| Session | Web Application Security Vulnerabilities | 166 | |||
| Session | Language Oriented Programming and Language Workbenches | 167 | |||
| NFJS Southern Ohio Software Symposium | Cincinnati, OH | Session | Advanced Enterprise Debugging Techniques | 168 | |
| Session | Power Regular Expressions | 169 | |||
| Session | Web Application Security Vulnerabilities | 170 | |||
| Session | SOA & ESB | 171 | |||
| Session | Clean Up Your Code | 172 | |||
| Session | Language Oriented Programming and Language Workbenches | 173 | |||
| NFJS Great Lakes Software Symposium | Chicago, IL | Session | Intro to Spring | 174 | |
| Session | Advanced Enterprise Debugging Techniques | 175 | |||
| Session | Power Regular Expressions | 176 | |||
| Session | SOA & ESB | 177 | |||
| Session | Pragmatic Extreme Programming | 178 | |||
| Session | Language Oriented Programming Part 1 | 179 | |||
| Session | Language Oriented Programming Part 2 | 180 | |||
| Entwickler 9 | Frankfurt, Germany | Session | Clean up Your Java Code | 181 | |
| Session | Clean Up Your .NET Code | 182 | |||
| Session | Advanced Updating Scenarios in ADO.NET | 183 | |||
| Session | Updated Design Patterns for .NET | 184 | |||
| NFJS Pacific Northwest Software Symposium | Seattle, WA | Session | Advanced Enterprise Debugging Techniques | 185 | |
| Session | Power Regular Expressions | 186 | |||
| Session | Clean up Your Java Code | 187 | |||
| Session | Pragmatic Extreme Programming | 188 | |||
| Session | Language Oriented Programming and Language Workbenches | 189 | |||
| NFJS Greater Atlanta Software Symposium | Atlanta, GA | Keynote | Language Oriented Programming: The Next Revolution? | 190 | |
| Session | Regular Expressions in Java | 191 | |||
| Session | SOA & ESB | 192 | |||
| Session | Language Oriented Programming Part 1: Theory | 193 | |||
| Session | Language Oriented Programming Part 2:Practice | 194 | |||
| Session | Pragmatic Extreme Programming | 195 | |||
| Session | Web Application Security Vulnerabilities | 196 | |||
| NFJS Lone Star Software Symposium | Dallas, TX | Session | Enterprise Debugging Techniques | 197 | |
| Session | Regular Expressions in Java | 198 | |||
| Session | SOA & ESB | 199 | |||
| Session | Language Oriented Programming and Language Workbenches | 200 | |||
| Session | Pragmatic Extreme Programming | 201 | |||
| Session | Clean Up Your Code | 202 | |||
| Session | Web Application Security Vulnerabilities | 203 | |||
| Borland Developers Conference 2005 | San Francisco, CA | Pre-conference Tutorial | Pragmatic Agile & Extreme Programming | 204 | |
| Session | Clean Up Your Code (Java) | 205 | |||
| Session | Web Application Security Vulnerabilities | 206 | |||
| Session | Advanced Enterprise Debugging Techniques | 207 | |||
| Birds of a Feather | Building Domain Languages atop Java | 208 | |||
| NFJS Rocky Mountain Software Symposium | Broomfield, CO | Session | Enterprise Debugging Techniques | 209 | |
| Session | Regular Expressions in Java | 210 | |||
| Session | SOA & ESB | 211 | |||
| Session | Language Oriented Programming and Language Workbenches | 212 | |||
| ApacheCon US | San Diego, CA | Session | Power Regular Expressions | 213 | |
| Session | Ruby for Java Developers | 214 | |||
| 2006 | Hindsgavl Conference | Copenhagen, Denmark | Session | Domain Specific Languages in Today's World | 215 |
| Session | Language Oriented Programming and Language Workbenches | 216 | |||
| NFJS Gateway Software Symposium | St. Louis, MO | Session | Clean Up Your Code | 217 | |
| Session | Advanced Enterprise Debugging | 218 | |||
| Session | SOA & ESB | 219 | |||
| Session | Pragmatic XP | 220 | |||
| Session | Testing with Selenium | 221 | |||
| Session | The Productive Programmer | 222 | |||
| Session | Language Oriented Programming and Language Workbenches | 223 | |||
| NFJS Twin Cities Software Symposium | Minneapolis, MN | Keynote | Language Oriented Programming | 224 | |
| Session | Introduction to Tapestry | 225 | |||
| Session | Advanced Enterprise Debugging | 226 | |||
| Session | SOA & ESB | 227 | |||
| Session | Pragmatic XP | 228 | |||
| Session | The Productive Programmer | 229 | |||
| Session | Regular Expressions in Java | 230 | |||
| NFJS Greater Nebraska Software Symposium | Omaha, NE | Session | SOA & ESB | 231 | |
| Session | Advanced Enterprise Debugging | 232 | |||
| Session | Clean Up Your Code | 233 | |||
| Session | Language Oriented Programming | 234 | |||
| NFJS Northern Virginia Software Symposium | Reston, VA | Session | SOA & ESB | 235 | |
| Session | Advanced Enterprise Debugging | 236 | |||
| Session | Regular Expressions in Java | 237 | |||
| Session | Testing with Selenium | 238 | |||
| Session | Real World Agile | 239 | |||
| Session | Language Oriented Programming | 240 | |||
| NFJS Rocky Mountain Software Symposium | Broomfield, CO | Session | SOA & ESB | 241 | |
| Session | Real World Agile | 242 | |||
| Session | Pragmatic XP | 243 | |||
| Session | The Productive Programmer | 244 | |||
| The Ajax Experience | San Francisco, CA | Session | Testing with Selenium | 245 | |
| NFJS Central Ohio Software Symposium | Columbus, OH | Keynote | Language Oriented Programming | 246 | |
| Session | Real World Agile | 247 | |||
| Session | Testing with Selenium | 248 | |||
| Session | The Productive Programmer | 249 | |||
| Session | Pragmatic XP Part 1 | 250 | |||
| Session | Pragmatic XP Part 2 | 251 | |||
| Session | Introduction to Tapestry | 252 | |||
| Session | Web Application Security Vulnerabilities | 253 | |||
| NFJS Central Florida Software Symposium | Orlando, FL | Session | Real World Agile | 254 | |
| Session | Testing with Selenium | 255 | |||
| Session | The Productive Programmer | 256 | |||
| Session | Introduction to Tapestry | 257 | |||
| Session | Web Application Security Vulnerabilities | 258 | |||
| Session | SOA | 259 | |||
| Session | Advanced Enterprise Debugging | 260 | |||
| NFJS Research Triangle Software Symposium | Raleigh, NC | Session | The Productive Programmer | 261 | |
| Session | Testing with Selenium | 262 | |||
| NFJS Salt Lake Software Symposium | Salt Lake City, UT | Session | Testing with Selenium | 263 | |
| Session | The Productive Programmer | 264 | |||
| Session | SOA | 265 | |||
| Session | Real World Agile | 266 | |||
| Session | Language Oriented Programming | 267 | |||
| Session | Clean Up Your Code | 268 | |||
| NFJS Lone Star Software Symposium | Austin, TX | Session | Real World Agile | 269 | |
| Session | Testing with Selenium | 270 | |||
| Session | The Productive Programmer | 271 | |||
| Session | Clean Up Your Code | 272 | |||
| Session | SOA | 273 | |||
| Central Iowa Software Symposium | Des Moines, IA | Session | Real World Agile | 274 | |
| Session | Testing with Selenium | 275 | |||
| Session | The Productive Programmer | 276 | |||
| Session | Clean Up Your Code | 277 | |||
| Session | SOA | 278 | |||
| Session | Advanced Enterprise Debugging | 279 | |||
| Session | Regular Expressions | 280 | |||
| O'Reilly Open Source Conference | Portland, OR | Session | Building Domain Specific Langauges with Ruby | 281 | |
| Desert Southwest Software Symposium | Phoenix, AZ | Keynote | Language Oriented Programming: Shifting Paradigms | 282 | |
| Session | Real World Agile | 283 | |||
| Session | Testing with Selenium | 284 | |||
| Session | The Productive Programmer | 285 | |||
| Session | SOA | 286 | |||
| Session | Advanced Enterprise Debugging | 287 | |||
| Central Ohio Software Symposium | Cincinnait, OH | Session | Ruby for Java Developers | 288 | |
| Session | Real World Agile | 289 | |||
| Session | Testing with Selenium | 290 | |||
| Session | The Productive Programmer | 291 | |||
| Session | Clean Up Your Code | 292 |