Course code: CISCO-25
Years with company:
Primary programming language:
Other programming languages:
Unit test harnesses:
I like new challenges and learning
Test practice now:
We have three levels of testing
We currently use CPPUtest for unit tests in the Swiss team but this is neither a recognized usage nor is it enforced or encouraged by the organization.
The first official tool is called SWIFT which is an in-house built LUA unit test framework that uses FFI bindings to C code. Please note that although we considered it a unit test framework and it can certainly be used to test a single function it is currently used more as an integration test framework.
The two levels above are whitebox tests.
The last level uses PyATS which is a black box test framework exercising our external interfaces such as CLI, SNMP, Netconf/YANG, RestConf, ...
We are building a wireless controller which basically needs to configure and coordinate the wireless access points in a given deployment.
We have 4 form factors:
> embeded on switch
> embedded in the AP
git for source control
github enterprise for commt workflow
different editors (vim/emacs/...) to the liking of the developper
opengrok for code indexing
many custom made tools for different tasks
Use header guards
Use enums not define
If define use self indexing names
No magic number
Avoid conditional compilation
use inline instead of macros
Do not use __FUNCTION__, __FILE__, ...
Avoid need for forward declaration
Function too long:
Usually when I have to scrill back and forth to reload some context in my head to understand what a later piece of code in the function does. Another indicator would be if it fits on my screen. Yet another if I have to copy-paste.
Currently, we have a code ownership model in GitHub which enforced at the pull request. This ensure those subject matter experts get involved. That being said review gets lengthy so the focus of the reviewer might not be optimal.
Favorite thing about dev:
The fulfillment of building new functionality that addresses a customer problem.
Least favorite thing about dev:
When development practices do not enable fast development.
I am pretty positive about it but I think our current build system and code architecture are an impediment to it.
Why are you attending:
To sharpen my skills as a developer as a first priority.
To improve my development workflow as a second priority.
To improve the product as a third priority.