You are on page 1of 12

WHAT DO SOFTWARE ENGINEERS DO?

In the world of software design and development, a software engineer plays a key
role. The engineer is typically the person who helps to develop the ways that
software functions created by a software design team will work. The software
engineer will work with designers to help consolidate disparate program functions
into a unified whole. The engineer also works with programmers and coders to
help map out various programming tasks and smaller functions, which are then
combined into larger, functioning programs or new features for existing software.
The engineer will typically work in both design and development stages of the
software creation. During the design phase, dedicated designers or design teams
will work with the engineer to help work out the basic things the program or
update will be expected to perform. The engineer will typically help to plot out
the various aspects of the automated tasks that will be necessary, usually using
design documentation and flowcharts to help illustrate the process.
To work as a software engineer, a person must normally have a bachelor’s degree
in computer engineering, computer science, or a related field. Many companies
will prefer candidates for this job who can show practical experience in
programming and coding. Most software engineers work in an office or computer
lab environment during regular work hours of the business week.
Computer software engineers are responsible for creating and engineering
effective software applications based on the project's requirements. They utilize
their analytical skills to design programs, scripts, and other code to run efficiently
in a variety of system environments. They work with other engineers and
software specialists to complete deployments and software products in a timely
manner. Additionally, computer software engineers strive to reduce memory
consumption in the engineering processes. They use office software to
communicate with team members and report their progress to the information
technology vice president (and/or other supervisors) in their organization.
One of the computer software engineer's main responsibilities is creating
effective programming code that is scalable and can be used by other software
engineers. Computer software engineers must have the ability to analyze large
amounts of structured and non-structured information to create detailed reports
based on their observations. They suggest changes to the software testing
processes and find software fixes in a timely manner, as well as actively
m participate in training and adapting new technologies and application packages.
In all tasks, they must follow strict privacy and safety protocols to prevent digital
breaches.

LEVELS DESCRIPTION TYPICAL


EXPERIENCE
1. Developing professional and technical expertise. Able to resolve 0-2 Years
routine issues and problems.
2. Well developed professional and technical expertise. Affects quality 2–3 years
and timeline of part of product or service.
3. Seasoned professional with competence, creativity in wide range of 3–6 years
technical areas. Resolves most issues and problems effectively.
4. Extremely seasoned professional. Able to solve most issues and 4–7 years
problems. Uses skills to drive company objectives and achieve goals.
5. Wide range of experience, and is looked to as a thought leader and 6+ years
technical guru. Affects design, quality and timeline of entire product
or service.
6. Superstar. Critically important to growth and product development. 8+ years
Only a handful at this level throughout the company. Develops
department objectives from company strategies.
LEVEL 1 External title: [Junior] Software Engineer
Role: Builds defined features, investigates and fixes bugs, writes tests.
Communicates progress, identifies blocking issues. Finds a work-life balance.
Anti-patterns: Poor code quality. Not self-motivated; needs someone to tell them
what to do next. Constantly veers into the weeds. More inclined to blame-
complain than roll up sleeves. General helplessness. Disregards team process.

Experience: 0–3 years


Junior engineers bring a lot of raw energy and potential to a company. They “do
work” you give them — often, quite a lot of it. They need help with up-front
project planning and the breakdown of tasks into specific chunks of work. Team
leads should check in fairly often to make sure they’re on-track and have direction.
I prefer to use the public title “Software Engineer” (dropping the “Junior”) because
nobody wants to called “junior.” Internally, you can call this level-1 without insult.
I find level-1 interviews to be the hardest to arrange because candidate skills levels
are all over the place. Initiative and critical thinking are what matter most, but
these are difficult characteristics to measure in an hour or two. Let go of level-1
engineers who won’t be promoted to level-2 within 2 years.
LEVEL 2 . External title: [Senior] Software Engineer
Role: Owns a functional area. Breaks large requests down into sub-tasks, gives
higher-level status updates. Writes test plans. Takes operational responsibility.
Sets measurable goals, and meets them. Reviews code changes. Helps mentor new
hires.

Anti-patterns: Disappears into projects that don’t matter to the business. Fails to


identify or communicate big roadblocks. Us-vs-them attitude. Continually
underestimates timelines. Doesn’t take operational excellence seriously. Solutions
are more complicated than necessary.

Experience: 1–8 years


Level-2 engineers can take ownership over a body of significant software. You can
trust them to take loosely defined requests and do the right thing — break down
complex tasks, make reasonable decisions, and operate fairly independently
between periodic check-ins. Communication and critical thinking skills are
essential.
Should this be called a “Software Engineer” or “Senior Software Engineer”? I’m on
the fence, but lean towards using the same external title “Senior Software
Engineer” for either level-2 or level-3 engineers on business cards and LinkedIn,
while internally referring to them by level.
While someone can be a level-2 engineer for several years, eventually they should
demonstrate they can take on more ownership and be promoted to level-3, or
leave the organization.

LEVEL 3 External title: Staff Engineer


Role: Owns the development and rollout for an entire product, or large project.
Champions process (Scrum, TDD, etc). Writes tech specs and identifies risks before
starting major projects. Sets standards. Goes out of their way to reduce
complexity. As needed, takes on additional “tech lead” responsibilities for driving
an initiative to completion.
Anti-patterns: doesn’t delegate. Always says “yes” and suffers burn-out. Jumps
into execution without careful consideration. Let’s details slip through the cracks.
Fails to raise awareness of projects at risk or people-problems. Doesn’t follow new
technologies or industry trends.
Experience: 5+ years.
Level-3 engineers take ownership over a whole product (e.g. an entire application,
or suite of services). In additional to delivering solid and maintainable software,
they understand company dynamics and good process.
Senior engineers often wear an additional “tech lead” hat. This means they take on
the (thankless) work of project management and process oversight. They keep the
trains running on time. Note that a tech lead does not have direct reports and
does not boss people around; they lead by gravitas.
This can be a career position. It’s perfectly normal to have solid level-3 engineers
who are happy being individual contributors, and don’t want to move to
management or general architecture.

LEVEL 4
External title: (or Senior Staff Engineer, or invent a cool title)
Role: Owns cross-team shared infrastructure. Works with CTO and other architects
to choose new technologies, and promote culture / process. Has deep
technical expertise in a business-critical area. Does serious research to
evaluate and test options. Understands implications (and trade-offs) of
reliability, scalability, operational costs, ease of adoption by organization,
recruiting, etc.
Anti-patterns: Over-emphasis on scaling or high availability far beyond business
needs. Spends too much time chasing the newest “shiny” technology. Doesn’t
collaborate or ask questions. Condescending. Has “pet” agenda. Pisses off
senior leadership.
Experience: 8+ years
Level-4 engineers are architects who can evaluate system-wide platform decisions
and set long-term company-wide technical strategy. They often have two
roles, working both as individual contributors on a feature team and also as
architectural reviewers working with the CTO. Your architects should be
humble and outgoing; they are your engineering cheerleaders.

Level 5. Principal Engineer


13 to 16 years. This is a leadership role. The job expectation is to compete in the
market by building an organization that synergizes people, product, and
engineering. Execute a technical vision. Prepare for the future.
Additional skills: business sense, organizational design, strategy, marketing,
culture, leadership.
Level 6. CTO/Head of Engineering, 16+ years. This is a leadership role and it differs
only in scale from a Director/VP of engineering role. Typically 3 to 6 Directors/VPs
may report to a CTO.
NIGERIA.
Software Engineer (Level 1)
The average Software Engineer Level 1 Salary in Nigeria is ₦2,916,010. An early
career Software Engineer with 1-4 years of experience earns an average total
compensation (includes tips, bonus, and overtime pay) of ₦2,893,281 based on
55 salaries. A mid-career Software Engineer with 5-9 years of experience earns
an average total compensation of ₦3,112,329 based on 19 salaries.
Classification of salary of based on Popular Skills for Software Engineer.

NO SKILL SALARY
1 Java Script N2,326,992
2 SQL N2,927,745
3 C# Programming Language N3,121,766
4 Java N2,226,000
5 HTML N2,441,676
Senior Software Engineer (Level 2)
The average Senior Software Engineer Salary in Nigeria is ₦5,791,594. An early
career Senior Software Engineer with 1-4 years of experience earns an average
total compensation (includes tips, bonus, and overtime pay) of ₦5,100,000
based on 7 salaries. A mid-career Senior Software Engineer with 5-9 years of
experience earns an average total compensation of ₦6,000,000 based on 10
salaries. An experienced Senior Software Engineer with 10-19 years of
experience earns an average total compensation of ₦12,800,000 based on 2
salaries.
Classification of salary of based on Popular Skills for Senior Software Engineer.

NO SKILL SALARY
1 Java Script N6,240,000
2 SQL N5,816,000
3 Java N4,958,785
4 C# Programming Language N6,500,000
5 .NET N10,000,000
KENYA
Software Engineer (Level 1)
The average Software Engineer Salary in Kenya is KSh 1,508,876. An entry-level
Software Engineer with less than 1 year experience can expect to earn an
average total compensation (includes tips, bonus, and overtime pay) of KSh
770,000 based on 16 salaries. An early career Software Engineer with 1-4 years
of experience earns an average total compensation of KSh 1,461,317 based on
71 salaries. A mid-career Software Engineer with 5-9 years of experience earns
an average total compensation of KSh 2,700,000 based on 22 salaries.
Classification of salary of based on Popular Skills for Software Engineer.
NO SKILL SALARY
1 Java Script KSh 1,492,695
2 Java KSh 1,493,938
3 Python KSh 1,486,265
4 SQL KSh 1,200,000
5 C# programming language KSh 1,764,000

Senior Software Engineer (Level 2)


The average Senior Software Engineer Salary in KenyaKSh 3,528,000. A mid-
career Senior Software Engineer with 5-9 years of experience earns an average
total compensation (includes tips, bonus, and overtime pay) of KSh 3,336,000
based on 17 salaries. An experienced Senior Software Engineer with 10-19 years
of experience earns an average total compensation of KSh 4,716,649 based on
10 salaries.
Classification of salary of based on Popular Skills for senior software Engineer.
NO SKILL SALARY
1 Java KSh 1,560,000
2 SQL KSh 1,680,000
3 Java Script KSh 4,861,125
4 React.js KSh 4,800,000
5 .NET KSh 2,668,000
GHANA
Software Engineer (Level 1)
The average salary for a Software Engineer in Ghana is GH₵ 36,000. An early
career Software Engineer with 1-4 years of experience earns an average total
compensation (includes tips, bonus, and overtime pay) of GH₵ 36,000 based on 7
salaries. A mid-career Software Engineer with 5-9 years of experience earns an
average total compensation of GH₵ 36,000 based on 7 salaries.
Classification of salary of based on Popular Skills for Software Engineer.
NO SKILL SALARY
1 PHP GHC 48,000
2 Javascript GHC 35,077
3 C# programming language GHC 35,077
4 Java GHC 47,100

Senior Software Engineer (Level 2)


The early career Senior Software Engineer with 1-4 years of experience earns an
average total compensation (includes tips, bonus, and overtime pay) of E£
140,524 based on 51 salaries. A mid-career Senior Software Engineer with 5-9
years of experience earns an average total compensation of E£ 140,832 based on
58 salaries. An experienced Senior Software Engineer with 10-19 years of
experience earns an average total compensation of E£ 234,220 based on 16
salaries.

Classification of salary of based on Popular Skills for Senior software Engineer.


NO SKILL SALARY
1 Java KSh 1,560,000
2 SQL KSh 1,680,000
3 Java Script KSh 4,861,125
4 React.js KSh 4,800,000
5 .NET KSh 2,668,000
EGYPT
Software Engineer (Level 1)
The average salary for a Software Engineer in Egypt is E£ 99,538.An entry-level
Software Engineer with less than 1 year experience can expect to earn an average
total compensation (includes tips, bonus, and overtime pay) of E£ 78,383 based
on 28 salaries. An early career Software Engineer with 1-4 years of experience
earns an average total compensation of E£ 98,971 based on 140 salaries. A mid-
career Software Engineer with 5-9 years of experience earns an average total
compensation of E£ 146,939 based on 35 salaries. An experienced Software
Engineer with 10-19 years of experience earns an average total compensation of
E£ 44,500 based on 7 salaries.
Classification of salary of based on Popular Skills for Software Engineer.

NO SKILL SALARY
1 Java EGY 98,211
2 Java Script EGY 117,916
3 C# Programming Language EGY 95,865
4 SQL EGY 85,073
5 C++ Programming Language EGY 98,307
Senior Software Engineer (Level 2).
The average salary for a Senior Software Engineer in Egypt is E£ 143,670.An early
career Senior Software Engineer with 1-4 years of experience earns an average
total compensation (includes tips, bonus, and overtime pay) of E£ 140,524 based
on 51 salaries. A mid-career Senior Software Engineer with 5-9 years of
experience earns an average total compensation of E£ 140,832 based on 58
salaries. An experienced Senior Software Engineer with 10-19 years of experience
earns an average total compensation of E£ 234,220 based on 16 salaries.
Classification of salary of based on Popular Skills for Senior Software Engineer.

NO SKILL SALARY
1 C# Programming Language EGY 94,000
2 .NET EGY 101,736
3 SQL EGY 116,000
4 Java EGY 136,378
5 Java Script EGY 119,000
SOUTH AFRICA.
Software Engineer (Level 1).
An entry-level Software Engineer with less than 1 year experience can expect to
earn an average total compensation (includes tips, bonus, and overtime pay) of
R280,068 based on 81 salaries. An early career Software Engineer with 1-4 years
of experience earns an average total compensation of R342,711 based on 712
salaries. A mid-career Software Engineer with 5-9 years of experience earns an
average total compensation of R509,039 based on 271 salaries. An experienced
Software Engineer with 10-19 years of experience earns an average total
compensation of R636,235 based on 111 salaries. In their late career (20 years
and higher), employees earn an average total compensation of R599,248.
Classification of salary of based on Popular Skills for Software Engineer.

NO SKILL SALARY
1 C# programming Language R 373,980
2 SQL R 371,923
3 Java script R 368,827
4 Java R 355,478
5 .NET R 381,633

Senior Software Engineer (Level 2).


The average salary for a Sr. Software Engineer / Developer / Programmer in South
Africa is R619,058. An early career Sr. Software Engineer / Developer /
Programmer with 1-4 years of experience earns an average total compensation
(includes tips, bonus, and overtime pay) of R492,279 based on 74 salaries. A mid-
career Sr. Software Engineer / Developer / Programmer with 5-9 years of
experience earns an average total compensation of R588,085 based on 351
salaries. An experienced Sr. Software Engineer / Developer / Programmer with 10-
19 years of experience earns an average total compensation of R678,142 based
on 343 salaries. In their late career (20 years and higher), employees earn an
average total compensation of R765,552.
Classification of salary of based on Popular Skills for Senior Software Engineer.

NO SKILL SALARY
1 C# Programming Language R 626,998
2 SQL R 614,298
3 .NET R 616,620
4 Java Script R 558,218
5 Microsoft SQL Server R 621,675

You might also like