Team Leadership
At Newtel, UTS and Admo I have demonstrated by ability to create and lead effective development teams through a combination of my strong technical background, my natural camaraderie with other developers, and my ability to understand development tasks in terms of strategic business objectives.
- Create team camaraderie by encouraging regular communication and peer-review.
- Support team members in interactions with stakeholders.
- Clearly communicate deadlines and expectations.
- Provide technical direction and support.
Project Management
At Microsoft, Admo, Newtel and UTS I have successfully managed the development of software projects. My ability to estimate resource requirements, to effectively monitor the progress of work items and to manage the expectations of the project stakeholders has resulted in a number of successful project deliveries.
- Work with business stakeholders to assign priorities to feature requests
- Estimate resource requirements for feature requests
- Monitor progress, report to management on progress.
- Manage expectations relating to deliverables.
Requirements Analysis
A key element of a successful software project is the collection of a clear set of requirements that will be addressed by the software being developed. Throughout my career I have been successful in understanding the needs of end users and business units. By capturing and documenting requirements I have been able to deliver effective software solutions across a range of industries and technical environments.
- Interview business stakeholders to understand strategic objectives.
- Interview end-users to understand existing workflows and intended workflows.
- Document software application requirements using use cases.
Application Architecture
In the majority of my roles I have been responsible for the design of the applications which I have implemented or managed the implementation.
- Design Object Models and Database Schemas using UML.
- Map use-cases and user scenarios to technical specifications.
- Select frameworks, API’s, databases, programming tools and coding standards to support development.
- Communicate design decisions to internal team members and external stakeholders.
- Align design decisions with strategic business objectives.
- Document design decisions to ensure knowledge retention.
Windows C++
I have been developing applications in C and C++ ever since I bought my Amiga 500. I understand the language inside and out and enjoy the ability to code close to the OS or hardware to make things happen that are often considered impossible. I have been coding against Win32 since windows95 using a range of API’s and frameworks.
- Extensive experience with Win32, ATL, MFC under Visual C++.
- Deep knowledge of windows internals, familiarity with writing kernel mode security monitors.
- Experience with windows debugging tools and techniques.
- Experience with advanced system level programming such as BHO’s, system services, Credential Providers, Gina Replacement, COM automation.
Enterprise Java (J2EE)
I have worked with J2EE technologies to create effective web-based applications. These have been both e-commerce solutions generally available and portal applications designed for internal use. I have used J2EE technologies extensively at Newtel, Admo, SOK, UTS and also in my PhD research.
- Web application development using Spring, Struts, JSP.
- Database connectivity with JDBC, Hibernate against Oracle, SQL Server and mysql.
- Work with XML data sources (producing and consuming) using SAX and DOM implementations.
C# /.NET
At Global Gossip I have developed C#/.NET applications to support billing activities and to serve as a test harness for the end user applications I have developed. At UTS I used C#/.NET to implement a GUI to interact with a process model analysis engine.
- Consuming Web Services
- Interacting with the Win32 API using p/invoke, interacting with Office docs through COM automation.
- Implementing user interfaces using WinForms
- Accessing data sources using ADO.NET and LINQ.
Effective Communicator
My ability to listen and present ideas to a diverse range of people is a key factor in my success and enjoyment in my career so far. I am able to relate to people and understand their motivations, and work with them to develop software-based solutions that address their needs. I am able to talk to non-software people in terms of their needs and objectives rather in terms of technology.
Rational and Professional
I have worked in a variety of high pressure, dynamic organisations and am able to work effectively by approaching my responsibilities in a rational and professional manner. From the fast-paced telecommunications industry to the behemoth that is Microsoft, I bring a calm effectiveness that not only helps me succeed but also benefits those around me.