The idea and opportunity for starting this blog came when my employer, OpenText Corporation, agreed to make material originally written for internal use publicly available. Starting from 2007, I became increasingly interested in – not to say passionate about – API design and began looking for information in books, presentations, magazine articles and blog posts. I frequently brought up API design issues at work, earning a somewhat dubious reputation as the “API cop”. After about two years, my managers asked me to write down the API design practices I was pontificating as a set of internal guidelines. This material forms the nucleus of this blog. I’ll publish it in several installments as I clean up and reformat the content for the Web. While having material reviewed by colleagues at my disposal gave me the impetuous for starting the blog, I intend to keep posting new material as long as I have interesting and useful things to say about APIs.
I made the unusual decision to write a blog entirely about API design because I see rapidly increasing interest in the topic, but know few quality resources available online to software developers who wish to learn about or share their own insight on API design. Moreover, both I and my colleagues believe in contributing back to the software developer community and felt that you might find it useful if we shared our experience with you.
While generous support from my employer and helpful input from many colleagues at work is gratefully acknowledged, I would like to state that all opinions are entirely of my own and not of my employer. OpenText does not endorse or recommend any of the ideas, tools, techniques or methodologies discussed. Furthermore, all the material is provided strictly “as is”, for information purposes only, without any explicit or implicit warranties as for the accuracy of information or fitness for a particular purpose. Also, nothing in this blog should be interpreted as a commitment by my employer to deliver any specific products, features or enhancements.
About the author
Ferenc Mihaly is a Senior Software Architect living in Waterloo, Ontario, Canada. Ferenc spent the last 20 years developing software for scientific computing, computer-aided engineering, industrial process control, business intelligence, business process management, and enterprise content management, while working in four different countries on two continents. Ferenc holds a Ph.D. in Electrical Engineering from Polytechnic University of Bucharest, Romania.