Johan Cockx

Software Engineer
Make an Appointment

About Me

Although I am an electronic engineer by education, most of my professional experience is in software engineering. Since 2013, I am running my own software consulting company Sikando (www.sikando.com), specializing in prototype software development and solving tough software challenges.

My Experience

For over 25 years, I have designed and implemented large and complex EDA tools for chip design, both in a research environment (K.U.Leuven, IMEC) and in an industrial environment (Silvar-Lisco, Mentor Graphics). During this time, I focussed on modularity, OO design and developing high quality software. For implementation, I have mainly used C++ in a Unix/Linux environment.

My focus was in particular on compiler-like code transformation tools, such as high level synthesis tools and semi-automatic parallelization. As a side-effect, I acquired a deep understanding of the C and C++ programming languages, as well as the ability to quickly analyze and understand complex software systems.

Starting 2009, I have worked on a number of actual applications, including robot control software,
embedded software for an UWB localization system, FPGA based hardware and software and a web based data mining application. In these projects, I gained a thorough understanding of networking issues and experience with real time and embedded software as well as FPGA design.

My Skills
  • C and C++ programming (more than 30 years of experience)
  • Design and implementation of complex technical software including embedded software
  • Compiler implementation: LLVM, GCC, EDG front-end
  • Object-oriented design and implementation, design by contract, design patterns
  • Refactoring of complex software
  • Unix/Linux tools and scripting
  • Network software: sockets, TCP, UDP, HTTP, ZMQ ... on Linux and Windows
  • Web technology: Html, Javascript, Python + Django, Java, FCGI, Nginx
  • Multi-threaded, real-time and embedded software
  • Design and modeling of hardware and embedded software
  • Qt graphical user interface
  • Matlab and Simulink, especially integration with C code
  • Limited experience with FPGA design (Xilinx ISE / XPS / System Generator)
  • Limited experience with PCB design and electronics
  • Languages: Dutch (native), English (fluent), French, German.