DevSkills

Mentoring for engineers who want to go deeper into systems programming, software architecture, and the craft of building reliable software.

Pavel Šimerda is a systems engineer who helps teams understand, modernize, and evolve complex software systems. His work spans software architecture, networking, embedded systems, and Linux, with a focus on long-term reliability and maintainability.

Alongside consulting, Pavel teaches systems programming and software design, and has served as an external lecturer at Charles University in Prague. His talks explore the connections between low-level implementation, software architecture, and the design of complex software systems.

DevSkills grew out of that teaching and mentoring work — a place to support engineers directly, one on one or in small groups, rather than through a single company’s internal training budget.

Who this is for

  • Developers moving from application code into systems programming
  • Engineers who want a deeper understanding of C++, Rust, or Linux internals
  • People preparing for more senior or architecture-focused roles
  • Teams that want an experienced outside perspective on how they grow developers

Mentoring is built around your actual work and goals

Sessions are practical, code- and problem-driven, and adapt to where you are:

  • Systems programming — memory, concurrency and undefined behavior in C/C++, modern C++ (C++20/23/26), Rust for safety-critical code, Linux internals
  • Software architecture — structuring larger codebases, evaluating trade-offs, reading and reasoning about existing systems

One-on-one, small group, or one-off deep dives. Every engagement starts with a short conversation to understand your background and what you are trying to achieve.


What you can build skills in

Reading and stabilizing legacy C++ codebases

If a system you own:

  • crashes in production
  • suffers from race conditions or deadlocks
  • shows unexplained latency spikes
  • has grown difficult to maintain

You can learn how to perform the same kind of focused review and analysis an experienced systems engineer would — assessing architecture and risk, recognizing undefined behavior and concurrency issues, and prioritizing what to refactor first. The goal is for you to build this judgment yourself, not to outsource it.

Debugging and performance diagnostics

For hard-to-reproduce problems — high CPU usage, memory corruption, networking anomalies, issues at the user space/kernel boundary — you can build real fluency with the tools and mental models involved: reading core dumps, tracing and profiling with GDB, perf and eBPF, and developing the intuition for where to look first.

Embedded Linux & systems integration

For engineers bringing Linux to custom hardware, integrating networking stacks, or designing safe parallel processing, mentoring focuses on building the underlying skills — not doing the integration for you — so your team can own this work going forward.

Technical training

Compact, hands-on workshops covering:

  • Modern C++ (C++20/23/26) for systems programming
  • Rust for safety-critical systems
  • Debugging and tracing techniques
  • Linux user space and kernel fundamentals

Always adapted to your codebase and environment.

Contact

✉️ mentoring@devskills.eu

Based in Prague, Czech Republic.
Available for remote sessions and in-person meetings in the Czech Republic.