Modularity and architecture

Many of the difficulties involved in maintaining software stem from poor software architecture: lack of layering and unclear interfaces, insufficient extensibility, duplication of function and failure to abstract platform-specific code all lead to software that is brittle and hard to modify.

Our experts have experience in diagnosing and fixing architectural defects in software written in object-oriented and more traditional structured programming languages.

Neil Ongkingco

Neil is part of the team developing SemmleCode, and has extensive experience in developing applications in Java using various frameworks. Before working at Semmle, he worked as a software engineer in a Canon subsidiary, developing software in C for embedded systems.

Neil has experience developing applications in the Eclipse framework (a pluggable framework for Java), and has used various compiler and parser frameworks in his academic research. He was instrumental in the design and implementation of several major components of a portable Bluetooth protocol stack written in C. His academic research and development with Eclipse has given him a considerable amount of experience with OSGi, a popular module system for Java applications.

He has an MSc in Computer Science (Distinction) from Oxford University and a BS Computer Science (Summa cum laude) from the University of the Philippines Diliman.

neil120px

Julian Tibble

Julian is well aware of the effects of software architecture and modularity on development time, software complexity, and reliability. His doctoral research focused on new features for programming-languages that support the cleaner separation of software into independent modules. This research led to several publications at major international conferences.

Julian’s industrial software-development experience includes being responsible for the in-memory relational engine used in Semmle products, and forming part of a consultancy team in the area of compiler design and implementation for Semmle’s partners.

Julian received his BA in Computer Science from the University of Oxford, and is nearing the end of his studies for a DPhil from the same institution.

julian150px