Practice repository for entry-level C++ and Linux systems concepts that often appear in embedded Linux, tooling, and systems-software interviews.
This repo is designed to bridge the gap between small scripting experience and a more structured C++/Linux workflow:
- command-line parsing
- config file loading
- file I/O
- lightweight logging
- basic TCP client code
- clean header/source separation
| Path | Purpose |
|---|---|
include/ |
Public headers |
src/ |
Reusable C++ modules |
tests/ |
Small assertion-based tests |
examples/ |
Executable examples |
docs/ |
Interview notes and extension ideas |
-
arg_parserParse flags such as--host,--port,--config, and--verbose. -
config_loaderRead simplekey=valuetext configuration files. -
loggerSmall logger with log levels and consistent output formatting. -
tcp_clientMinimal POSIX socket client for Linux networking practice.
From WSL or Linux:
make
make test
make examplesClean build artifacts:
make cleanFor fresher C++ and embedded Linux roles, interviewers often look for:
- comfort with multiple
.hpp/.cppfiles - standard library usage without overengineering
- reading errors from the compiler
- command-line and file-based tooling
- basic Linux systems awareness
This repo is a practice space for those foundations.
- Logger
- Config loader
- Argument parser
- TCP client
- Combine them into one example app