Sunteți pe pagina 1din 33

Engineering Experience

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.

Skill as a Software developer, working in a team.


I have over 1 year of industrial experience
 Andrew Corporation
 Thales Australia
Software Engineering Experiences
UTS’s Diploma requires that student
completes one year of industrial
experience.
 This would be achieved in two internship
periods of 6 month.
The purpose of this requirement is for
student to learn in a workplace
environment and setting.
My Professional Experience :
Andrew Australia
Andrew Corporation is a global producer
of communication systems and solutions.

Wireless network
 3G system (mobile phone)
 Internet service.

My role: Junior Software Engineer


 Development team member
My Responsibilities at Andrew
Australia
Project Goals: involves the extension of a
DHCP (Dynamic Host Configuration)
Protocol server.
Responsibilities:
 Researching existing Open Source DHCP
program and Window DHCP server
 Creating the Software Problem description
document.
 Software Design Document – with UML
design
Responsibilities continued
Creating test cases document.

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

Design Patterns Analysis Patterns


Fundamentals of
design Patterns Design Patterns

GRASP Patterns
Increasing Classes
Primitiveness
Level
1.Figure 13‑1: Patterns Abstraction and 1.Figure 13‑2: Patterns abstraction mapping
primitiveness

 Note: Frameworks are not considered as at the highest level of


abstraction
OO Design - UML
Software Lifecycle
Involved in SRS,
SDD.
Concurrent
Development,
 ClearCase Code
Versioning tool.
 Code review and
merging of developed
code.
Peer Review process
3D OpenGL display
3D Bathymetry
Skills Summary
High C++ MFC library & STL library
knowledge.
Detailed design using UML
Design and development skills for re-
usability.
 Software patterns knowledge, both academic
and practical.
 Polymorphism (using runtime binding)
Solid Code development experience for
C++
Ethical Issues
Sensitive defence data
 Need security clearance

Temperature, Salinity, shipwrecks etc. databases.

Disposure of sensitive data – commercial in
confidence.
Own responsibility to the employer
 Maintainable code – code commenting, follows coding
convention.
 Work hours
Possible Improvements
Better Software Lifecycle approaches
 Working with legacy codes – Fortran.
 More Design focused.

The End

S-ar putea să vă placă și