2014 is dead and gone. I just noticed I had neglected blogging for more than an year. Attribute that to a rather busy year 🙂
One of the things I enjoyed most in 2014 was watching the World Cup down in Brazil with my son who is 11+ now and a fairly good player for his age. And like everybody else we were super shell-shocked by the 7-1 loss of Brazil to a well-oiled German team…almost could hear the Germans say “Brasilien ist nichts” 🙂 That was one fluke-ish day.. But Brazil did play real bad that day and deserved the huge loss. Hopefully Dunga brings back the magic. The WC finals was a real boring affair and was woken up when Goetze scored out of the blue.. Was real happy with the US’ performance..Costa Rica surprised all. The man of the 2014 World Cup was of course Mueller for me.. A remarkable young player who looks like a 40 year old 🙂 but who has great “vision”.
On the knowledge front, learned a lot about bigdata with Hadoop(self study plus outside enrollment at the free IBM site and at Dezyre up in Bangalore, India). Bigdata technologies are hyped big time and there is a new role out there called the ‘data scientist’ and is the sexiest title to have right now(but do brush up on them algorithms and Big-Oh and data structures before hitting the interviews(Skiana’s Algo design book is always a good read). Well even though hyped, there is a need to extract meaningful info from a lot of meaningless unstructured data(like this blog, for example 🙂 ). My outside enrollment at Dezyre proved to be a good and a bad idea. I couldn’t understand what the instructor was saying half the time. But the enrollment is for a lifetime.. which means I can’t access it from my afterlife 🙂 . For 300 usd, the enrollment was kind of worth it, I should say, to gain enough insight into Hadoop to be dangerous.
Now, Bigdata with Hadoop is a moving target..Hadoop1 is different from Hadoop2 and MapReduce in Hadoop2 is just one of the ways of processing bigdata. Hadoop2 uses YARN(yet another resource negotiator) to plug n play other distributed computing paradigms for processing bigdata…noteably Spark and Tez. YARN in Hadoop2 takes over resource management from MapReduce which had the dual duties of cluster management & data processing in Hadoop1. This new architecture seems to have boosted efficiencies in data processing ~100-fold. As for me, I went thru Hive, Pig, HBase, Oozie, Mahout, Flume, Sqoop and Zookeeper at zillion miles per hour and did homework problems to gain more understanding about each of these components within the Hadoop ecosystem. Once I figured that Hadoop was still evolving(in other words, a moving target), I slowed down…because the mind can’t retain something long enough until one is into the technology in the real-world. So RIP “BigData with Hadoop” knowledge until I get to use it in the real world… 🙂
Professionally, I was a team lead for an aircraft maintenance software for most of the year…so went thru a project management mode for more than three-quarters the year…a mix of walking around with an xls, stealing good coding resources to do the needed work, attending scrums & meetings to tell bigwigs why the schedule was in shreds 🙂 , to actually doing some deep coding in Java myself. In the latter/later part of the year I (requested to be) moved to a research team headed by a super energetic guy who makes things fun and challenging. My main contribution in 2014 for the research team was to write a Java application in Swing and later in JavaFX 2.0 to marry the abilities of two products. The Swing one was 5K lines of code and found that Swing sucked in terms of placing an html link in a JTable row…I had to improvise(if you the reader, need the Swing solution to this, let me know..maybe will blog another day, how I did it)…basically used a dialog popup off of the JTable row and then provided the clickable link within that dialog popup. As soon as this Swing app was done I had to rewrite the whole in JavaFX2.0 which was another set of 5K lines of code(apparently after Java7, Swing will no longer be supported by Oracle and hence the move to JavaFX 2.0). The things I liked with JavaFX 2.0 was the ability to use a WYSIWYG interface to design the UIs- an awesome improvement in the Java desktop app dev world(a bit clunky…but still better than the coding-running-viewing -coding-running-viewing cycle to see how things jive in the UI when using Swing). I used (er..had to use) really complex components like TableView and TreeTableView.. both of which have a semi-huge learning curve. Being a seasoned developer I made the code very modular so that maintenance is now a breeze(well may hear a not so good comment if another being tried to maintain my code 🙂 . I also had the need while doing these Swing and FX apps to do serialization of objects using the Jackson API…How super simple is a two-liner…object.WriteValue() to write a Java object to file in the JSON format and object.ReadValue() to convert the JSON object back to the Java object…All APIs should be that simple:) and this worked like a charm all the time…Well in this case I could have done pure object deserialize and serialize…but if one wanted JSON to be manipulated in any fashion after conversion Jackson API is apt for a less-work-involved conversion to a human readable format(…compare that with JAXB …first you need to create an xsd from the POJO using schemagen and then compile that xsd to get the JAXB class(es), place those in yr classpath…too much insane work to convert a POJO into a human readable “manipulatable” transport format)
The new year is upon us…hope I get to do more interesting stuff this year. My total software world experience has reached the 17 year mark in 2015. I could make a good top Engineering Manager at this point in time – and dabble in an eclectic mix of technology and management 🙂 Over and above the years of experience, I am academically qualified to be an engineering manager with both an MBA(with a concentration in proj mgmnt) and an MS in CS under my belt. And dear techies out there…the only way you can advance in your career is to move into management, unless you are at say Google, FB, MS etc where techies have a career path…or perhaps you have good “political” friends who can “pull” you up. The rest-of-the-world-techies in the end are misused by biz types and seen as just a mercenary to get a job done while the techie’s life passes him/her by. The company I work for doesn’t really have a career path per se for its techies…which is utterly disheartening :(. All the jobs I would love to do are at remote branches of the company and none allows virtual. Imo, most big companies waste a lot of resources/talent within by not marrying people with the right job at the right times and in the end the employees say adios and take all of their knowledge to a better place(well what is better today? Dunno..one could find only by trial an error 🙂 ). Raises the question why an employee at location X of the company can’t do a job he/she is qualified for at location Y of the same company. I think it is the HR dept personnel that have to be proactive in retaining talent by marrying people to new gigs at any location of a global company…iow, open virtual up big time…Why would a company waste its resources to recruit for a location from outside when they have the talent to do that same job at some other location of the same company? In my case the company touts …ooh security-issues and such hocus-pocus to not make jobs virtual..which is utter bs in this day and age when all locations are VPN-connected. Perhaps a generational change in upper management is needed to see the potential of the virtual world which could also help to reduce the need for mid-level-do-nothing-super-yakker-managers…hopefully the change happens before I retire and take up that hobby of fishing trouts 🙂 . Visit authenticjobs.com to see some real good tempting virtual jobs that could be done from anywhere in the US or the world…Now that is how real software work should be done…instead of being tied to a desk at some fixed location. If I log in from a beach in Hawaii my productivity would be awesomely up…then next day from a quiet coffee shop etc..A change in location, a few days off etc can improve productivity many-fold. Another lesson the HR of big corporations haven’t figured out…a huge motivation booster too(of course there may be irresponsible folks who could misuse all this, but most techies won’t misuse such motivation-boosting opportunities)
Now a bit of remorse…I have been postponing bringing out my dream app for years..the idea is super good. I may have already lost zillions, per my calculations, in not doing it. The app has been living in my head for almost 10 years and I had dabbled with various frameworks to get it done…wrote code now and then but technology has improved so much so that I have decided in the end(after 10 years 😦 ) to make a hybrid mobile app and sell for 99c a piece. My New Year’s resolution is/was to get this done in 6 months time and try my luck by publishing it to the appstore, appsmarket etc. It should sell good(that is, if people find out in the apps jungle 🙂 ). 401K and pension I can’t depend on(they are imo tricks to buy your time till you get old while the biz guy steals all yr money in the meantime 🙂 …maybe this app will be my salvation. If I am to fail in bringing this out this year, I shall outsource it next year and get it done(thought of outsourcing this many a time, but the idea is too good that I am afraid it will be stolen by the one to whom I outsource to). It is for me to try the market…let the market decide if the app is awesome or not(I might be a dreamer after all ..and c’est la vie 🙂 )
Have an awesome 2015!