Aug 22, 2011

Job openings with Citi Group

I have some very good openings with Citi Group in Investment banking domain.
This is a very niche team operating from India.

Location: Mumbai

The details are given below

1) Adobe Flex 4 developer: 4-12 years of exp, must be excellent in Flex. Experience with Remoting, Parsley's framework is preferred.

Candidate would be working on fast-paced, highly visible and very challenging project, and would be expected to be self-starter, and someone who loves technology in general and excels when challenged. She/he would be the key and one of the first front-end developer and hence would have plenty of opportunities to take technical lead, manage front-end deliverables and provide technical expertise in overall design. However, we are NOT looking for website developers who have used Flex to create simple flashy animations in general, but rather strong ‘developer’ from computer science/engineering background, who happens to work with FLEX to solve complex business problems, and implement real solutions on web platform.

2) Core Java server side developer -  I have been told that this has to superstar :-)  
so a person to work in server side framework which will be used by high end application like crossing engine , program trading platform. The person will work in framework so there is no need to capital markets IT experience. Framework does usual things like high availability, failovers, network library, serialization , cache etc..

Anybody from 4 years to 10-11 years will be fine preferably 6-8 years. The person has to have good communication skills and personality as he/she will need to independently coordinate with 6 US developers.

3) .Net server side developer - This opening is for portfolio trading analytics platform's server development. Mainly server side C#. The front end is web so some experience of web development will help. The front end is Adobe Flex but this opening is not for front end. Experience of kdb/q and python will be very valuable.  The person has to have very good communication skills and personality as he/she will need to face business. Experience of Equities/Fixed income /prime brokerage is required. Preferable exp is 7-10 years.

4) .Net Front end/database developer - This opening is for web graphics developer with experience of Silverlight (and and good experience of databases from developer perspective. This is mainly for latency warehouse monitoring tool. It relatively less complicated job.

If anyone is interested, just drop me a mail. My email is

PS: We are not entertaining Freshers at this point of time. So please help us to save time by not forwarding the resume with less than 4 years of experience

Jun 5, 2009

Flex Builder has been rebranded as Flash Builder in Flex Sdk 4 release

Hi All,

It is one of the most shocking news I came across recently. Yes it is true that Adobe has taken a final decision on rebranding the Flex builder.

Before writing any further, I like to share one email communication which I recently had with Adobe Team.

The content is as follow:

Shaleen Jain wrote:

Hi Adobe Team,

I do not see the decision of rebranding the flex builder to flash builder as a reasonably good decision.
My belief is that, it will discourage new java and flex developer.

Customer is now believing that flex is different from flash in the sense that flex is basically for enterprise application.
Flash is considered considerably at a lower level when comparing with flex.

Client, developing mission critical application will have faith in flex but that can be deteriorate when we start calling flex to flash.

I am working in Flex since 2005. Initially I was not sure what will be the future of flex. Adobe team then clarify that Flex is specially meant for developing RIA which will be run on flash player and it is not flash. I just want to remind Adobe team is that, the decision to make flex and NOT flash is that, Adobe want to attract developer from other technologies(especially Java) because they don't want to be called as designer.

But now when flex is picking up the pace and leading other RIA technologies we are rebrading flex to flash again.

I hope this decision will ruin the image of Flex in the market.

Further to that, developer generally don't prefer to be called a flash developer rather than flex developer ( At least I will never prefer to be called one).

Hope you may want to reconsider the decision to rebrand flex builder to flash builder in the interset of Adobe, their investors and Flex community.

Warm Regards,
Shaleen Jain

Adobe's Reply

Hi Shaleen:
Unfortunately at this time the decision to rebrand has already been made and is final. You can read a good summary of many of the issues you talk about in Lee Brimelow’s blog, at

Thanks for your comment!


I will write more about this very soon.

Shaleen Jain

Mar 30, 2009

Difference between Array and ArrayCollection in ActionScript 3.0

Hi All,

Recently I got a query asking the difference between Array and ArrayCollection in ActionScript 3.0.

Let me draw quick comparison between Array and ArrayCollection:

  1. The elements of the ArrayCollection can be used in bindings that will be continued to be monitored. This is not the case with the normal Array class, once the element from an array is used in a binding, it is no longer monitored.
  2. ArrayCollection provides a rich set of tools for data manipulation

So what does all that mean?

According to the Adobe flex liveDocs

The ArrayCollection class is a wrapper class that exposes an Array as a collection that can be accessed and manipulated using the methods and properties of the ICollectionView or IList interfaces. Operations on a ArrayCollection instance modify the data source; for example, if you use the removeItemAt() method on an ArrayCollection, you remove the item from the underlying Array.

Let me take an example to clear this concept.

Say we receive some data through some webservice. Now if we parse the result set into Array, we have only a few tools to manipulate data namely, push() (for adding an element to the end), pop() (for removing the last element), length (the number of indices), etc.

However, the ArrayCollection class provides a suite of immensely convenient "extra" methods that can act on the Array namely the addItemAt(), removeItemAt(). So using these methods, we can directly access any index value of an array.

Apart from that, we can continuously watch the array for any changes at run time. Say, some user operation deletes a value from my ArrayCollection or Add a new item in my ArratyCollection which I am using as an dataProvider for a data grid. In that case, I can see the node getting disappear or visible at the same time.

This can’t be possible in the case of an Array.

This makes filtering of data as simple as eating a cake :)


Let me know if you have any doubt.


Shaleen Jain

Mar 25, 2009

Adobe® Flex™ Builder 3 Pro for Education.

Ad0be is providing free serials for flex builder for educational purpose

To receive the product, you must upload a valid proof of eligibility to get the serial numbers to activate the product. Valid proofs of eligibility are:

   1. a student ID showing current enrollment,
   2. a Faculty ID showing current employment
   3. an employee ID showing current employment, or
   4. a letter on an educational institution letterhead stating that you are either a current student,        a current faculty member or a current employee of the institution.

On the page that opens, accept the terms and click "Student"

On the next page, fill in all fields. There is a special field in this form: Student ID.They ask for a copy of a proof of registration or any document to prove their academic home. 
After uploading the image or PDF, click submit.

Now, Adobe will evaluate and, if approved, will send the serial via email within a maximum of 3 days.

To get the serial, Register with Adobe (the registration is free)

I got this piece of information from flex group and think of just spreading this through my blog so that community can take advantage of this.


Shaleen Jain

Feb 8, 2009

Item Renderes: Part 1: Introduction

Lets start with the definition of the term item renderers and item editors

According to me:

Item renderes and item editors are set of instruction or a piece of code which customize the appearance and/or behavior of items in list based components.

Sometime people get confused between item renderers and item editors.
So, before going further, Let me draw a comparison between them

Item rendere versus item editors
  • Both item renderes and item editors receive data in a data property from a list contol

  • The item renderer uses the data for purly for display and can't pass back data to list controls while item editor can pass data back from the controls that then becomes the new value of the edited items

  • Visually item renderes and item editors behaves differently and item renders is used all the times while an item editor is used only when item is being edited

Item Renderers and item editors could be of following three types:
1. Drop in
2. Inline
3. Component

Drop in item renederes and item editors
When you specify a control as a value again itemRenderer or itemEditor property of the control it would be called as a drop in item renderer or item editor

As item renderer
<mx:DataGridColumn dataField="completed"

As item editor
<mx:DataGridColumn dataField="quantity"

Inline item renederes and item editors
when we write item renderes and item editor within a DataGridColumn tag block using
and tag respectively they are known as inline item renderes or editors.

Inline Item Renderes
<mx:datagridcolumn datafield="someData"&gt
<mx:Text selectable="false"
Inline Item Editor
<mx:datagridcolumn datafield="someData">
<mx:NumericStepper minimum="0"

Component Item renderers and item editors

When a inline item renderer get complex, its better to make it in a separate file as an independent component. When we do so, it is know as component item renderer or item editor.
It 0pen almost a new paradigm of opportunities which lets developer ease of resume and provides greater flexibility and functionality.


Make a separate file say myFirstItemRender.mxml
<mx:DataGridColumn dataField="someData" itemRenderer="myFirstRenderer.mxml"/>

Don't forget to mention the folder if of you component file if their is any. Say you saved all your renderes or editor files under renderers folder then you should include it like this:
<mx:DataGridColumn dataField="someData" itemRenderer="renderers.myFirstRenderer.mxml"/>

We will discuss about these various types of item renderers and item editors with a lot of other things in detail with coming series of articles on this topic.

Hope you enjoyed reading this article.
I would be interested in your feedback about this article.

Shaleen Jain

Item Renderes & Item Editors

Hello Friends,

Today I decided to write an article on item renderers & item editors.

When I started writing, I felt it is not possible for me to write everything in on go.
So, I decided to write a series of articles on item renderes & item editors.

Stay tuned to watch out the series.

Also if you show your interest by commenting on the topic, that would boost my interest in continuing this series.

Shaleen Jain

Feb 7, 2009

Adobe AIR passes 100 Million Installs

Adobe has just announced that the AIR platform has passed 100 Million installs. You can read more about this on the Adobe AIR Blog.

In addition, Flash Player 10 has been installed on 55% of computers worldwide.

The article describes how these numbers were determined.


Shaleen Jain