Technical Software Engineering Interview Questions

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Technical Software Engineering Interview Questions

Q1. Describe the process you have for a programming task, from
requirements to delivery. 
The software development process or life cycle is a structure applied to the
development of a software product. There are several models for such processes (such
as the agile method), each describing approaches to a variety of tasks or activities that
take place during the process.

1. Requirements analysis. Extracting the requirements of a desired software


product is the first task in creating it. While customers probably believe they know
what the software is to do, it may require skill and experience in software
engineering to recognize incomplete, ambiguous, or contradictory requirements.
2. Specification. Specification is the task of precisely describing the software to be
written, in a rigorous way. In practice, most successful specifications are written
to understand and fine-tune applications that were already well-developed,
although safety-critical software systems are often carefully specified prior to
application development. Specifications are most important for external
interfaces that must remain stable.
3. Software architecture. The architecture of a software system refers to an
abstract representation of that system. Architecture is concerned with making
sure the software system will meet the requirements of the product, as well as
ensuring that future requirements can be addressed.

Q2. What programming languages do you use? Which three do you


prefer or are most familiar with?
Interviewers expect engineers to be familiar with multiple languages. They
might look for an engineer who has experience with C++ and with Java, to
demonstrate the applicant has programming chops to rapidly pick up a new
language. Python is a highly sought after language. If you are applying for a full-
stack role, then you should be familiar with JavaScript frameworks like React and
Node.

Having some scripting experience with Perl or Python is also a big plus.

Q3. How do you implement your error handling?


Talk about writing tests, wrapping the code to catch exceptions, trying try/catch
statements, and looking through the WOMM development process. Make sure that you
have a well-thought-out answer to this question. 

Q4. What is the software development life cycle? What are the
differences between them? 
SDLC or the Software Development Life Cycle is a process that produces software with
the highest quality and lowest cost in the shortest time. SDLC includes a detailed plan
for how to develop, alter, maintain, and replace a software system.

SDLC involves several distinct stages, including planning, design, building, testing, and
deployment. Popular SDLC models include the waterfall model, spiral model, and Agile
model.

Q5. What has your experience been like as part of an Agile software
development process, if any?
Agile software development refers to software development methodologies centered
around the idea of iterative development, where requirements and solutions evolve
through collaboration between self-organizing cross-functional teams. The ultimate
value in Agile development is that it enables teams to deliver value faster, with greater
quality and predictability, and greater aptitude to respond to change.

Q6. What is responsive design? What is the difference between fixed and
fluid layouts? 
1. Responsive website design. Websites that are built with responsive design use media
queries to target breakpoints that scale images, wrap text, and adjust the layout so that
the website can ‘shrink to fit’ any size of screen, such as the difference between
desktops and mobiles.
2. Fluid website design. Websites that are built with fluid design use percentages as
relative indicators for widths.
3. Fixed design. Websites that are built using fixed design rely on fixed pixel widths. While
a design with fixed dimensions can sometimes be the quickest way to get up and
running, it’ll provide a less user-friendly experience across multiple devices.

Q7. What is your process to test and find bugs in an application?


Software testing is a universally expected part of software development You need to
create sets of tests and assessments to be conducted at various development stages.
In fact, testing should be carried out at all stages of development, including after your
main launch. Things change, platforms are updated, and errors in mobile apps that
were not visible before an OS update can wreak havoc.

Usually, this means viewing the application as a whole and as their component pieces,
then setting priorities in any areas that you think are more at risk than others. Tests are
then conducted to confirm the functionality, and the detected defects are subsequently
recorded. These defects can then be prioritized depending on their impact and severity.

You might also like