Consulting vs Fulltime job

Before you read this blog, i would request you to have a look at my site so that you get an idea of what i have been doing. I have been introduced to many challenges to choose between the consulting and fulltime positions when i moved to USA from Germany. I was with product development companies all the while and its little strange for me the “idea” of consulting. I did quite a bit of research on different companies and what kind of job should i choose. For the rest of my blog, i do not want to take any of the company names. I hope that you would be able to relate what i am saying to your own experiences. I would be glad to hear more experiences and your views.

Before i say anything, I want to clarify what i am referring to as a “consulting job”. You are working on the payroll of a consulting company, which does not have any product behind it, but just acts as a head-count machine. They do have some direct clients and you are placed with one of them. Its purely on your luck that you get a long-term contract and you are not fired from the job from time-to-time.

By “full time job” i mean, you are working with a Product development, Services, rarely some consulting companies on their payroll. You might work for their own product or might do services to customers. You can be “fired” at any point of time but atleast they will give you 2 weeks notice (i guess this is a norm).

And now i want to share few categories that i considered before i decided my path. Hope this helps to some of you who are looking for a change.

  • Work Experience
    • Fulltime
      • You work with a single product for a long time. You will get to see to see entire system and some times you might get a chance to build the system from scratch.
      • Depending on the companies technology direction and its vision, one need to constantly change their technology area.
      • You might some times consult your customers to implement your product, train them and others. Still it might be with the product of your company.
    • Consulting
      • You are with clients, helping them to achieve their goals.
      • You might not have any say on the product direction or what the customer is doing. You are considered purely as a resource who is supposed to execute their instructions.
      • Your are at the customer site because you are a specialist. If you dont meet their expectations, you need to search another job.
      • On the technical level, you will see different systems and get to learn customer’s environment.
  • Influence
    • Fulltime
      • You are given certain responsibilities and you as a fulltime employee and you have the right to influence your organization.
      • Every action you do, every decision you take has a direct effect on the organization.
    • Consulting
      • Mostly customers do differentiate the fulltime employees and consultants. Social life with fulltime employees might be difficult.
      • You as a consultant normally will not have any influence on the project.You are there to help the project. Thats it.
  • Compensation
    • Fulltime
      • On the industry average fulltime employees are paid less than the consultants counterparts with same technology and experience.
      • Some times waiting for bonus and performance reviews can be frustrating.
      • Compensation is the last thing that you would discuss with the company.
    • Consulting
      • Consultants gets paid more as their clients pay more on the hourly basis. Its very important to know that the “client” has absolutely no liability to wards the consultant. Client might do all his decisions according to his whims and fancies.
      • Its unlikely that you discuss about the exact compensation in the first call.
      • Your consulting company might not be able to pay you at the right time as there is always a lead time for him to get paid by the client. Unless its a big company which has life of credit, its difficult to trust.
  • Interviewing Process
    • Fulltime
      • Normally companies will post the job description on their own web site or some of the job posting sites. They do not prefer to go via vendors / recruiters.
      • Candidate takes a phone interview – HR, phone interview – Technical, personal interview – Technical, phone call to finalize the offer and then a complete background check.
      • The entire process is normally around 1-2 month duration. At the end of this, you can still say NO to the offer that the company made.
    • Consulting
      • You normally decide on the hourly rate in the beginning of the process
      • Your consulting company or other vendors first talks to you about the job and then they SUBMIT you to the client.
      • They insist you to have all the KEY WORDS that the client is looking for in your resume. If you dont have it, its a crime.
      • In the event of multiple vendors marketing you, its likely that you have multiple resumes. (you might not like it, but it happens)
      • You typically have a phone interview and then the client decides if you are in the project or not. In the ideal case, the consulting company has to SCREEN the candidate, do the BACKGROUND CHECK, get BEST of the available technical brains.
  • Miscellanious
    • Fulltime
      • I do see many people who got stuck in the companies in the full time positions.
      • If you stick to a company for a long time, be sure that you update your knowledge and also be aware of whats happening out side your company.
      • Some complain about the bureaucracy in the company and they are not able to grow for a long time.
    • Consulting
      • Its pity that some times your friends might suggest you to have a Java, Oracle and Microsoft certifications in your resume, where as you have not given those certification exams.
      • If you are of 1-3 years experienced and what to apply for a job via a consulting company, they might ask you to put a minimum of 6 years of experience. In the end if you see your time line in your life, you have more experience than what you can.

At the end of this exercise, its very important to understand that your priorities are very important. You need to decide what you want to do depending on your passion and previous experiences. All the topics and points i have raised are purely result of my study and 3 months of job search for some good project and good company.

I wish everyone — who is looking for a job — all the best and make a wise decision. Luckily i did make a decision and i am glad for what i did.

Posted in management, software, technology | Tagged , , , | Leave a comment

Eclipse Shortcuts

Its been a long time i have updated my knowledge on eclipse shortcuts. I have compiled default shortcuts from eclipse 3.3 and i am planning to release one for eclipse 3.4 very soon. There is a significant change from eclipse 3.2 to eclipse 3.3 and eclipse 3.4 that the preference pages for shortcuts. There was a possibility to export entire shortcuts to a csv file and use it. Unfortunately there is no export feature in eclipse 3.3 and 3.4.

For all the good old eclipse developers, i am providing a shortcut document as pdf. Eclipse Shortcuts

Enjoy your eclipse.

Posted in eclipse | Tagged , | Leave a comment

Does Eclipse support Oracle’s ADF … ?

I am on a crossroad to decide on the IDE platform to be used for a specific application. Now i am with the company where we are discussing about Eclipse Vs JDeveloper :). Anyway the main decision point is the fact whether eclipse supports ADF or not. We have an existing application in eclipse but in future we have to move the application on to ADF. As many would know JDeveloper does have integrated ADF support and right now its not clear if Oracle releases a plugin for Eclipse.

If anyone in the Eclipse or JDeveloper community has done the analysis of both the ides, please do share your experiences. Till now i used to do the comparison between Eclipse and Net Beans but i never imagined that i need to do a comparison against JDeveloper.

“May the sanity be with everyone”.

Posted in eclipse, java | Tagged , , | 6 Comments

Are we not supporting WTP-all-in-one downloads ?

WTP project comes with lot of added frameworks and tools for any EE and Web developer. When i tried to download the latest maintenance build, there is no option of the all-in-one package instead there are bunch of other plugins required along with WTP [Eclipse Platform (Platform, JDT), Eclipse Modeling Framework (EMF, XSD InfoSet, SDO), Graphical Editing Framework (GEF), Data Tools Platform (DTP) (required only for EJB or JPT development), Eclipse Test Framework (required only for Automated JUnit tests), Eclipse releng tool (required only for committers to more easily “release” code to a build), Third Parthy code from Orbit (currently much more than needed for WTP, but some committers like having the whole heap in their target)].

And now the problem for an end user(probably an IT developer/developer) is that, he has to download and struggle with the versions and other incompatibilities. I especially loved the idea of distributing all-in-one so that any user can simply download and use it right away. If at all eclipse WTP project is thinking to discontinue, i would sincerely request not to do so. It really saves a lot of time and frustration for the developers. I guess some users do have options like myeclipse and pluse, but i would love to see these bundling concept from eclipse itself.

Posted in eclipse, plugins | Tagged , | Leave a comment

MacBook Air – My take on it.

MacBook Air is out in the market and as usual with a huge hype in the AIR. I am impressed by the ad in which take out the Air from a post cover. Thats awesome and it looks great as with any other MacBooks. Many of my techie freaks use Mac and they tell me that its a matter of “cool factor” and “feels great” during demos. I have been reading many of blogs and news about the MacBook Air and hope the following information helps you all.

Technical Specs :

  • Intel Duo Processor : 1.6 GHz / 1.8 GHz  (optional)
  • RAM : 2 GB On Board
  • HardDisk : 80GB (4200 RPM)
  • Display : 13.3 inch
  • Connectivity : Wi-Fi and Bluetooth
  • Peripherals : USB, Audio Out, Micro-DVI, Integrated Camera
  • Battery : 5 Hours

The important component that i would always look for is the price and it comes for a price of $1,799. For the folks who would want to get Mac just for the heck of it, its fine but for the general laptop buyers, its toooooooooo expensive. In the market where you would get a decent laptop for $500-$700, its too much to pay $1800 for a “world’s slimmest laptop”. Here is my take on the positive and negative aspects…

Its good to be :

  • World’s slimmest Laptop
  • Another Apple product that i would own
  • Great to carry it while you are on road
  • Excellent choice for frequent travellers

But, i would love to have :

  • Built in CD/DVD drive (though you can get one as USB interface)
  • Phone and Network (LAN) connectivity is needed
  • Built in RAM cripples me after few years

Of course, if you would love to have the sleek laptop, you need to compromise in some of the regular features. I am sure everything else is available as an USB add-in. But in the end, we as buyers need to decide if its “Value for Money” ?

Posted in reviews, technology | Tagged , , , | Leave a comment

Getting ready for my short-talk at EclipseCon 2008

Happy New Year 2008 to everyone. This is my first blog in 2008. Last year ended with some sadness as i lost my backpack containing laptop, camera and some other important belongings in New York airport. I could not trace it till date and i my hopes have been diminishing. It took a little while for me to get a new laptop, prepare it for the daily routine.

Past 1.5 year i have been concentrating on tweaking, customizing and writing plugins for the Web 2.0 frameworks. I was quite successful in providing a good IDE to the IT developers with a good set of code generation features. Thanks to WTP, EMF, Eclipse DnD and in the end Eclipse Platform. In the meantime, i have also encountered with the basic question of “Can Eclipse UI be similar to other widget frameworks out there in Web 2.0 space ?“. I was haunted with this question all the time and probably in Oct 2007, i was ready for an answer. While its not possible to expect a very similar UI in eclipse as in GWT, Dojo, Rico, Zimbra, Flash, etc… , it’s definitely possible to get some-what-close look as in Web 2.0 kind of applications.

I am sharing all my experiences to make an eclipse application to give a look of Web 2.0 application. I thank SWT, JFace  and Nebula to provide such versatile framework. I hope this short-talk would help many of us to have some dangling ideas about how to achieve a “Web 2.0 style widgets and look”.

I am very excited to see you all at eclipse and share my experiences. I would love to see and chat with my previous colleagues Stephan Eberle, Frank Gerhardt, Elias Volanakis and many others.

Posted in eclipse, plugins | Tagged , , , , , | 2 Comments

Sad demise of my Laptop :(

I am having a bad time during my year end vacation. I have planned to visit my sister in New York and Harrisburg, PA.  I was all excited to go around Time Square, Empire-state Building, Central Park and the New Year bash. I was little more excited for this holidays as i am meeting my both sisters, my parents and its the new year’s party.

The moment we landed in New York, before even we could see the city, we lost my backpack. My backpack always contained the most valuable things in my life…… the laptop. This laptop contained all my research effort from past 3 years of time and all my personal photos. As one might expect, the laptop was a very very dear one for me. The backpack also contained my Canon camera, my wife’s purse, few of my important documents, etc… We were so stunned and disturbed about this occasion that it took 3 days for us to come out of this. We did complain to the Airport police and also made numerous calls to the airport. I lost it on December 20th and today is December 31st and i have not received any encouraging messages from them. Its a monetary loss of 2000$ and more of a sentimental value.

This incident definitely taught us few things, which we would never forget in our life.

  • Miracles do happen 🙂 We never ever expected that we will loose our backpack.
  • Things do happen. How ever careful you are, sometimes fate rules YOU.
  • Move On. Bad things do happen and its necessary to move on. You can build almost everything as long as you are alive.
  • Tomorrow is a New day. However bad or worse is today, tomorrow WILL be a better day. You need to believe in this. 

And yes…..i am moving on…… 

Posted in reviews, travel | Tagged , , , | 1 Comment

Looking for a great new year 2008

All good things comes to an end and so is Year 2007. This year has been quite different with various good and bad experiences.

I have started the year with a great excitement for my marriage and the first 3 months went in marriage preparations, marriage and travel to Fremont, CA. The other 3 months have been quite busy with the personal life and my professional life, where we — at a silicon valley startup — did a great job of the WEB 2.0 platform delivery. My self and my wife did visit quite a few places in Califronia and all the time favorite being the California Freeway 1. Places like Santa Cruz, Monterey, Carmel-By-The-Sea, Big Sur, San-Luis-Obispo, Mistery Spot, Seattle-WA, Dellas-TX, New York and Harrisburg-PA were some of the places we have visited. In my personal life we did miss my parents, who are in india now. But we need to abide by what we choose. In anycase they are here to visit my sisters and myself, so its not all that bad.

2007 Highlights :

  • My marriage in Feb
  • Moved to Fremont, CA
  • New SUV in March
  • My Website and Blogs gained traction
  • Started few Open source projects and also lot of visibility in Eclipse community
  • Year end bash in New York

I am lookinf forward to new year with a lot of positive energy in inspirations. The year 2007 did teach me lot of lessons in life and i am all thrilled to move forward.

Wish everyone a great new year and happy time. 🙂

Posted in reviews, travel | Tagged , , , | Leave a comment

Eclipse as a Platform

Eclipse, the ubiquitous platform, has survived another challenge by releasing Europa and the incredible download numbers speak for it’s success. Initially it was perceived as a Java IDE , then a tools development environment, then a Rich Client Platform (RCP), then Tool Integration Platform, and now it’s an eco-system of platform, application frameworks, tools, runtimes, and especially a universal tool platform – an open, extensible IDE for anything, but nothing in particular. The intent of the article is to highlight the different areas of the industry and how Eclipse is used by different category of users.

The Eclipse open source community has over 60 open source projects. These projects can be conceptually organized into seven different “pillars” or categories:

  1. Enterprise Development
  2. Embedded and Device Development
  3. Rich Client Platform
  4. Rich Internet Applications
  5. Application Frameworks
  6. Application Lifecycle Management (ALM)
  7. Service Oriented Architecture (SOA)

The list gives a fair understanding of the different areas where eclipse is getting popular and also the business verticals that can be transformed. It is very interesting to see what Eclipse means to different people. The following scenarios give a better understanding of what can be done with Eclipse.

Eclipse – Java IDE

As envisioned in early 2000 (even now after the Europa release), it’s a Java IDE with which Java developers can create, modify, debug, and build Java projects. Eclipse provides different features like code refactoring, syntax highlighting, syntax/code checks, code completion, quick fix, compile/build, team integration with CVS, debug, jarring, and so on. In this use-case scenario, Eclipse is being primarily used as Java IDE. Eclipse + JDT = Java IDE. The Eclipse Platform contains basic UI elements (SWT, JFace), a runtime, a help system, debug support, search support, and some other IDE elements. The Java IDE can be downloaded from Eclipse Site.

Eclipse as IDE

Eclipse – Plugin/Tool Development IDE

Along the similar lines of the Java IDE, the C/C++ development tools, the PHP development tools, the Cobol development tools, and so on, have brought fabulous features in the Eclipse ecosystem. These development tools not only improved the productivity of the developers but also Myth-Busters for many managers, developers. This gave the real value for Eclipse as an open, extensible IDE for anything, but nothing in particular. Vendors were successfully able to adopt the Eclipse Platform and build tools and Language Editors around it. The ground rule of “Everything is a contribution” perfectly fits in this scenario.
PDE (Plugin Development Environment) and JDT (Java Development Tools) are the ones that support and enable this use-case. A plugin can be developed, debugged, deployed with the help of these two tools. The PHP Editor Plugin is developed with the help of the PDE and JDT. When a developer is using Eclipse to develop the PHP, it looks as though Eclipse is a PHP IDE. In this scenario, the developer might not necessarily know that PDE and JDT exist in the Eclipse that is being used. Thus depending on the user and what he is trying to achieve, the perception changes.

Eclipse + Ruby on Rails = RadRails
Eclipse + Ruby on Rails = 3rdRails
Eclipse + JDT = Java IDE
Eclipse + PHP = PHP IDE
Eclipse + CDT = C/C++ IDE

Eclipse as Plugin Development Environment


Eclipse – RCP

Application development requires a platform to rely upon, i.e., a basis upon which an organization’s software product lines can be built. The Rich Client Platform (RCP) of Eclipse uses the windowing and UI features of the underlying OS platform. It enables the application to use the native look-and-feel, native widgets, and all the available UI features. In the end, users and IT departments want to have a uniform architecture and common look-and-feel over all the applications. Eclipse RCP is considered as the minimal set of plugins that are required to build rich applications. In short, if the SDK capabilities and Platform capabilities are removed, the resulting set of plugins would be RCP.
An interesting set of applications can be built with the help of Eclipse RCP.

A few examples from Open Source RCP applications included, but not limited to…

· JPMorgan’s Banking application

· Maestro – NASA Space Mission Management

· GumTree – Australian Nuclear Science and Technology Organization – GumTree is an open source multi-platform scientific workbench for performing scientific experiments using a server-client environment. It provides an easy-to-use graphical user interface for instrument data acquisition, online or offline data visualization and analysis.

· RSSOwlApplications that collect data from RSS-compliant sites are called RSS readers or “aggregators.” RSSOwl is such an application.

· Talend Open Studio 1.0Talend Open Studio is the first ETL open source software provider for data integration tools (ETL: Extract, Transform, Load)

The following are examples for Commercial plugins

· Actuate BIRT Report DesignerThe Actuate BIRT Report Designer is a powerful tool for designing and deploying reports against data sources ranging from typical business SQL databases, to XML data sources, to in-memory Java objects.

· BSI CRM on EclipseThis Customer Relationship Management (CRM) solution is a fully configured RCP application to support the whole customer contact process from first contact to the successful project implementation as wells as retention management.

· IBM Workplace Client Technology – IBM Workplace Client Technology is a strategic new IBM framework to enable the creation of server-managed rich client applications.

· MyEclipse – SNAPs – Lightweight, Individual, Task-Based Developement Tools FREE as Part of the MyEclipse Distribution. MyEclipse SNAPs (Simple Non-integrated Applications) are special-purpose, Windows-integrated appliations that are targeted for quick, non-IDE based development tasks.

If required, one can use plugins other than core RCP plugins, e.g., one might want to use the help plugins, search plugins, and so on.

Eclipse RCP Application

Eclipse – Tools Framework

Plugins make Eclipse what ever one wants it to be. For the tool integrators, this is a universal platform to which everyone can contribute extensions. Tool development on Eclipse leverages the existing platform infrastructure to contribute new functionaility and to extend existing functionality.

Many of such tools are very popular and include

· Web Tools Project (WTP)

· Eclipse Modeling Framework (EMF)

· Graphical Editing Framework (GEF)

· Business Intelligence and Reporting Tools (BIRT)

· Test and Performance Tooling Project (TPTP)

· Aptana Web2.0 IDE

· MyEclipse

Eclipse as Tooling Framework

Eclipse – Application Framework

For enterprises it makes sense to have a single application framework so that all the tools and frameworks can be built on a common basis. Individuals and enterprises can leverage frameworks and tools provided by the Eclipse eco-system and also benefit from the different release time lines of Eclipse. One of the example is to be able to support the entire development life cycle of a complex engineering activity flow of an organization using to Eclipse. Various development stages such as system requirements, software requirements, component design, function design, coding, unit testing, integration testing, system testing, delivery, and finally the issue tracking can be integrated into Eclipse. On the technical level this transforms to writing new tools/plugins if necessary, using plugins from 3rd party vendors, using the tools and frameworks from the Eclipse community and finally completing the maze by integration.

Genuitec is one of the companies that extensively use the Eclipse platform and other frameworks of Eclipse to have a set of seamlessly integrated tools.

Robert Bosch is a leader in automotive supplier in Europe and North America. Bosch has adapted Eclipse and developed applications based on the Eclipse, EMF and GEF.

Eclipse Application Framework

Summary
Eclipse is an IDE and application framework for anything and nothing in particular. It depends on the user’s/developer’s perception and what is targeted to achieve with the help of Eclipse. With the contribution rules of Eclipse and platform architecture, its easy to contribute one’s own functionality and/or extend Eclipse.

References

1) Eclipse Platform Overview http://www.eclipse.org/platform/overview.php
2) Eclipse House Rules http://udig.refractions.net/help/index.jsp?topic=/net.refractions.udig.doc/html/Eclipse%20House%20Rules.html
3) Eclipse RCP Applications http://www.eclipse.org/community/example_rcp_applications_v2.pdf

Posted in eclipse, java, plugins, software | Tagged , | Leave a comment

Any recommended strategy for eclipse plugin build ?

I am on a cross-road and i have too many choices to make. My requirement is pretty simple that i need to able to build the plugins and my RCP application via automated build. Our server side product runs on the cruise control and src code is in SVN; so, i would like to use the same infrastructure for eclipse plugin build too. Unfortunately i do not see or i am not aware of any of recommended strategies for the plugin build and also some tips on automated nightly builds. I am aware of the following strategies.

  • A simple ant script
  • Maven Project
  • PDE Build

Which of the above  strategies would anyone recommend and why ? For me i also have the requirement that my plugins should be compiled against a specific eclipse versions and we want to have this as an Eclipse IDE application.

Can anyone point me to the right resources ? And also its interesting to know the build system used by Eclipse and other  product leaders like Instantiations, Genuitec and Innopract.

Posted in eclipse, java, plugins, software | Tagged , , | Leave a comment