jump to navigation

About

Ian has been developing software since the early 80s when his friends at school had games on the calculators and he didn’t. After using up all the memory available on his Dad’s HP67C and Apple //e, he caught the software development bug and is yet to shake it. Ian has spent the last 25+ years working on how to write great software cost effectively, software that people will love to use and developers will love to maintain and enhance. If he ever finds the answer, he’ll be sure to let everyone know.

Places I’ve worked …

Canonical Ltd (Mar 2007 to now): Software Developer

Caterpillar Inc (2002-2007): Engineering Manager, Technology Architect, Product Manager, Presales Consultant, Release Manager

Mincom Pty Ltd (1993-2002): Development Manager, Lead Architect, Research Architect, Project Manager, Team Leader, Quality Coordinator

Foxboro Australia Pty Ltd (1989-1993): Software Engineer, Firmware Engineer

Things I’ve been doing …

Technical Manager – 8-9 years experience managing technical staff including architects, software engineers, test engineers, technical writers, toolsmiths and system administrators

Project Manager – 10 years experience managing highly technical software development projects using customer driven, Agile development methodologies based on SCRUM and FDD

IT Architect – 12 years experience architecting mission critical, enterprise applications including Lead Architect of the MineStar Fleet Management System – real-time optimisation and decision support for open-pit mining operations

Quality Coordinator – 14 years experience designing quality systems and improving processes using CMM, ISO 9001 and Six Sigma

Software Engineer – 18-20 years experience design, implementing and maintaining programs across many languages, particularly Java, Python, Perl, Delphi and C/C++

Management stuff …

Business Management – IT business models, budgeting, communicating, metrics

People Management – hiring/firing, professional development, training, coaching/counselling, performance management, succession planning, management styles, management climate

Project Management – sponsoring, adaptive planning, predictive planning, estimating (including Agile), organizing, monitoring, controlling

Quality Management – Six Sigma (DMAIC & DMEDI), ISO 9001, CMMI

Product Management – Voice of Customer, Voice of Business, Kano models, tender responses, solution and product evangelism, license management, open source

Software Engineering stuff …

Methodology – SCRUM, FDD, Lean Software Development, Unified Process, OMT

Requirements – User Stories, Use Cases, IEEE URS, FIT

Architecture – Viewpoints+Perspectives, 4+1, EAI, BI (data warehouses vs data marts, ETL, etc), SOA

Modelling & Design – UML 2, User interface design, information presentation, distributed systems, concurrent systems, RDBMS design, portal design, API design, protocol design, design patterns, IOC, Martin’s OO design principles

Programming – OO, exception management, design by contract, refactoring, continuous integration

Testing – functional testing, stress testing, usability testing, test management, inspections, Test Driven Development, JUnit, FitNesse

Maintenance & Support – incident management, change management, issue management, update/patch release management, application monitoring, network monitoring

Technical Writing – Information Mapping, user documentation, reference documentation

Technology stuff …

Languages – Java, Python, Perl, C/C++, JavaScript, Delphi/Pascal, Fortran, HTML, CSS, XML, XSLT, DTD, Assembler (680×0, 80×86)

Operating Systems – Linux (Ubuntu, SUSE, Xandros, Mandrake/Mandriva), Windows XP/2003/2000/NT/98/95, , OS X, Solaris/Unix, MS-DOS, CP/M, VMware

Databases – Oracle, PostgreSQL, Hypersonic

Reporting – JasperReports, Business Objects

Web Servers – Apache, Tomcat, Zope

Middleware – SQL, OpenORB, JacORB,Visibroker, IONA Orbix, BEA Tuxedo, XML-RPC, TCP, UDP, IP, HTTP, IIOP, FTP

Office Tools – Microsoft Office, OpenOffice, Firefox, Thunderbird, KDE, GNOME, Visio, Project, Lotus Notes, FrameMaker, SGML-Tools and many more

Collaboration Tools – Bazaar, Launchpad, JIRA, Confluence, GForge/SourceForge, Bugzilla, CVS, RCS, SCCS and many more

Java APIs & Tools – Swing, JasperReports, JFreeChart, Hibernate, Spring, JDBC, JMS, RMI, Servlets/JSP, SAX, DOM, XML-DBMS, Velocity, Quartz, edtFTPj, JGoodies Forms & Looks, FormProc, Foxtrot, L2FProd Common, Apache Commons, JIDE, ANT, Maven, IntelliJ, FindBugs, JProbe and many more

Industry presentations I’ve given …

2000 QAUUG Summer Technical Conference (Brisbane), Lessons From the Java/CORBA Trenches

1999 Developer.au (Sydney), Mincom’s Enterprise Bus: A CORBA/Java Framework for Building and Integrating Enterprise Applications

1998 Object World (Sydney), Experiences in Building Enterprise Applications Using Distributed Object Technologies

1996 QAUUG Summer Technical Conference (Brisbane), SDF – A Documentation System for Software Developers

1993 QAUUG Summer Technical Conference (Brisbane), Learning Perl (full day tutorial)

My university days …

Bachelor of Engineering (Honours) – Electrical/Computing Systems, 1988, University of Queensland, St Lucia

Bachelor of Science – Computing, 1987, University of Queensland, St Lucia