Skip to main content

Just Technical Skills are Enough for Interview..???


Are technical skills alone or just being a quiet achiever
sufficient to boost your career?
The answer is no. The technical, analytical and problem solving skills must be complemented with:
  • Effective marketing skills to promote your skills, knowledge, and achievements along with ability to negotiate your promotions, salary or contract rates. Now days it is a rarity for management to pro-actively recognize or reward their staff unless there is an immediate vacancy to fill. If you cannot determine your net worth, how the management can?

  • Effective communication, interpersonal, presentation, mentoring, being a team player and business skills. I have seen candidates with technical, analytical and/or problem solving brilliance getting either sacked or failing to make a mark in their careers due to lack of one or more of the above mentioned skills.
There are myriad of books and online articles that can help you on the second bullet point, so let me elaborate on the first bullet point based on my experience and observations. If you want to market a merchandise successfully, you must know the merchandise. The same is true in marketing personal services in Java/J2EE.

When and where do you market your technical, analytical and problem-solving skills?

  • Team meetings and design/technical sessions.
  • Pro-actively providing either verbal or written recommendations or suggestions on improving the quality of the software, development process, fixing design and/ or development flaws etc.
  • Demonstrating your work and achievements via team/stake holder presentations, conferences, training, hand-over sessions and/or road shows.
  • Casual chats/conversations.
  • Code review sessions.
  • Interviews and CV.
Note: Take care not to over do and not to point fingers or undermine others. You should have your facts and know what you are talking.

What is required to effectively market your technical, analytical and problem-solving skills?
  • Ability to look at the big picture and drill down as and when required.
  • A good understanding of the key areas of software design/development.
  • Ability to look at things not only from a technical perspective but also from a business/stakeholder perspective.
Many people wil be in a position to impress my team leads and architects by pro-actively pinpointing some of the critical performance issues, transactional issues, memory issues and threading/concurrency issues and more recently on design flaws, scalability issues, software development process and best practices.
Technical:
  • Struts action classes and Servlets are not thread-safe.

  • Valuable resources like database connections, file handles and sockets must be closed properly.

  • Throwing an application exception will not rollback transactions in EJB.

  • Web search functionality that can return large result sets should consider using true pagination.

  • Improper implementation of equals(..) and hashCode( ) methods can cause indeterministic behavior that is hard to debug/reproduce.
Analytical: This requires ability to think outside the square and analyze (i.e. What If scenarios) and think of exceptional conditions.
  • What if an exception is thrown or customer cancels the transaction? Will the transaction be rolled-back?

  • What if 100 concurrent clients access this search functionality? Will it be thread-safe? Will it scale well without any performance or memory issues? [Consultants/contractors spend lot of time fixing these types of problems]

  • What if these critical messages are published to the live system with some inappropriate and/or sensitive messages? Do we need an approval or work flow process to prevent any human error?

  • What if a JMS message is lost? Do we require a guaranteed delivery mode? Or is performance more important than reliability? Can this message be consumed by more than one consumer?
Problem Solving: This requires ability to identify and fix root cause of the problem.
  • “Account” objects are not getting added properly to HashMap. A possible cause is that the equals(..) and hashCode() methods are not implemented properly in “Account” class.
    Cannot retrieve the stored objects from the HashMap. The possible causes are that the equals(..) and hashCode() methods are not implemented properly or mutable objects are used as keys.

  • CPU usage is very high. Possible causes are an endless while loop, never ending recursive method call, spawning a new thread every time instead of using a thread-pool, over-working the thread scheduler, memory starvation, improperly sized heap memory, inefficient Garbage Collection (GC) or GC alogorithm inefficiency etc .

  • OutOfMemory exception is thrown. Possible causes are not enough memory allocated for the working of the application, unintentional object retention causing the heap to grow and grow, not making unused objects grabge collectible, memory leak in the JVM etc.
The analytical and problem solving skills can be business requirements or use cases related in addition to being technical.  

When do you engage in negotiations on your promotions/remunerations?
Everyone wants more money, but it is something entirely different to be worth more!. Your value is established entirely by your ability to render useful service or ability to induce others to render such service. Before you even start to negotiate your salary be sure that you are worth more than you now receive.
  • After having proved and promoted your abilities and worthiness (say 6 months to 1 year).
  • After having an alternative job offer that is more attractive but you are happy where you are.
  • After having multiple job offers if you have decided to move on. Do not rush in to accepting the first offer you get while you have more interviews to attend or waiting on other interview outcomes.
Note: Study the market rates, demand for your skills etc. Do not be unrealistic.
So, shape up your Java/J2EE career by learning and applying the key areas & core-concepts and subsequently selling your personal sevices more effectively. 

Did you like this article? If you like please share with your friends

Comments

  1. Hi..Really good tips..this weekend I am going to attend an interview..I feel these tips will definitely help to do well...thnks a lot..keep posting..cheers...

    ReplyDelete

Post a Comment

Popular posts from this blog

Asynchronous Vs. Synchronous Communications

Synchronous (One thread):   1 thread -> |<---A---->||<----B---------->||<------C----->| Synchronous (multi-threaded):   thread A -> |<---A---->| \ thread B ------------> ->|<----B---------->| \ thread C ----------------------------------> ->|<------C----->|

WebSphere MQ Interview Questions

What is MQ and what does it do? Ans. MQ stands for MESSAGE QUEUEING. WebSphere MQ allows application programs to use message queuing to participate in message-driven processing. Application programs can communicate across different platforms by using the appropriate message queuing software products. What is Message driven process? Ans . When messages arrive on a queue, they can automatically start an application using triggering. If necessary, the applications can be stopped when the message (or messages) have been processed. What are advantages of the MQ? Ans. 1. Integration. 2. Asynchrony 3. Assured Delivery 4. Scalability. How does it support the Integration? Ans. Because the MQ is independent of the Operating System you use i.e. it may be Windows, Solaris,AIX.It is independent of the protocol (i.e. TCP/IP, LU6.2, SNA, NetBIOS, UDP).It is not required that both the sender and receiver should be running on the same platform What is Asynchrony? Ans. With messag

Advantages & Disadvantages of Synchronous / Asynchronous Communications?

  Asynchronous Communication Advantages: Requests need not be targeted to specific server. Service need not be available when request is made. No blocking, so resources could be freed.  Could use connectionless protocol Disadvantages: Response times are unpredictable. Error handling usually more complex.  Usually requires connection-oriented protocol.  Harder to design apps Synchronous Communication Advantages: Easy to program Outcome is known immediately  Error recovery easier (usually)  Better real-time response (usually) Disadvantages: Service must be up and ready. Requestor blocks, held resources are “tied up”.  Usually requires connection-oriented protocol