1/62
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
difference between a pointer and a reference
a pointer stores a memory address, can be reassigned, and can be null. a reference is an alias for an existing object, must be initialized and cannot be reseated.
stack vs heap
stack stores local variables and is managed automatically, heap stores dynamically allocated data and requires careful memory mangement
what causes a memory leak
when dynamically allocated memory is no longer reachable but was never released, it can accumulate, degrade, or crash a long running system
what is a segmentation fault and how to debug it
a segmentation fault occurs when a program attempts to access a memory location that it's not allowed to access, to debug it id reproduce it, inspect the stack trace in a debugger, find the bad pointer, and test the fix
constructors vs descructors
constructor established a valid initial state when an object is created, a destructor releases resources when the object leaves scope or is deleted
what is object oriented programming
it organizes code around objects that combine data and behavior, the four pillars are encapsulation, abstraction, inheritance, and polymorphism
encaspulation
protects an objects internal data
inheritance
lets one class build on another
abstraction
hides internal details and shows only the essential features
polymorphism
lets the same interface support different behaviors
overloading vs overriding
overloading uses the same function name with different parameters, overriding replaces a virtual base class function in a derived class
pass by value vs reference
pass by value creates a copy so changes do not affect the caller, pass by reference operates on the original object and avoids copying
array vs vector
array has a fixed size and is limited, vector manages a dynamic contiguous array, tracks the size, and handles allocation
const
means something that should not be modified through that name or interface, variables, reference, pointers, etc..
header files are used for?
declaring interfaces, classes, functions, etc
difference between c and c++
c is direct, minimal abstractions, c++ builds on that with classes, templates, libraries
current c++ skils
ive built a strong foundation through coursework in object oriented programming, data structures, and algorithms. ive actively been refreshing it and am ready to deepin it in a professional setting
when would you use common data structures
use a vector for indexed data, a stack or queue for ordered processing, hash map for fast lookups, and trees or graphs for connected data
common time complexities
o1 is constant, ologn halves the work, on scans once, on2 compares every pair
binary search works?
on sorted data, compare the target with the middle element and eliminates half of the remaining range each step
hash tables work?
a hash function maps a key to a bucket, collisions are handled through methods such as chaining or open addressing
detect dupes by?
scan the collection and store seen values in a hash set, if a value is already present its a duplicate
walk me through your debugging process
i reproduce the issue, collect logs and inputs, isolate the cause, test a focused fix, and run regression tests to make sure nothing else broke
what if a crash is intermittent
compare logs, timing, inputs, environment details across failures, add targeted logging or use a debugger to find the pattern
how to verify a fix
i reproduce the original failure first, apply the focused fix, and confirm the same test now passes. Then I test boundaries, invalid inputs, adjacent behavior, and integration points.
how would you test a new feature
test the expected behavior, invalid inputs, boundaries, and likely failures, include unit, integration, and regression tests
overview of packet loss project
I helped build a P4 system that compared packet counters between switches to locate full and partial packet loss. I wrote Python controller logic, tested it in Mininet, and improved measurement consistency with active and inactive counters.
why were ingress and egress counters needed?
They let us compare traffic leaving one point with traffic arriving at the next. A consistent difference between corresponding counts indicates loss along that path, and considering direction helps localize which link is affected.
what did the python controller do?
it collected counter information from the switches, coordinated the comparison logic, and used discrepancies to detect and localize loss, P4 handled fast data-plane measurement, while Python handled control-plane coordination and analysis.
biggest challenge of p4?
The biggest challenge was comparing counters from the same time window. Active and inactive counter sets let one collect traffic while the other was read.
how was the system validated?
We created a controlled Mininet topology, introduced known packet loss, and checked whether the system identified the correct link and direction.
how would you improve this with more time?
id say automate repeated trials, and measure false positives, detection time, and system overhead.
tcp vs udp
TCP is connection based and provides reliable, ordered delivery, UDP has less overhead but does not guarantee delivery or order.
explain tcp handshake
The client sends SYN, the server replies SYN-ACK, and the client returns ACK. This synchronizes sequence numbers and establishes state before application data is exchanged.
what happens when a url is entered?
The browser resolves the domain with DNS, establishes a secure connection, sends an HTTP request, receives the response, and renders the page.
switch vs router
A switch primarily forwards frames within a local network using MAC addresses. A router forwards packets between IP networks using routing tables.
how was wireshark used
I use it to capture and filter traffic, inspect protocol fields and timing, follow conversations, identify retransmissions or failed handshakes, and compare behavior before and after a change.
authentication vs authorization
Authentication verifies who a user or system is. Authorization determines what that authenticated identity is allowed to do.
encryption vs hashing
Encryption is reversible with the correct key and protects confidentiality. Hashing is one-way and produces a fixed-size digest used for integrity checks and password verification with a salt and suitable password-hashing function.
symmetric vs asymmetric encryption
Symmetric encryption uses one shared secret and is efficient for bulk data. Asymmetric encryption uses a public/private key pair and supports key exchange and digital signatures but is more computationally expensive.
what does tls protect
tls authenticates the server, encrypts data in transit, and protects in integrity
what is ssh
ssh provides encrypted remote access for commands, file transfers, and tunneling
how would you investigate a vulnerability
reproduce it safely, determine the scope and impact, find the root cause, implement and test a secure fix, and document how to prevent it in the future
what is syn flood
sends many connection requests without completing the handshake, filling server resources, and blocking legit users
what did the firewall rules accomplish
the limited traffic matching the attack pattern while trying to preserve legitimate connections
what is an embedded system
computer system designed for dedicated function within a larger product, often with constraints on memory, processing, power and reliability
how is embedded development different
Embedded development has tighter memory, performance, timing, and hardware constraints, so reliability and low-level debugging are especially important.
what is firmware
a low level software that initializes and controls hardware
what is the linux kernel
it manages memory, processes, devices, networking between applications and hardware
how is your experience with embedded systems
I haven’t worked professionally with embedded systems yet, but I understand their memory, performance, and reliability constraints. I’m excited to deepen my C/C++ and low-level debugging skills.
git fetch vs pull vs clone
Clone copies a repository, fetch downloads remote changes without applying them, and pull fetches and then merges or rebases those changes.
git merge conflict
It happens when Git cannot automatically combine overlapping changes. I would understand both intended changes, edit the affected files to a correct combined result, run tests, and then complete the merge.
agile development
Agile delivers work in small increments and uses regular feedback to adjust priorities and improve the product.
why software with cyber masters
Software engineering and cybersecurity are closely connected because secure systems start with reliable code. I want to build strong engineering skills while applying a security mindset throughout development.
why am i ready even without extensive SWE
I have a strong computer science foundation, graduate-level security and networking experience, and hands-on technical projects. I learn quickly, troubleshoot systematically, and communicate clearly.
how i explained technical information clearly
At GE Healthcare, I created training resources for a cloud transition affecting more than 500 employees. I organized the information around their workflow and made it clear for different technical skill levels.
technical challenge
in my packet-loss project, inconsistent counter timing made results unreliable. I helped use active and inactive counters to create more consistent measurements and learned to isolate problems systematically
learned something quickly
When I needed to learn P4, I focused on the core concepts, used documentation, and tested small examples before applying it to the project. That approach helped me become productive quickly., additonally at spelman our course work allowed us to learn multiple languages quickly for example html, java, javascript, python, p4
mistake or setback?
An early testing assumption led to inconsistent counter results. I revisited the setup, improved how measurements were collected, and learned to validate assumptions earlier.
disagreement with teammate
I focus on the work rather than the person. I listen to their reasoning, agree on decision criteria, compare evidence, and support the final team decision.
how to respond when you dont know an answer
I’m honest about what I know, reason from related fundamentals, and explain how I’d verify the answer. I’d rather ask a focused question than guess.
why ciena
Ciena combines software, networking, and security, which fits my background and goals. I also value its sustainability work, technology education efforts, and responsible approach to AI.
career goals
In the short term, I want to become a well-rounded software engineer. Long term, I’d like to specialize in secure systems where software, networking, cybersecurity, and data protection intersect.