Documente Academic
Documente Profesional
Documente Cultură
2
Job Interview Presentation
Purpose
To Introduce myself and demonstrate my
ability as a software engineer.
I will be talking about my past experiences
in the workplace and the responsibilities in
as a software engineer.
Introduction
Duy Thai Nguyen
Software engineering student, at UTS.
Final year student, expecting to graduate in
2008. I am at the moment a full time employee
for Thales Corporation.
UTS’s Dean List for 2005 and 2007.
Code Development
Detailed UML design
Code development using C++ and C++ .NET
Parsing XML messages, unpacking/packing DHCP network
data unit, processing DHCP tasks.
Object Oriented design principles
Working with Win32 API for threads, dlls and DHCP
hooks.
Thread pools, concurrent threads processing an
communication – using message queues.
The Result
A working DHCP server with extended
functionality as designed.
Knowledge gained:
Application of OO studies and programming.
Applying the .NET library (.NET String
processing, XML re-usable processing)
My Professional Experience :
Thales Australia
Recent work experience: Past 10 month
as a Thales employee
Thales Overview
A premier provider of product and services for
defence in Australia and throughout the world.
3,500 personnel working in over 30 sites in
Australia.
Defence – Royal Australian Navy
Supplier of commands, control communications,
computers, intelligence system and electronic
warfare.
Examples includes the integration of complex system,
and the refit of the weapon system.
Huon class mine-hunter.
Guided missile frigate (FFG).
Work environment
Thales Australia, located in
Rydalmere (near
Parramatta) .
Professional workplace,
with offices, cubicles and
printing rooms etc.
The workplace attire - basic
office wear, pant & shirt or
other, nothing fancy.
Requires Australian
security clearance – limited
access
The project
The project : SAGE – System of Acoustic and
Geo-Environment Exemplification. This system
is a strategic planning system shipped to the
RAN and Indian navy.
It enables the ability to plan for sonar
deployment/use, giving the success rate of
detecting a target vessel.
SAGE displays data graphically to the user.
Involves mathematical calculation, databases
(classified) extraction.
Sonar Prediction System
Defence Experience
SAGE system
Originally developed in the 90s
Support the navy in tactical planning – sonar usage
success rate data.
SAGE is a completed product - shipped to the
RAN.
Project Requirement summary - Extending
SAGE system functionalities.
I was a development team member in the team of 6,
we were lead by a manager with back ground
Oceanography and Sonar studies.
The work
I was apart of a team of 6 development member:
One senior engineer
Two engineers with more than 10years at Thales, one
software engineer and one with oceanography
background
Three UTS interns – including myself
Manager/leader – Oceanography and Sonar study,
Phd.
The leader is responsible for managing and
creating the documents, such as ‘new
functionality’ document, GUI specification and
the user manual.
My responsibility
The work may consists being assigned a
new functionality for SAGE. Working to
research and develops this new
functionality.
Windows Development in C++
The functionality is described in a
specification sheet (verbal communication
as well)
Tasks
Examples:
3D GUI screen display with user interactivity –
Using OpenGL with C++.
Calling/creating system model for
mathematical calculations.
GUI tabular data input grid – achieved using
re-usable design enhancing the system re-
usability and extendibility qualities
(Polymorphism).
Fixing bugs for the Testing phase.
My Strengths - Overview
Over one year experience with C++, using
Visual C++ 6 and Visual Studio 2003 for
work.
I have experiences with the Microsoft
Foundation Class library – Thales
Experience in using the Standard Template
Library (STL) – Cross platform, Object
Oriented Reusability.
My Strengths - Overview
High knowledge of Object Orientation
Link with my Capstone project on the topic of
‘Software patterns’ (Distinction) – Extendibility,
Reusability etc.
Developed software package using advanced Object
Oriented features such as polymorphism.
Ability to create a Object data model of the system –
Database ER knowledge.
UML for GUI
UML for Domain model – Sonars, Target vessel,frequency
etc.
Ability to model the system using UML – Design
document.
Object Oriented principles academic study.
Programming experience
C++ programming language
Approximately over 30000 Lines of code (30K
LOC), over one year experience in C++.
Advance features of C++: polymorphism,
templates & inheritance.
Microsoft Foundation Class library
Contains useful, robust
set of widgets for
developing the Graphical
User Interface (GUI).
Often works extensively
with GUI Dialogs and
FormViews.
Extends existing controls
(or widgets) using
inheritance to build
different complex custom
controls.
Standard Template Library
STL: is a well known C++ reusable library for
software programming.
It uses ‘templates’, which is a way of
programming in C++, that allows reuse.
Developed my own version of a templated Smart
pointer class called Stl_ptr<T>.
Reduced code size.
std::vector<TgtWaypoints> tgtRoute;
… //adds waypoints
Std::sort(tgtRoute.begin(), tgtRoute.end(), NavRoute::compare );
Object Orientation
Capstone project – ‘Software patterns and
Software system Qualities’ – Distinction.
Developed software package example:
ReUsableGrid.
Tabular data input
Grid Video
Primitiveness and Abstraction
Increasing
Frameworks Abstraction
Level
Architectural
Patterns
Analysis Patterns
GRASP Patterns
Increasing Classes
Primitiveness
Level
1.Figure 13‑1: Patterns Abstraction and 1.Figure 13‑2: Patterns abstraction mapping
primitiveness
The End