![]() | ESRI GIS API Since: 2010 In response to customer demand, I began integrating ESRI GIS with our app at work for geoprocessing and visualize of data quality in a geographic context. The ESRI API is huge, but very powerful. |
![]() | Google Web Toolkit Since: 2008 I adopted GWT 1.5 with the Ext-GWT widgets for use on a web version of our main application at work. For the last few years, we've been primarily working on a Swing-based UI. However, customers were asking for a lightweight web interface to view project results. The Google Web Toolkit combined with the excellent ExtJS UI makes a powerful development platform. Particularly for a group of Swing developers, we're right at home in GWT's component model and outstanding server and client debugging from right inside Eclipse. |
![]() | Ruby on Rails Since: 2006 Always keen to learn new languages and frameworks, I chose RoR for a personal project of mine, the Baby Name Map. I was amazed that Rails let me build that site in under 40 hours, working part-time for a month. |
![]() | AJAX Since: 2006 I've gained experience using some great Javascript toolkits such as Prototype and Scriptaculous working with Ruby on Rails. As well, I used ExtJS extensively for my Baby Name Map. I've also experimented with Dojo, YUI, and GWT. |
![]() | Google Maps API Since: 2007 I played around with the Google Maps API when it was first relesed, however it was a couple of years before I found a use for it in the commerical product I was working on. I am familar with most of the API and can quickly generate professional looking websites and mashups using this technology. Here are some examples: ![]() I also used Google Maps extensively for a personal project of mine: Baby Name Map. ![]() |
![]() | CentOS Linux Since: 2007 CentOS is a free clone of the Red Hat Enterprise Linux system. Many of the web application providers and hosting companies I work with now use it nearly exclusively as you get the power, stability, and security of RHEL without having to pay the licensing fees. I have experience with installation, configuration, and administration of CentOS 4 and 5; particulary with the x86_64 (64-bit) version for AMD 64 and Intel Xeon processors. |
![]() | Ubuntu Linux Since: 2006 Ubuntu has done an excellent job of creating an easy to use desktop Linux distribution. I have experience installing and configuring this OS, particularly on laptops where it really shines. |
![]() | Ruby Since: 2006 I am currently a Ruby newbie, but have been learning it as I pickup the Ruby on Rails web framework. So far, my background with the Python scripting language has made the learning curve quite easy. It is a nice language for a number of development tasks. |
| Yourkit Profiler Since: 2005 A commerical profiler for Eclipse which I have used from time to time. A useful tool when tracking memory leaks in Java. | |
![]() | Netbeans Profiler Since: 2005 Even though I use Eclipse as my primary IDE, I always start up Netbeans for its profiler. Easy to use, with clear reporting and excellent responsiveness, this is the best free profiler available today. |
![]() | Eclipse Debugger Since: 2002 The Eclipse debugger is the best part of the IDE. Before Eclipse, I wrote Java programs in Emacs so the debugger was a revelation in control. I am now extremely proficient in its use and quirks. |
![]() | Swing GUIs Since: 2000 I have extensive experience in all aspects of Swing GUI development, particularly for deployment on Windows systems. My work at Intervera Data Solutions required that I take their GUI to the next level by:
This work resulted in a more reliable, better performing interface that was much more attractive to users. |
![]() | Derby (Cloudscape) Since: 2005 I have used this in open source projects as an embedded database and also for in-memory unit testing. It's a great contribution from IBM which enables even small, simple apps to easily integrate a database. It's also great for development as it matches the feature set of enterprise databases with a much smaller foot print. I wrote a tutorial on using Derby for isolated unit testing which was published on the IBM Developerworks site. |
![]() | Enterprise Messaging Services Since: 2003 I led the design and implementation of an enterprise messaging-based system at Pason Systems. I gained extensive experience in the best practices of design using asynchronous communications. The system I designed provided high-reliability and redundancy while still providing high performance. My choice of a Java Message Service (JMS) based system ensured vendor independence. |
![]() | Windows XP Since: 2004 While I used to a bit of a Linux zealot, the stability and ease of use of Windows XP are starting to grow on me as of early 2005. This is my primary development platform at Intervera. |
![]() | Cruise Control Since: 2005 Combined with Ant and/or Maven, this contious integration tool is excellent for ensuring compiliation or test problems with a commit are spotted quickly. We use this against our Subversion repository at Intervera for building and running unit/integration tests. The server is configured to handle all of our concurrent development streams. We execute unit tests on every developer commit and once a night, the longer running integration tests are run. |
![]() | Maven Since: 2005 A powerful build tool that also generates a wide variety of useful reports about a project. I particularly like all the code analysis plugins like CheckStyle, JDepend, and others. I adopted this build tool for the Java projects at Intervera. |
![]() | Subversion Since: 2005 This is a great version control system with excellent command-line tools and multiple GUI clients (TortiseSVN). We use this at Intervera for our configuration management. I installed, configured, and administer the repository. It's a great successor to CVS in that it's similar but doesn't have all of CVS' drawbacks. |
![]() | Visual SourceSafe Since: 1999 I can't remember the exact version, but I used this SCM tool at the Alberta Research Council in the late '90s. Overall, I was not impressed with this tool. |
![]() | Perl Since: 2001 The duct tape of the internet. A useful scripting language for quick jobs that I've used on many projects. |
![]() | Eclipse Since: 2002 Donated by IBM, this is now the premier open-source IDE for Java work. I've used this tool extensively on Java projects both at work and university. It has advanced nicely in the last few years. |
![]() | PHP Since: 2002 I now have a good deal of experience in PHP from my work on the Outreach Project Tool branch I am currently leading. This excellent open source project management tool is a good example of the great web applications that can quickly be created in PHP. |
![]() | Extensible Hypertext Markup Language (XHTML) Since: 2001 I have gained experience in writing standards conforming web sites that use XHTML both at work and at home. This web site is a good example of a good looking site that can maintain standards compliance at the same time. I also have experience in XHMTL's complementary technology, cascading style-sheets (CSS) |
![]() | Ant Since: 2001 At Intervera, I used Ant to create a one-step build and deployment script that allows our QA department to tag a version from the development stream and generate a complete installer with a single command. Integrated with CruiseControl, our Ant build also runs unit and integration tests as well as report generation such as code coverage, Javadoc, and style reports. Using the Ant-contrib tasks and integrating with DDLUtils, I have also built a complete data versioning facility. |
![]() | make Since: 1999 The grandfather of build tools, make is still an excellent approach for C and C++ projects. I helped to implement a recursive makefile system for the DataHub project at Pason Systems. Coupled with a controlling Perl script, we automated an ad hoc build process into a one line command that built, reported errors and deployed to target servers. |
![]() | Borland OptimizeIT Since: 2002 This is a useful Java profiler that provides memory and time usage information. I found it to be an excellent way of accurately diagnosing slow spots in Java code. |
![]() | eXtreme Programming (XP) Since: 2002 This development methodology is a refreshing twist on many conventional approaches to software development. While I haven't had an opportunity to do true pair programming, I have adopted the "test first" and "travel light" philosophies. I hope to increase my experience in XP in future projects. |
![]() | Unified Process (RUP) Since: 2002 After giving an in-depth report on the Unified Process for my SENG 623 class, I discovered that many of the steps that I unconciously do during development are covered in the RUP. The iterative and incremental lifecycle in particular has proven to be very effective. As well, I hope to make better use of use-case models in future development as a design driver. |
![]() | Netbeans Since: 2001 While I prefer Eclipse as my IDE, the Netbeans project is coming along. Their profiler is light-years ahead of Eclipse's at this point. I maintain an install of Netbeans just for it strengths. |
![]() | Logwatch Since: 2002 This excellent log auditing tool is now part of the default Red Hat install. It provides timely notifications of abnormal log entries in a customizable fashion. |
![]() | Red Hat Network Since: 2001 This excellent software package management tool allows an administrator to manage patches and updates for a large number of RH Linux servers remotely via a web interface. It also provides an admin with timely alerts to get security holes patched quickly which is crucial for internet servers. |
![]() | JUnit Since: 2002 A fantastic tool from the refactoring guru, Martin Fowler. I now use JUnit extensively in all my Java applications and consider automated unit testing to be a critical tool for design, implementation, and maintenance of a product. |
| Joint Application Design Since: 2001 An interesting technique pioneered by IBM. This was covered during SENG 613 and I look forward to have an opportunity to try this out in industry. | |
| Structured Analysis and Structured Design Since: 2001 An older approach utilizing tools common throughout the requirements engineering world such as Entity-Relation (ER) diagrams and dataflow digrams. Covered during SENG 613 | |
| Quality Function Deployment Since: 2001 This was the topic of my groups's research paper and presetnation for SENG 613. It is an interesting technique, taken from the quality revolution of Japanese industry. It was adapted for software while I don't see myself using the entire technique, there are useful tools found within QFD. | |
| Cleanroom Engineering Since: 2001 During SENG 613, this technique was covered as a requirements engineering tool. Somewhat more formal than I would typically feel is warraneted for most of my work, but it can be useful in certain situations. | |
| Requirements Prioritization Since: 2001 My SENG 611 course covered a number of prioritization techniques includeing the Analytical Hierachy Process (AHP). Prioritazation is a critical componenet of successful requirements analysis. | |
| Formal Specifications Since: 2001 The use of this mathematically rigourous tool was covered in my SENG 611 class. I have not had a need, nor do I forsee a need, to use this technique during requirements gathering on my projects. However, the technique can pay dividends in certain situations. | |
| Concept Maps Since: 2001 This useful tool was covered during my SENG 611 class. It's use for requirements elicitation from non-technical clients and users was highlighted. Tool support for concept mapping was also discussed. | |
| Interviews Since: 2001 Based on techniques gained during my SENG 611 class, I have performed both formal and informal interviews for my commercial projects. | |
| Repertory Grids Since: 2001 A useful tool for requirements elicitation. This topic was discussed in my SENG 611 class. | |
![]() | SSH Since: 1999 I have built, installed and configured this secure replacement for telnet on numerous Unix systems. I only use OpenSSH from the OpenBSD project. I make it a rule to disable telnet access on any Unix server I come across. |
| PortSentry Since: 2001 I use this easily installed tool to monitor and respond to abnormal port activity. | |
![]() | Tripwire Since: 2000 I have experience installing, configuring and monitoring this system integrity checker. Tripwire stores a cryptographic hash of critical system files which can alert you if an attacker changes them (i.e. installs a root kit). |
| nmap Since: 2000 The premier port scanning tool available on the web. I use this tool to test the firewall configurations of machines that I am administrating. It is great for finding vulnerabilities that you may have overlooked. | |
![]() | LogCheck Since: 2000 This excellent tool mines the valuable security information contained within an operating system's log files and emails the pertinent information to the system administrator. An excellent tool in one's security toolbox. |
![]() | iptables Since: 2001 When I upgraded my server to Red Hat 7.1 with the new 2.4 kernal, I switched the firewalling from ipchains to the newer iptables. I haven't had chance to fully utilize all the features of iptables, but it looks quite promising. |
![]() | mod_ssl Since: 1999 I gained experience in building, installing, and configuring SSL for the Apache webserver back in 1999. Nowadays, the RSA patent has expired and Redhat ships apache with SSL pre-configured. |
![]() | PGP Since: 1999 This tool for encrypting and signing email messages is a great idea that I wish more people would use. I've been signing all my email for years now using GnuPG in my email client, Mutt. My PGP public key is available on my 'Contact' page. |
![]() | Extensible Markup Language Since: 2000 All the recent applications I have worked on have made extensive use of XML for data storage, configuration, and inter-application communication. I am familiar with the DOM and stream-based parsing technology. My work with application integration with web services has also provided me with a knowledge of DTD and XML schema defintion and design. As well, I have taken 3 days of intermediate XML training provided by Fifth Era Training which covered all the XML basics with a number of advanced uses. |
| Dia Since: 1999 I've used this excellent technical diagramming tool for Unix on various projects at school and work. It doesn't have the code generation facilities of Rational or TogetherJ, but I find it meets the bill in most situations. | |
![]() | Structured Query Language (SQL) Since: 1999 I have a large amount of experience using the various SQL language standards and the database-specific extensions in Oracle, MS SQLServer, and MySQL. I am comfortable with database schema design using normalization techniques and OR or ER data modeling. My background includes performance optimizations during query design and runtime-analysis. |
![]() | GNU Debugger (gdb) Since: 1998 I found this to be an invaluable tool when programming in C on Solaris and Linux. I used gdb quite a bit during my final year of university at the U of A and also on projects involving C apps at Pason Systems |
![]() | Concurrent Versions System (CVS) Since: 1999 I've used this excellent source control tool extensively during my university career as well as during the WebCPR project at the ARC and the Datahub project at Pason Systems. This involved installation, configuration, extension and administration of multiple CVS repositories. I would strongly recommend this tool for IT shops facing configuration management difficulties. |
![]() | Windows 2000 Since: 2000 The Landview Online application server and e-commerce site utilized Windows 2000 Server as the server platform. I gained experience in implementing, testing, and/or deploying ASP web apps, Java applets and servlets, and legacy applictions via Citrix Metaframe. |
![]() | MS Visio Since: 1999 This was the diagramming tool mandated for use on all software projects at the Alberta Research Council. I made extensive use of Visio to create UML project documentation. |
![]() | MS Visual FoxPro Since: 2000 I gained experience using v6.0 during the Landview Online project as FoxPro was the DB used for the ordering site I developed. My experience includes utilizing FoxPro from MS Active Server Pages (ASP). |
![]() | Hypertext Markup Language (HTML) Since: 1996 HTML was my first exposure to computer programming and I have been building standards-compliant web sites with it ever since. I now typically code XHTML based sites using various web application servers and languages. I have a full knowledge of the various HTML and XHTML standards as well as a knowledge of the rendering quirks of the major web browsers. |
![]() | Prolog Since: 2000 My CMPUT 325 class provided an introduction to logic programming in Prolog. We used the Sicstus implementation for Unix. |
| Lisp Since: 2000 Through my CMPUT 325 class at the U of A, I gained experience with this functional programming language. I have also used lisp when customizing my favorite text editor, emacs. | |
![]() | Emacs Since: 1998 The premier development environment for Unix. Probably the most feature complete text editor available, it also provides access to all of the Unix developer's toolset. After reading 'Learning GNU Emacs', I have a much deeper appreciation of this tool's full capabilities. |
![]() | Javascript Since: 1999 My work in web development lead me to gain experience in the client-side scripting language developed by Netscape. This required learning to handle the javascript differences between Netscape and IE. |
![]() | PostgreSQL Since: 2000 I have some exposure with this advanced Open Source database on Linux. I plan on using this DB when I start evaluating EJB app servers on Linux. |
![]() | N-tier architectures Since: 2000 My work with Java distributed computing and Microsoft's ASP web application platform allowed me to gain expertise in designing three-tiered applications. This architecture provides a number of benefits over the previous two-tiered or 'fat client' model. |
![]() | Distributed Computing Since: 1999 I gained design experience in Java distributed computingduring the WebCPR project at ARC. Using the Remote Method Invocation (RMI) toolkit, I designed an image viewing and uploading subsystem. The design took threading and security issues into account. |
![]() | AIX Since: 1999 During my time at ARC, I gained experience using AIX systems as the server for the Clinicare project. Specific skills included the SMIT administration tool and deployment and maintenence of a Java Virtual Machine on AIX. |
![]() | C Since: 1998 I have a strong background in C from my development work on CGI applications for Pason's Datahub. These programming tasks were made easier by the excellent training in the C language I received at the U of A. |
![]() | MS Visual Studio Since: 2000 The majority of the web-based applications I developed at the ARC during my internship were done with Interdev. I have also used Visual FoxPro for some of the database development needed for the Landview project. |
![]() | VBScript Since: 2000 During my ARC internship, I implemented two web-based applications using MS Visual Interdev and ASP. VBScript was the server side scripting language. It's not as clean as Python, but the MS tools are very easy to use. |
![]() | Python Since: 1999 This is an open-source scripting language similar to Perl, however it is truly object-oriented and emphasizes readable code. I've used Python on extensively on the Pason Datahub and during a numerical computing project at university. |
![]() | Unified Modeling Language Since: 1999 My Java work required that all designs be carefully diagramed and documented using the Unified Modelling Language (UML). As well, I wrote a project architecture document for the Landview/ARC project containing use cases as well as class, sequence, and deployment diagrams. |
![]() | Borland JBuilder Since: 1999 JBuilder is the primary IDE I'm using at Intervera this year (2005). I am well used in it's use, shortcuts, and plugins. Overall, it's a good IDE but I'd probably have to give the nod to Eclipse as my favorite. As well, JBuilder 4 was the primary IDE used for the Java project I participated in at the Alberta Research Council. I gained expertise using both the Professional and Enterprise versions. |
![]() | Java - Overview Since: 1999 Java is my strongest programming language as I have many years of commercial experience on a wide variety of projects and applications. My most recent Java project involved the design, implementation, and deployment a highly available and scalable communications conduit between Pason's rig-side data recorder and our data warehouse. This project involved the use of J2EE technologies with an emphasis on the Java Message Service APIs. I was technical lead on this project which involved 5-7 developers. My emphasis on code quality resulted in my introduction of test-driven development within our project team. Also at Pason Systems, I implemented a Java-based rich client for drilling rig contractors that greatly streamlined their payroll process. This project required use of XML, encryption, Java WebStart, and obfuscators. At the Alberta Research Council, I was involved with an updated front-end for Clinicare Corporation's electronic patient record. That project involved RMI distributed computing technology and the Java Advanced imaging API. I have gained exposure to a number of Java libraries and tools including JSPs, servlets, applets, Swing, JDBC, JSSE, JCE, JAI, RMI, Web Start, XML, Eclipse, Netbeans, JBuilder, Ant, and obfuscators. My introduction of unit testing techniques to Pason Systems has also provided me with extensive experience in JUnit, XMLUnit, DBUnit, HTTPUnit, and Fitnesse. I became a Sun Certified Java Programmer in 2004. |
![]() | Solaris Since: 1998 A Unix derivative from Sun Microsystems. I have some experience from my work at the ARC and also from the Oracle database lab at the U of A. |
![]() | OpenBSD Since: 1998 BSD Unix derivative is used on the majority of public terminals at the U of A. It is an open-source project led by a programmer from Calgary. This is the most secure general purpose operating system available. |
![]() | Windows NT Since: 1998 I gained a great deal of experience with this OS during my internship at the Alberta Research Council. In particular, I picked up server administration skills targeted to using WinNT as a web server. |
![]() | Mac OS X Since: 1995 I'd been a Mac user back in the System 7 and 8 days, but moved to Linux to get a stable OS. However, with the advent of Mac OS X, I've become a big fan again. We currently have a iMac G4 desktop and a Macbook Core Duo laptop with the latest OS X version. With my recent intereest in Ruby on Rails, I've been spending a lot of time on laptop which is a great system. |
![]() | Red Hat Enterprise Linux Since: 1998 I am a Red Hat Certified Engineer, please see my certifications page for more details. I have extensive experience through my work with the Pason System's data center that relies heavily upon Red Hat Linux. This work has provided me with an opportunity to work on the procurement, configuration, deployment, and maintenance ofover 30 servers. I have learned which tools can help ease the workload when managing a number of production servers as well. I am also familiar with the programming environment provided by Linux as well as procedures for ensuring server security. |
![]() | Oracle Since: 1999 Oracle is the primary database in use at Intervera and by our clients. As such, I have gained experience working with various versions (8, 9i, 10g) on large corporate servers and developer workstations. I use Oracle SQL Developer primarily during development but am comfortable with the sqlplus command-line tool. My development work has included learning the many optimizations in terms of schema definition and JDBC features that can result in significantly better read/write performance. |
![]() | MS SQLServer Since: 2000 I have used MSSQL Server (both 2000 and 2005 versions) for development of web applications and data quality tools. I have administrated server installations of the database and am familar with its performance optimizations. On my developer workstation I use the Express Edition which allows for isolated, compatability testing. |
![]() | MySQL Since: 1999 I have extensive knowledge of this excellent open-source database. This was our primary database for all of the web applications at Pason Systems, the largest of which had 200 GB of data. I spent a week in Houston in early 2002 taking a MySQL training course covering security, disaster prevention and recovery, replication, transactions, and system optimization. I also use this database for all of my personal software projects requiring a database. I am very impressed with this database as it definately becoming enterprise capable. |






















































































