Dimitris Staikos
Professional endeavours

Here is a short narrative of my professional biography so far (January 2009)

The undergraduate NTUA years

Postgraduate NTUA & NCSR Demokritos

The Unibrain years - Part I

The LogicDIS years

The Unibrain years - Part II

The Present & The Future

The undergraduate NTUA years

In 1989 I succesfully qualified  for the Electrical and Computer Engineering Department of the National Technical University of Athens from where I graduated in 1995 (it's a five year curriculum).
My diploma thesis was the design and implementation of an SNMP MIB for Windows NT 3.1. The work was performed in NETMODE, run by Prof.Maglaris and his colleagues.
All in all, I was particularly interested in compilers, operating systems and systems software.

Postgraduate NTUA & NCSR Demokritos

From Jan 1995 until Sept 1996 I was a fellow at the NCSR "Demokritos", in the Institute of Informatics and Telecommunications.
On Sept 1995 I qualified for PhD candidate at NTUA, with professor Timos Sellis who is an infamous (and loved by all) NTUA professor working in the area of databases.
I would work on a PhD that would combine the research interests of the Software & Knowledge Engineering Laboratory of the Informatics Institute of Demokritos (AI, logic, reasoning, temporal databases, etc) with the interests of Prof.Sellis.
However I was operating at a completely different wavelength. Being the low-level guy that I still am today, I had not much interest in AI, logic and the likes, but rather in more down to earth things like COM, Windows Programming, Operating System Architectures, distributed systems, parallel programming, multithreading, etc.
I made an honest-to-god effort to get the grips of all the stuff that would get me going on my PhD, but what could I do? Temporal logic and temporal databases were definitely not the kind of things that would keep me awake all night in front of my computer :-)

At some point, while still muddling through with the PhD effort, I took a part-time job in NTUA. I was told that it was a simple project of porting a 16-bit application to 32-bits, so I agreed to do it. When I got to see the source code of the application I was in for a good surprise... _dosgetvect was one of the first calls that program was making.
Wait a minute dude... you are not supposed to be doing such things in Win32 applica..t...i...o...n...s..... Soon enough reality sunk in and I was pretty much shocked... The 16-bit app was not any run-of-the-mill app... It was an app that was directly accessing an ATM network adapter.
The 32-bit equivalent was a kernel mode driver that would also have to provide a user mode API. Moreover it would also have to be an NDIS driver that would provide the means to implement Ethernet emulation over ATM.
Nobody at that time (both NTUA and some companies working on the side) thought it was possible to do such a thing, but they didn't tell me that :-) So in my total oblivion I did the impossible. Sometimes it does prove helpful not to know what you're up against.

So that was what got me started in Windows device driver programming. That was early in 1996, when NT 4.0 was king in windozeland. I was so crazily excited with this stuff, that I soon knew that the PhD business was just not meant to be, so at some point I gave it up.

Another interesting thing that happened during the same period was my involvement in the ACM International Collegiate Programming Contest. I prepared and trained the first team ever to represent NTUA at that contest. 

The infamous Brute Force! Since I came up with the team's nickname, I also got the "copyright" and call myself BruteForce since then. I was the team coach for two consecutive years (95-96).

Here are some programming guidelines, gathered over the experience of these contests and all the long hours programming.

 

The Unibrain years - Part I

Unibrain is a tale of glory and tears.
Glory, because at Unibrain I did interesting stuff and work that reached out to the whole world, but at the same time tears because our first collaboration ended rather abruptly on November 1999.

There are various reasons why that happened.

Basically both sides committed serious mistakes and finally we ended up separate, having both lost something we valued. I was young at the time (28 is young), not really experienced although I was kind of a wiz-kid, my brains were over my head and of course I was just a bit stuborn. It would require some diplomacy to handle a person like me back then, not bravado.

I started working for UB (shorthand for Unibrain) on September 1997.

Having under my belt the job I did at NTUA, I immediately suggested that we should implement an Ethernet emulation over 1394, and then go ahead and implement a full blown kernel mode API based on the class/miniport driver architecture prevalent in Windows device drivers.

We started the Ethernet emulation right over. We designed an Ethernet emulation protocol and built a drier that was called FireNet and is still today part of Unibrain's ubCore product.

In Spring 1998 George Zachopoulos, one of the founders of the company, met a rather weird but phenomenal guy, Bill Altman. Bill was 65 and a real genious. He was a hardware guy mainly, praying to his God every night in assembler, thoroughly believing that Windows NT should be rewritten from scratch in assembly, dropping all that crappy security stuff which were just overhead and made it slow.

Bill was also in favour of building a FireWire API, so at the beginning of May 1998 we started working on the API design. Weeks went by like days, and by November 1998 we had the first version of FireAPI released. It was capable of asynchronous transmission but could not do isochronous yet.

On all the Firewire stuff I was working closely together with Paul Lekkas, an unbelievably incredible programmer. There was nothing he couldn't or he can't do. If there should be a statue outside the entrance of Unibrain, that should be Paul's! Paul did the miniport drivers (the low-level close-to-the-metal stuff) and I did whatever remained (1394 Class Driver, Serial Bus Manager, user mode API etc).

By the April of 1999 the isochronous stuff was done as well and we showcased our software at the 1394 Trade Association Conference at Osaka.

The stuff we presented there was really really good. We were doing 1394 video at 640x480, 256 colors, 30 frames per second on something like a PIII 550 using barely 10% CPU time, with absolutely NO dropped frames and absolutely NO delay between the live picture and what you could watch on screen.

The demo went pretty smoothly and enough people got quite impressed with our work, among which were some managers from Sony.

Now, we are in May 1999, in the middle of the dot.com boom, so everyone was overly excited about how hot our stuff was. VCs were coming and going all the time, everyone was thinking that we are such hot shots and that by the same time next year we would be driving our Ferarris :-)

That was the seed for disagreement and big fights. It's already a difficult thing to negotiate when big amounts of money are involved. If you KNOW the numbers then one way or the other you can strike a deal. If you DON'T KNOW the numbers and just "imagine" lots and lots of money, then both sides can easily get paranoid and the rest is history.

The 19th of November 1999 was my last working day of my first period in Unibrain.

 

The LogicDIS years

I went to LogicDIS in April 2000, after entertaining the idea of starting up my own company. Thank heavens I was wise enough NOT to do it at the time!

I worked in the Securities ERP development team until autumn 2003. That was a very interesting product and I had lots of fun working on this team. I learned lots and lots of stuff about stock trading and securities in general.

Since September 2003 I was assigned to the R&D Manager position. Among other things I was responsible for maintaining the Omega framework, an in-house C++ class library that LogicDIS used to develop most of its shrinkwrapped applications, doing the interviews for new hires etc.

I worked as the R&D Manager until September 2005. A couple of months later LogicDIS merged with Singular to form SingularLogic.

 

Unibrain Part II

Unibrain underwent considerable changes during 2003-2005 which were for the better. George Zachopoulos took over complete control of the company management and the company was recovered from a tough financial situation and was made profitable in 2005. In February 2006 I joined Unibrain again, to work on the Firewire software once again. 

My official title at the start was "Software Architect". I hated that title. I hate software architects. That is mostly because I've met so many of them and only one was worth that title, namely Clemens Vasters. I don't consider myself to be in the same class with people like Clemens. I am more of a Software Plumber :-)

Anyway, at some point I was downgraded R&D Manager so I was cool again :-)

Things went mostly OK for the 3 years I was there, but the time came for me to move on. Since Jan 1st 2009 I no longer work for Unibrain.

 

The Present & The Future

The future is not what it used to be, but I am working on it ;-)