top of page

THINGS I'VE WORKED ON

Although resumes serve an obvious purpose, I'm often more interested in the story behind the acronyms and industry jargon.  If you are the same as me, read on below.  But if you just want the basic facts of my work history, here is my resume in PDF.

​

Resume in PDF

Oracle Visual Builder

​

Oracle Visual Builder is a cloud-based application development platform for enterprise customers to create applications for web and mobile. It has been used by enterprise customers to create both internal and outward facing applications. It has also become the primary development platform for Oracle's Cloud Enterprise applications such as CRM and HCM. I wrote the back-end build service that creates hybrid (Cordova) mobile applications from the same source code used to build web applications. What made this system somewhat special is that I implemented our own iOS IPA archive signer. This allowed us to produce pre-built templates that were modified and then re-signed without having to deploy the Xcode toolchain to the Oracle cloud. I also wrote something similar to modify binary versions of Android artifacts so that we didn't need Google's toolchain either.

​

I've also had some involvement in deploying the Visual Builder cloud service into Oracle's next generation "OCI Native" platform.

​

Oracle Mobile Application Framework (MAF)

​

Oracle Mobile Application Framework (MAF) is, as of 2021, a legacy mobile framework developed by Oracle to help its customers create native mobile applications.  Because of Oracle's ownership of Java, MAF has the distinction of being perhaps the only (copyright compliant) platform that runs a full Java ME runtime on Apple iOS.  I designed and wrote a build system for MAF as well as a visual front-end in Eclipse (SWT) that allowed enterprise developers to build and deploy their MAF applications directly to Android and iOS devices. A key aspect of the build system I wrote compared to the JDeveloper environment that preceded it, was that mine generated a full Ant-based build script that could be user-modified and run headless in addition to from the IDE.  In those days, Oracle tooling was entirely IDE-centric and enabling command-line builds was done as an afterthought that often required the user to bootstrap a substantial portion of the IDE just to run it. Imagine being forced to bootstrap a headless instance of Eclipse or IntellJ just to output a release deliverable from your Jenkins or TeamCity job.

​

Oracle Enterprise Pack For Eclipse (OEPE)

​

OEPE was an attempt by Oracle, in the words of one product manager, "to fool the enemy by dressing in his clothes". Throughout the 2000's, open-source software was seen as a persistent threat to established producers of on-premise software like IBM and Oracle.  So they spent a fair amount of money making contributions to open-source projects from Apache to Eclipse to hedge their bets on the future of software. My first position at Oracle was as a full-time open-source committer for JavaServer Faces Tools in Eclipse. Of course, a new generation of large scale software company like Google and Amazon (AWS), and even Microsoft, was concurrently leading the way to a future where software profits were now generated more from services provided and not directly from selling shrink-wrap or shelf-ware.  The actual tools I worked on are a footnote in the history of software now.  Still, it was interesting to see the goliaths of software looking a little afraid of a bunch of techno-hippies, even though I never fully bought into the revolution myself.

​

Blackberry (RIM) MDS Studio

​

MDS Studio was a custom IDE based on Eclipse for developing MDS applications for Blackberry devices. This was back in the heyday of Blackberry when they were called Research In Motion and their stranglehold on enterprise mobile had yet to be challenged by Apple and Google.  In my opinion, the Blackberry handset was the original smartphone, although most people think Apple invented it.  MDS was a development platform for mobile apps before that was a mainstream notion. The part I worked on, Studio, allowed a developer to drag and drop components to build an application, much like what Visual Basic allowed you to do for Windows apps.  You could then build the app into an archive (just like modern Android and iOS apps) and upload it to a service that allowed you to download it to a Blackberry device and run it (sound familiar?).  Unfortunately, in my opinion, Blackberry as a company in that era saw itself as a handset producer with software being an afterthought. Players like Google meanwhile, saw mobile as a platform to sell advertising and other services and so basically gobbled up Blackberry's market from the low end, while Apple moved in from the high-end with sexy consumer-oriented devices that integrated with their iTunes and Mac platforms. Maybe Blackberry never really had a chance against that double-threat, but I continue to believe that if they had made software platform products like MDS (not to mention BES and others) more central to their strategy, they might still be something more than an also-ran in the smartphone market.

​

Other Stuff

​

When I was a co-op (intern) in the mid-90's, I worked for a little startup that was founded by Helge Knudsen, one of the original architects of Amdahl's mainframe application system, ObjectStar (originally Huron).  Helge had seen Amdahl try and fail several times to create a 4GL system for enterprises to put modern Windows front-ends on their ObjectStar applications.  This was just before the web gained primacy as the medium for applications and before Jobs re-invigorated the Mac, so Windows was the only game in town and Visual Basic was huge. Helge hired a team of former Amdahl employees and some fresh young kids and we set to work building a set of ActiveX components that would essentially create an interface through which existing ObjectStar applications could be converted to VB apps.  Although I was only an intern and was only able to contribute in minor ways during four month work cycles, I feel like I was still involved in the creation of one the very first enterprise middleware stacks; a market segment that would grow to multi-billions of dollars over the next decade.  And I got to meet Gene Amdahl.

​

Having seen how easy Visual Basic seemed to make application development (and fully underestimating how the coming of the web would massively turn that on it's head), I decided I wanted to diversify my skill set into something completely different: embedded software. I took my last co-op term at a company called iMPath Networks, which was a startup making telecommunication hardware for capturing traffic camera video and centralizing it to local command centers. Initially, I worked mainly on iMPath's desktop management software, Televue, so I was still in the world of Visual Studio writing a desktop application used to manage networks of iMPath's devices. When I returned after graduation though, I moved to the firmware team responsible for writing the embedded software that took commands from Televue and used it to manage the devices. This was an excellent way to get the salient parts of an computer engineering degree without having to do all those annoying DEs. In the long-run, I still wonder if it was a mistake though because when the "dotcom bust" came and decimated network equipment employment, I was left adrift without a particular specialty and with too little experience for what few jobs were out there.

​

After iMPath laid me off I spent a couple of years floating around trying to figure out what to do next. The job market was very weak at that time, especially in Ottawa where I was living. The one notable professional achievement for me during that time was some work I did on contract to a marketing company in Toronto called Exchange Solutions. They were in the business of loyalty marketing. I helped them build a Flash-based application that would be deployed into Chase bank branches as well as the web that retail banking customers could use to determine what benefits the bank would provide if they moved more of their business there. Flash provided an interesting (and I think historically missed) opportunity to produce a much richer application than could have been done in HTML at that time. And fortunately, all the new PCs being sold with Windows at that time had Flash installed, which allowed us to get around Chase's IT restrictions on installing new software on branch PCs.  And the current version, Flash 5, had just introduced a new "XML Socket" object you could use to connect to a web server and send XML data back and forth.  So I created a pared down version of XML-RPC and implemented a Java proxy that marshalled and unmarshalled simple procedure calls between our Flash app and an application server. As I write this in early 2021, Adobe has recently EOL'd Flash.  RIP to a great software platform much misunderstood.

 

Shortly after that, I got hired at Blackberry.

Work: Text

©2021 by Cameron Bateman.

bottom of page