SYNOPSIS
A Software Engineer, also
known as a lead software or application developer, software architect, or
senior systems analyst, is an IT professional who oversees the creation of
software products from initial specifications on down to final rollout and
maintenance. These products are often sophisticated systems that run on the
web, proprietary hardware or a combination of systems.
Duties of a software
engineer typically involve managing the software development cycle associated
with producing a resilient software application, including: specification,
design, coding, testing and maintenance. With the complexity of modern systems,
as well as with the prevalence of disparate technical teams, top notch
interpersonal skills are required. A software engineer will generally do less
hands-on programming than an application developer or a systems analyst.
In many ways, this is a management role where the software engineer manages
both a staff of developers, as well as performs project management on one or
more software applications. To excel at this role, a candidate must have strong
organizational skills, troubleshooting skills, and the ability to deal with
customers, staff and upper management with tact, decisiveness and timeliness. A
good candidate for this role will have the backbone to convince his or her coworkers
and clients that the more time spent on specification and design will in fact
save time in coding and testing. Moreover, a candidate should be comfortable
with writing and using other design tools associated with the frequent document
creation that occurs in all phases of the software development cycle.
A person may consider
entering this field after attaining a Computer Science or Computer Engineering
university degree or a one or two year computer or engineering technologies diploma
from a local technical institute. With the emphasis in engineering principles from
a Computer Engineering degree or diploma, this in some ways is preferable to a
Computer Science degree or diploma. In any event, the ability to understand a
customer’s needs (specifications), and break that down into a coherent design
is key to this job. As well, attention to detail is important when the project
enters the coding and testing phase. Lastly, perseverance is necessary to
complete a system and move it into maintenance mode.
A software engineer, as he
or she gains experience, generally receives more advanced and interesting applications
to oversee. Getting the right mix of training and hands on experience will
accelerate the career growth of a software engineer. As time passes, the software
engineer can continue to specialize in certain types of application development
or move more into a management role, or become a full time project manager.
Salary information is so
dependent on an IT professional’s particular skill set, experience and geographic
location. However, talented software engineers can attain salaries of $80,000
USD and higher. 
|