Open R&D Lab

Open R&D Lab

Fundamentals

  • Data Strucutures Theory and Real-World Implementations
  • Algorithms Theory and Real-World Implementations
  • Operating Systems Theory System Programming
  • Network Software Development & Distributed Systems
  • Real-World Software Engineering Practices

Best Practices

  • NASA Coding Standard
  • Reading Code & How to Review Code
  • Interface Design
  • Shared Objects/DLLs
  • Build-Process Internals
  • Multi-Platform Development
  • Debug & Release Mode Development
  • Agile Software Development
  • Continuous Integration
  • Spiral Development
  • Done means Done
  • Accurate Time Estimation
  • Industry Quality Deliverables

Languages

  • Multi-Language Development
  • bash
  • C
  • C++
  • Java – optional
  • C# – optional
  • Python – optional

Development Paradigms

  • Procedural Programming
  • Functional Decomposition
  • Dynamic Programming
  • Object Oriented Programming (OOP)
  • Generic Programming
  • Rule-Based Programming
  • Event-Driven Systems
  • Unit Testing
  • Plug & Play Frameworks
  • Multi-Platform Development
  • Cross-Platform Development
  • Multi-Platform Development
  • Framework Development
  • Project Lifecycles
  • Design Patterns
  • Multi-Paradigm Development

Embedded/RT

  • Linux System Programming
  • Linux Drivers & Kernel Intro
  • Embedded Targets
  • Cross-Compilers
  • Remote Debugging
  • Crash Dump Analysis

Environments

  • Linux
  • Windows – optional
  • Android – optional
  • iOS – optional
  • .Net – optional
  • VxWorks – optional

Tools

  • Eclipse
  • Wireshark
  • Makefiles
  • Revision Control
  • Optimizers / Profilers
  • Debuggers
  • Code Blocks – optional
  • VStudio – optional
  • emacs – voluntary

Architectures

  • Event Loops
  • MVC / MVVM
  • Multi-Process Systems
  • Multi-Threaded Systems
  • Distributed Systems
  • Client /Server
  • Multi-Platform Systems

Miscellaneous

  • Linux Admin for Developers
  • SQL
  • STL/boost
  • C++ internals
  • GPIO
  • UML – optional