Welcome! My name is Adam Craven, and here is a little about me...

My software engineering career informally began in Primary School when I started learning about coding and subroutines in BASIC and QuickBasic on Apple II-E and IBM XT machines. Towards the end of Primary School I started playing with Pascal and Terminate-and-Stay-Resident programs (TSRs).

In my early years of High School, I quickly moved to Borland C++ 3.1 and I was interested in writing my own little games and 3-D texture-mapping routines. I then decided that the family 486SX wasn't powerful enough, and that drove me down the road of learning X86 Assembly Language, delving deeply into optimising code by squeezing out every CPU cycle with hardware-specific instructions, and using Protected-Mode programming to let me effectively use the huge 4MB of Expanded Memory.

I also became lovingly annoyed with my brother who I noticed was accessing my DoubleSpace disk drive without my permission. So, using my TSR and Assembly Language knowledge, I hacked DOS's Command.Com and injected my own code that prompted the user to enter a password when they attempted to change into my drive. If the password was invalid, then I used an undocumented feature of DOS to change a flag which rendered the drive inaccessible.

Later in High School, I wrote a menu system in C that the school purchased and deployed to their computers, and in Grades 11 and 12 I received the prizes for the computing subject.

After four years of university study, I received First Class Honours in a Bachelor of Information Technology, majoring in Artificial Intelligence and Networks and Communications.

I started my formal career in 2000 as a Graduate Programmer in a successful software development company in Brisbane, Australia. I have been involved in both large and small enterprise software development teams, developing successful solutions on a wide variety of technologies, including Web (HTML5, CSS3, Node.js), .NET, Java, SOA, IBM BPM/IIB/ODM, and Microsoft BizTalk. As an experienced Technical Lead and Solution Designer, "The Cleaner" of software problems (ala Pulp Fiction), a Behaviour-Driven Development advocate, clean-code advocate, design pattern advocate, staff trainer, mentor, and more, I endeavour to keep my knowledge current with industry best practices and design patterns.

For details on my formal career experience, see my Linked-In profile.