Tuesday, June 30, 2015

How APEX changed my life

I had the good fortune of being in attendance for Joel Kallman's APEX keynote at the ODTUG Kscope15 conference this year.  Joel's talk was titled "APEX Episode 5: A New Frontier", but could have just as easily been titled "Breaking Bad: The Joel Kallman Story" or "How I Learned to Stop Worrying and Start Smashing Skulls".  In his talk Joel dove into his transformation beginning late last year and explained the formation of the Twitter hashtag #LetsWreckThisTogether.  Joel put the call out for APEX developers everywhere to start tooting their own horns via blogging and Twitter.

I'll provide some background on myself and how I got started with Oracle Application Express over eight years ago in 2007.  Back then I was in my mid twenties and on the rebound from a wild two year ride of semi-professional poker.  I had blown off a very promising career as a DoD cleared software engineer (Java) to spend some time in what you might call self discovery - traveling, writing, and spending hours playing Texas Hold'em online and in brick and mortar casinos.  I was barely getting by grinding small stakes games when I suffered a personal loss that sent me into a bit of a downward spiral.  The events in my personal life had a profound effect on my poker game, and a small profit quickly turned into big losses.  It reached the point where I was not only broke but in debt with friends and family.

When I finally threw in the towel on my poker career and tried to find legitimate work I discovered how shaky references and unexplained gaps in work history can really hinder a guy's career.  In my own mind I was a brilliant, misunderstood software engineer, but in reality I was a completely unproven talent with no real work to show.  After many rejections and at risk of losing my car - the last asset I owned - I swallowed my pride and took a job building point of sale machines on an assembly line.  It was blue collar work, standing for eight hours a day as a foreman breathed down my neck.  I remember feeling the calluses formed on my delicate geek hands after the first week of work and thinking to myself - what a waste!

However it felt great to be working again and earning a legitimate living, and slowly starting to re-pay the good folks who had helped bail me out of my mess.  I was four months into the job when I found myself sitting across from a curious HR representative, who was eyeing my resume and wondering what a guy with my background in computer science was doing working an assembly line.  A slew of contract openings had just come up that needed to be filled fast, and I happened to be a warm body with a security clearance and the word "Oracle" somewhere on my resume.  The few bridges I hadn't burned managed to pull some strings for me, and I found myself shipped across town and introduced to Danielle, an Oracle DBA who was looking for an Oracle developer but instead got me.

She set me to work cutting my teeth on PL/SQL, and within a few weeks I was able to generate a simple report page built on an Oracle database table.  It was then that Danielle first mentioned APEX to me.  The way she described it I groaned - it sounded like an IDE tool similar to NetBeans, which is a decent tool nowadays, but when I had used in 2004 to develop Java applets the tool was a complete train wreck.  Why would I want to use another care bear tool to write garbled code for me when I can just code it all myself?  Danielle insisted I give it a chance, and so I logged into a workspace, created my first application, and generated my first report.

I was hooked.  What had taken me weeks to create with raw PL/SQL was accomplished in a half hour using APEX.  And it was better.  Faster, better looking, with sortable reports accomplished just by clicking the column headers, and easily customizable colors.  Everything just worked.  I dove in head first and explored the various item types, regions, DML processing, authorization schemes, themes.  I went from creating small applications which were laughably bad, to better applications that began to catch on with users, to reviving enterprise-wide databases through the use of APEX.

After five years of government work I made the jump to the private sector where I'm currently employed with a fortune 500 company.  I was hired in a technical position completely outside of the IT infrastructure (a Java shop) and given free rein to create, and we're absolutely crushing it.  Statistical process control, approval management, customer dashboards, reporting, charting, emailing.  We're making the Oracle database sing, and doing so in a fast-paced, agile setting.

If you're reading this you're probably already an APEX developer and I'm preaching to the choir, but if by chance you've never tried it I encourage you to drop what you're doing and go get a free workspace at apex.oracle.com to take it for a spin!  It's a simple, beautiful, insanely powerful tool that will accelerate the value of any Oracle installation.  For me personally it has sparked a passion that was maybe otherwise missing in my career and led to advancement and recognition within the workplace.

So what can you expect from this blog?  During the open mic night at Kscope15 there were many excellent applications displayed, but with the exception of a couple demos (shoutouts to Jayson Haynes and Ed Jones), applications didn't really stray too far from the core APEX forms & charts.  We have plenty of those types of applications as well, but we've also developed what I feel are some unique applications for APEX as applied to our manufacturing process - melting, forging and inspection of specialty alloys.  My future posts will showcase the more unique ways we're using APEX and what it has helped our company to achieve.

1 comment:

  1. What a great blog post! Being as I am also "In my own mind ... a brilliant, misunderstood software engineer" it really struck a chord with me. And, as a relatively new convert to, and now total zealot of, APEX it's even more pertinent. So, thanks heaps for the shout out!
    Should you, or your readers, wish to relive my demo, here's a video that I recorded in case I wasn't able to show it live. Maybe it doesn't make much sense without me explaining what's going on, and it's an older version of the code than what I demoed, but the music is quite pretty.