Embedded Design Engineer Interview Prep
Embedded Design Engineer Interview Prep
If you’re reading this, Congratulations! You’ve been selected to be interviewed by our team for a potential position at Cowlar (Pvt) Ltd.
Please read this entire document carefully. Once you have completed your preparation and feel like you are ready, please email us with
your preferred date(s) of availability. We try to schedule the interview on your preferred dates provided that date hasn't already been taken.
The venue for the interview/ test is our office located (here) in Islamabad. Our requirements , interview process & hiring philosophy is
unique. It’s important that you review the information carefully and decide if you want to work here.
General Requirements
- Intelligent individual with excellent critical thinking & problem solving skills
- Hardworking, decent & honest
- Should have the ability to assimilate complex ideas
- Have excellent communication skills & understand how to train, manage & help other team members
- Recently graduating candidates MUST have the ability to learn by doing [1] [2] using online learning methods / tutorials
- Must have the ability to follow instructions1
- Must be a team player [1] [2]
- Understand good work ethic [1]
- Must be a good fit into our team culture
- Must value your time & our time [1]
- Should treat everyone 2 with respect
- Must know how to use the internet 3
- Must have clear core concepts
- Excellent Programming & Algorithm development skills
- Must have the ability to learn independently (without being asked)
- Must be good at reading documentation
- Must be good at writing documentation
- Must be able to summarize documents / tutorials / videos & teach core concepts to other team members
- Must enjoy work
- Must be ambitious & motivated
1
Please follow instructions provided to you during the interview, test and training phase. We don't like asking twice. This is especially important for fresh graduates.
2
Everyone means everyone, including our support & cleaning staff
3
We don't expect you to know the answer to every question but we do expect you to know where to look. You should know how to google solutions to problems and use stackoverflow / online
user forums / online community resources / discussion groups to your advantage. We expect you to know how and where to search for solutions to problems that you don't understand. We
expect that before you ask a colleague, you will have tried your best to search for a solution online (by yourself)
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
Very strong & deep understanding of the C language [1] [2] [3] [4] [5] [6] [7]
1. Loops, conditional statements and decent hold of syntax [0] [1] [2] [3] [4] [5] [6]
2. Variables, keywords and scope [1] [2] [3] [4] [5] [6]
3. Data types [1] [2] [3] [4] [5]
4. Enums [1] [2] [3] [4]
5. Preprocessor basics [1]
6. Operators (Modulus) [1] [2] [3]
7. Structures [1] [2] [3] [4] [5] [6]
8. Functions [1]
9. Pointers [0] [0] [1] [2] [3] [4] [5]
10. Linked Lists [1] [2] [3] [4] [5] [6]
11. String manipulation
12. Bit Masking [0] [1]
13. Bitwise operators [1] [2] [3] [4] (very important)
14. Bit Manipulation [0] [1] [2] [3] (very important)
15. Parsing a string with sscanf [1] [2] [3] [4] [5] [6] [7] [8] (very important)
16. Using sprintf function to generate dynamic strings [1] [2] [3] [4] [5] (very important)
17. Knowledge about different compilers [1] [2]
18. Compiling C programs with multiple files [1] [2]
19. Ability to develop algorithms and write code in C [1] [2]
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
Microcontrollers
Very strong & deep understanding of Microcontrollers
29. Difference between 8 bit and 32 bit controllers ? [1] [2]
30. Basic understanding of ARM architecture? (esp Cortex M) [1] [2] [3]
31. Microcontroller Memory overview [1]
32. Interrupts [0] [1]
33. Timers [1] [2]
34. UARTs [1] [2] [3]
35. I2C [1]
36. SPI [0] [1] [2] [3] [4] [5]
37. Pointers [1] [2] [3]
38. Stack [1]
39. Stack pointer [1]
40. Heap [1] [2]
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
66. Basic working knowledge of Logic Analyzers [1] [2] [3] [4] [5]
Instrumentation / Interfacing
Basic instrumentation / electronics section / interfacing section
67. Capacitors [1] [2] [3] [4]
68. Op Amp basics ?
69. What is a schmitt trigger ?
70. ST25DV NFC chip
71. RC522 RFID / NFC tags
72. Decoding UART / I2C using logic analysers [1]
73. Decoding Full duplex SPI with logic analyser [1]
74. Decoding SPI with an Oscilloscope [1]
Electronics Basics
If you’re applying for the embedded track, you should still have some basic knowledge of voltage levels, power supplies, ADCs and how to
build a simple circuit that allows a microcontroller to switch loads (high power).
75.
Capacitors (14 videos)
a. Ceramics and impedance
b. Ceramic cap voltage dependency
c. Current flow thru a cap
d. Why caps in parallel
e. ESR bad caps
i.
76. Circuit Analysis & Debugging
77. Transistor zener clamp circuit
78. Voltage vs Power vs Energy
79. Zener diode
80. How transistors work
81. Transistors working
82. Linear Regulators vs switch converters
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
Advanced Section
Difficult section (don't prepare for this before other materials are not covered properly)
108. (RTOS) What's the difference between Mutex & Semaphores ? [1]
109. Mutex Semaphore in RTOS [1]
110. RTOS vs Bare metal programming ? [1]
111. What is an eye diagram in terms of signal timing ?
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
112. What are AT commands (in the context of GSM modems etc) [1] [2]
113. How do ground VIAs improve PCB layout ? [1]
114. MQTT Protocol [0] [1] [2] [3] [4] [5]
115. MQTT Mosquitto broker [1]
116. MQTT Publishers / Subscribers [1]
117. COAP Protocol [1] [2] [3]
118. STM32 DMA [1]
Miscellaneous
Misc interview questions
119. What is a kernel ? [link]
120. What are some of the Basic concepts in PCB design ? [1]
121. What is a VPN ? [link]
122. What is a DMA ? [link] [1]
123. What does the DMA work (wrt microcontrollers) [1] [2] [3] [4] [5] [6] [7]
124. What is Cache memory ? [1] [2]
125. What is Quad SPI or QSPI ? [1] [2]
126. Study the documentation for Otti
127. What is Git ?
128. CISC vs RISC [1] [2]
129. RISC- V architecture [1] [2]
130. What is a callback ? [1] [2] [3]
131. Difference between Polling, interrupts and DMA ? [1]
132. How do you pass an array info a function ? [1]
133. What is a Memory leak in C/C++ ? [1]
134. How do FDM 3d printers work ? [1]
135. What's the difference between servo and stepper motors (wrt Automation) ? [1] [2] [3] [4]
136. How do computers keep time ? [1]
137. GPS Data Format[1]
138. Understanding NMEA [1][2]
139. Understanding Quaternions[1][2][3][4]
140. Understanding CTs[1][youtube]
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
ESP specific
141. ESP-Mesh network ? [1] [GITHUB][youtube]
------------------------------------------------------------------------------------------------------------------------------
Based on how the interview goes we may make an offer right away or get back to you in a couple of days.Alternatively some candidates
are placed on a wait-list and called when there is a requirement generated from our team.
For fresh graduates, we have some initial training requirements that need to be met before the selected candidate can begin work at our
startup. The orientation part is usually a couple of weeks. You will typically spend 75% of your time going through the training program
(learning the important things that will allow you to start contributing towards the actual work we do). The remaining 25% time will be spent
on implementing what you learned (by doing small tasks / projects). As time passes you’ll spend more time doing and less time learning.
At Cowlar, we believe our work should be a blend of hard work, innovation & excellence. This requires us to constantly strive to make
ourselves better at what we do. This means that learning is an essential part of everyone’s job. Not learning is not an option here.Everyone
at our company typically spends about 25% of their time learning new things and working on cutting edge (sometimes bleeding edge tech).
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
Our employees are expected to always be comfortable with learning new things, solving complex problems and working as part of a team
so we can deliver true value to our customers.
We typically have a probation period of three to six months. We offer competitive salary packages and offer opportunities for upward
mobility within the organization. Our salary packages are based on employee skills, learning ability, contribution to successful projects and
how well you fit into the team culture.
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
4
Please note. If you’re an experienced developer, the threshold of what you should know will be different. We don't care about the number of years you’ve worked in the Pakistani software
services industry, we want to see what happens when the rubber hits the road. Everyone says they’re good. Please show us, don't tell us.
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
2. It is perfectly fine to reschedule your interview if you think you need more time to prepare. There is no negative marking for delaying or rescheduling
the interview date. You can reschedule as many times as you want 5 .That’s perfectly ok from our point of view. It is NOT OK to show up unprepared
and waste your & our time. People who show up unprepared are quickly offered a cup of tea & their interview ends in no time. We only spend time
interviewing people if we think there is a chance we can hire them. We generally only interview candidates ONCE.
3. You can use the internet during the interview. There is no negative marking for using the internet during the interview. You can also access this
document (or any bookmarks, code snippets, previous projects during your test for reference materials. You can bring as many cheat sheets with you
as you want.
4. It is generally recommended that you bring your own laptop so it’s installed with your preferred software/ code editors etc. If you cannot bring your own
device, one will be provided to you.
5. As you watch the videos in the test materials section below, increase the playback speed to 1.25x. Then as you get comfortable increase speed to
1.5x and eventually to 2x speed. Eventually, you’ll be able to watch a 40 minute lecture in 20 minutes without a problem.
7. Look at the [1] level links for each section before diving in. Sometimes this will not be the case, you need to realise when you need to abort / close a
link and move on to the next link.
8. During the interview and demo portion at our office. You can use two life lines.
(A) Can use internet. If you’re experienced, you should have a decent hold of syntax (you should not have to look at a website in order to write a for
loop)
(B) Phone a Friend/Person (You are allowed to call anyone you want (you will have 5 minutes to have a conversation over the phone)
9. Please use online resources to revise and practice your core concepts. Here is a little secret. If you follow it, we will hire you. Worse case scenario is
you become better skilled at what you do. The secret is to work hard and spend the necessary time to learn. We are telling you in advance what
questions we will ask and where/ how to prepare for them.
10. You need to get comfortable with learning online and offline. One of the benefits of working at Cowlar is the having paid resources and training
materials available to you. If we hire you we have purchased more than 100+ paid courses / online tutorials from sites like Udemy, VueMastery,
5
If you want to reschedule your interview on the same day it was supposed to take place, you’ll need to give us four hour’s advance notice. This helps us differentiate from people who want to
reschedule & those who don't show up.
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
VueSchool, SkillShare, Pluralsight etc. so our team has the best conducive environment for learning. We also arrange to provide webinars that might
be useful for your professional growth.
For fresh graduates, it is highly recommended to invest some time in learning the material. Take a look at the topics, watch the videos /
read the articles and learn by doing. You will remember what you learn by doing . When you feel like you have sufficient idea and are 2x
or 5x better than you were before you started your preparation, please contact us by email to setup a date. Please send us three dates that
work for you. Do not think that there is a deadline for this position. Don’t schedule the interview fearing that someone else will take this
position. Schedule it when you’re ready because we usually only interview candidates ONCE 6. If you’re good and promising, there is a
very good chance we will hire you and put you through our training program. In the unlikely event where you don't get an immediate call,
you might be placed on a short-list where we tap into first when looking to add new fresh graduates.
In the unlikely event that you don't hear back from us at all, (the worst case scenario), you will always be in a win-win position. This is
because you will
- Still have gained some important & useful skills
- These skills will help you throughout your professional career
- Dramatically increase your chances of being hired by a good company in the future.
- You’ll learn how to learn online. That is an important asset.
For experienced professionals, please review the materials carefully. You might know a lot of these things. Our test / questions get
increasingly difficult based on the duration of your industry experience and based on the reputation of the (good) companies you worked
for in the past. You might learn something new while you revise and get better at what you do. There is really no reason to not learn.
From our point of view, the good thing about hiring experienced professionals is that they have already learned a lot and can begin
contributing to our team in a short period of time. Sometimes, the bad thing about hiring experienced professionals is that they have
6
We do make exceptions to this rule in exceptional circumstances. The chances of you getting that exception are about 2%
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
learned some bad habits 7 in the past. Please leave all those bad habits behind when you come in for the interview. This can be difficult to
do. Bad habits are difficult to break. But one can always try. It takes self-realization, will power & determination. The greatest minds are
those that can be changed. We don't hire people with bad habits. The reason is that we cannot allow anyone to ruin our culture, no matter
how brilliant they are. There is no & never will be any place for brilliant jerks at our startup.
7
The bad habits can be programming or development related. They can be related to poor development methodologies or practices. They can also be related to not being a team player. They
can be related to not acting responsibly. They can be related to not treating others with respect. They can be related to gossiping or participating in office politics. If you think writing good
maintainable code, commenting, documentation, Testing, Software Quality Assurance is for losers, please schedule an interview for Feb 30, 2050
Cowlar Inc. / HR / Embedded Design Engineer Interview Prep
Interview FAQs
- At any time, you can choose to decide that you don't want to work here and leave.
- Please feel free to use the toilet (in case you need to)
- Please feel free to pause the interview in case you need to pray. You can pray in the designated area in the office.
- Lunch, snacks and dinner are offered free of cost. Please accept food /drinks that is offered and dont do ‘takulf’.
- If you smoke, no smoke breaks are allowed during the interview. You are welcome to go outside and smoke as much as you want
before or after the interview.
- Please treat our people with respect. We try very hard to do the same.
- Please keep all comments / feedback to yourself till the end of the interview (in case the interview lasts more than one hour).
Do you provide any remuneration for candidates traveling from outside Islamabad / Rawalpindi ?
No
Will you answer my questions about the YC experience or provide feedback about my startup idea ?
No
technology development (basically you need to know what other people are doing in the company so you can talk to them if you’re in need
of their expertise for your project / task.
How do you decide which roles to assign to new team members once you hire them ?
Generally speaking, over time, you (the employee) & us (the company) will mutually agree on your areas of specialization based on your
preferences, skills, your proficiency and the company’s needs after the orientation and training period.