Wednesday, March 24, 2010

Bridge Design Pattern


Intent


  • Decouple an abstraction from its implementation so that the two can vary independently.
  • Publish interface in an inheritance hierarchy, and bury implementation in its own inheritance hierarchy.
  • Beyond encapsulation, to insulation

Problem


Hardening of the software arteries” has occurred by using subclassing of an abstract base class to provide alternative implementations. This locks in compile-time binding between interface and implementation. The abstraction and implementation cannot be independently extended or composed.

Motivation


Consider the domain of “thread scheduling”.
Bridge scheme

There are two types of thread schedulers, and two types of operating systems or “platforms”. Given this approach to specialization, we have to define a class for each permutation of these two dimensions. If we add a new platform (say … Java’s Virtual Machine), what would our hierarchy look like?
Bridge scheme

What if we had three kinds of thread schedulers, and four kinds of platforms? What if we had five kinds of thread schedulers, and ten kinds of platforms? The number of classes we would have to define is the product of the number of scheduling schemes and the number of platforms.

The Bridge design pattern proposes refactoring this exponentially explosive inheritance hierarchy into two orthogonal hierarchies – one for platform-independent abstractions, and the other for platform-dependent implementations.
Bridge scheme

Discussion


Decompose the component’s interface and implementation into orthogonal class hierarchies. The interface class contains a pointer to the abstract implementation class. This pointer is initialized with an instance of a concrete implementation class, but all subsequent interaction from the interface class to the implementation class is limited to the abstraction maintained in the implementation base class. The client interacts with the interface class, and it in turn “delegates” all requests to the implementation class.

The interface object is the “handle” known and used by the client; while the implementation object, or “body”, is safely encapsulated to ensure that it may continue to evolve, or be entirely replaced (or shared at run-time.

Use the Bridge pattern when:

  • you want run-time binding of the implementation,
  • you have a proliferation of classes resulting from a coupled interface and numerous implementations,
  • you want to share an implementation among multiple objects,
  • you need to map orthogonal class hierarchies.

Consequences include:

  • decoupling the object’s interface,
  • improved extensibility (you can extend (i.e. subclass) the abstraction and implementation hierarchies independently),
  • hiding details from clients.

Bridge is a synonym for the “handle/body” idiom. This is a design mechanism that encapsulates an implementation class inside of an interface class. The former is the body, and the latter is the handle. The handle is viewed by the user as the actual class, but the work is done in the body. “The handle/body class idiom may be used to decompose a complex abstraction into smaller, more manageable classes. The idiom may reflect the sharing of a single resource by multiple classes that control access to it (e.g. reference counting).”

Structure


The Client doesn’t want to deal with platform-dependent details. The Bridge pattern encapsulates this complexity behind an abstraction “wrapper”.

Bridge emphasizes identifying and decoupling “interface” abstraction from “implementation” abstraction.
Bridge scheme

Example


The Bridge pattern decouples an abstraction from its implementation, so that the two can vary independently. A household switch controlling lights, ceiling fans, etc. is an example of the Bridge. The purpose of the switch is to turn a device on or off. The actual switch can be implemented as a pull chain, simple two position switch, or a variety of dimmer switches.
Bridge example

Check list


  1. Decide if two orthogonal dimensions exist in the domain. These independent concepts could be: abstraction/platform, or domain/infrastructure, or front-end/back-end, or interface/implementation.
  2. Design the separation of concerns: what does the client want, and what do the platforms provide.
  3. Design a platform-oriented interface that is minimal, necessary, and sufficient. Its goal is to decouple the abstraction from the platform.
  4. Define a derived class of that interface for each platform.
  5. Create the abstraction base class that “has a” platform object and delegates the platform-oriented functionality to it.
  6. Define specializations of the abstraction class if desired.

Rules of thumb


  • Adapter makes things work after they’re designed; Bridge makes them work before they are.
  • Bridge is designed up-front to let the abstraction and the implementation vary independently. Adapter is retrofitted to make unrelated classes work together.
  • State, Strategy, Bridge (and to some degree Adapter) have similar solution structures. They all share elements of the “handle/body” idiom. They differ in intent - that is, they solve different problems.
  • The structure of State and Bridge are identical (except that Bridge admits hierarchies of envelope classes, whereas State allows only one). The two patterns use the same structure to solve different problems: State allows an object’s behavior to change along with its state, while Bridge’s intent is to decouple an abstraction from its implementation so that the two can vary independently.
  • If interface classes delegate the creation of their implementation classes (instead of creating/coupling themselves directly), then the design usually uses the Abstract Factory pattern to create the implementation objects.

Preferred Shares

What they Are
A preferred share is a special type of stock that regularly pays you a set amount of money out of the company's profits called dividends. They're called preferreds because you get preferential claim to the profits ahead of common shareholders.

How they Work
Unlike common shares, preferred shares don't give you the right to share in a company's fortunes. Your rights end at getting a set amount of dividends and having a prior claim on the company's assets ahead of common shareholders if the firm goes out of business. Only if the company misses a set number of dividend payments do preferred shareholders have a right to vote in the company's affairs. If the company earns a profit again, preferred shareholders are usually entitled to get all the missed dividend payments paid to them before common shareholders get any. Those that don't have this provision are called non-cumulative preferreds. In many ways, preferred shares are like bonds, except that they don't have a set maturity date. They are often issued at a face value, usually $25, $50 or $100. The fixed dividend payments - mostly paid every three months - are like a bond's interest payments. And they react the same way to changes in interest rates as bonds do. If interest rates go down, preferred share prices go up, and vice versa. The return on preferred shares is called a yield. You calculate it by working out the dividends per year as a percentage of the price you paid for the shares. If you pay $25 for a preferred that pays $1.75 in dividends per year, then your yield is 7% ($1.75 divided by $25 per share X 100 = 7%). Preferreds also come with many features similar to bonds. Convertible preferreds let you exchange your preferreds for the company's common stock. A redeemable feature is very common and lets the company buy the preferreds back at a set price whenever it wants to. Retractable preferreds let you turn in the shares to the company at a specific price during specified times. Sinking fund issues are where the company puts aside money to buy back a number of preferreds each year.

The Risks
Since preferred share prices react to swings in interest rates, you could get less than you paid for your shares if interest rates rise and you have to sell. This is because the yield on your preferreds likely won't be competitive with other investments now that rates have gone up. You will likely have to drop the price so that the fixed dividend gives prospective buyers an attractive return. There's also the risk that the company will do badly and not have money to pay dividends. If this happens, you might also have to sell your shares at a loss. Other investors won't be interested in a preferred share that isn't paying dividends. If the company goes bankrupt, you'll likely lose money on your preferreds, but likely less money than if you'd bought the firm's common stock. Preferreds entitle you to a set amount of money if the company goes bust. However, you'll only be paid after bond holders and other creditors have been paid, which might mean there won't be much left.

The Rewards
Yields on many preferred shares are higher than those of other fixed-income investments like bonds. This is because the return is less assured so the higher yield compensates you for taking on the added risk. Since preferred prices respond in opposite directions to interest rates, you can make a profit by selling them after interest rates have gone down. The income you get from the preferred share's dividend is taxed less heavily than interest on bonds, leaving you with a bigger actual return.
------
------

Optimum Solutions Jobs

Sr. Architect (AVP and VP Positions) – Singapore - Permanent

Hope this note finds you well. My name is **** and I facilitate my role of a researcher at Tyche Search and target the passive candidate market. Tyche is a Singapore based Search Firm operating in the region, retained by Global Investment Banks. One of my customers, a Global Bank is looking to fill 2 Architect positions (AVP and VP level) in their office here in Singapore

As such, I am keen to discuss the role in greater details. If the role is of interest, please email me a copy of your resume with contact details and the most convenient time to have a detailed & confidential discussion to cover the role itself and other factors e.g. Reporting Structure, Compensation Levels, and Relocation etc.

I hope my note is in line to your contact settings and I look forward to hear from you.
------
Note: If you are interested, send me a message so I can provide you the recruiter's contact details.
-------

Tuesday, March 16, 2010

ExeqServe Jobs


SENIOR C/C++ DEVELOPMENT ENGINEER
Analyze systems requirements and develop components to build web technical solution. As a senior, tutor and support less experienced members in delivering quality code.

Responsibilities:
· Technical lead in defining web interface for distributed systems, identifying work items.
· Participate to development, focusing on critical components and providing development expertise to team members.
· Propose new technologies dedicated to reduce time to development, and improve user experience.

Requirements:
· 6~8 years of experience in IT
· 5~6 years experience in C++ development on distributed systems.
· 3~4 years experience in C development. Experience in Unix/Linux development is a must.
· CORBA, JMS is appreciated.
· Anticipate issues and respect of deadline.
· Write technical documentation.

Be part of a company that is a world leader in the field of secure technologies – card systems; secure identity documents, private security printer specialized in high security for the production of banknotes, checks and other fiduciary documents in more than fifty countries; a world leader in the emerging market of intelligent systems to secure cash-in-transit and ATM.

Qualified candidates will be given a competitive basic salary and benefits package!

Wednesday, March 10, 2010

Mataflex Tech. Jobs

This is ****** ***, from Mataflex Technologies. Presently our client is looking for Hyperion Essbase Developer . If you are looking for job and a good match for the below mention position, then please reply with updated resume ASAP. 

Job Description: 
T24 consultant 
Location – Singapore 

Should have experience in T24, MS- Excel, Access and Visio. 

Kindly provide me below mention information: 
Full Name: 
Contact No.: 
Email ID: 
Skills: 
Current Location: 
Total Experience: 
Relevant Experience: 
Current Employer: 
Current Salary: 
Expected Salary: 
Visa Status: 
Availability: 

Origem Solutions Jobs

C++, Multithreading (Developer, AVP, VP level positions)
Investment Bank
Singapore


This ****** from Origem Solutions, Singapore; I would like to share an opening with you! 
Please send me your resume if interested for the following position. It would be great if you can refer me your friends for the following positions, as there are multiple positions available. 

Skills: C++, Multithreading 
Positions: 17 Positions (Developer, AVP, VP level positions) 
Experience Level: 4 – 20 years (Different positions) 
Location: Singapore 
Clients: Leading US/European Investment Banks 
Type: Permanent 

Job Description: 
Client is looking for Strong C++, Multithreading, STL developers preferable on UNIX platform 

Scrum In A Nutshell

by Dan Rawsthorne, PhD Douglas E. Shimp

Scrum is about Teams producing Results in an agile way. Scrum Teams achieve results anyway they can by using a simple set of rules to guide effort. We will describe Scrum as a simple applied model so that a central understanding of Scrum can be built. Other complexities of applied Scrum such as scaling, distribution, etc. will be explored elsewhere.

The Team

The fundamental element of Scrum is the Scrum Team (or "Team"), which is a small (usually fewer than ten) group of people that provides useful Results/Products for Stakeholders.
Arguably, the most important role involved in Scrum is the Stakeholder, as the Stakeholders are the ones who have desires, wants, and needs, and are the reason the Team is developing the software in the first place. Often, there is a special Stakeholder called the Business Owner, who actually controls the budget for the Team. The Business Owner is often the one who called or asked the Team to form.
While the Stakeholders are the most important source of validation for the project, the most important person on the Scrum Team is the Product Owner (PO). The Product Owner works with the Stakeholders, represents their interests to the Team, and is the first person held accountable for the Team’s success. The Product Owner must find a result that will satisfy the Stakeholders’ needs and desires. The Product Owner provides direction and goals for the Team, and prioritizes what will be done.
The Scrum Team Members, including the Product Owner, are the people who actually do the work that satisfies the goals and priorities the Product Owner has set for them. The Product Owner must work with the Team to find a rate and direction that the Team can go, to achieve a desirable result. Each Team Member is accountable to the rest of the Team for his/her performance, even as the Product Owner is accountable to the Stakeholders for the Team’s performance. The Scrum Team is cross-functional; that is, people on the Team (collectively) have all the skills necessary to do the work (analysis, design, code, test, documentation, marketing plan, drawings; whatever is required for the desired outcome). The Team is self-organizing, self-managing, and constantly trying to improve; they work on the priorities the Product Owner has set. The Team Members commit to the amount of work they can do without undue influence from the Product Owner.
In order to aid the Team (Product Owner included) in doing its work, there is a role on the Team called the ScrumMaster (SM). The SM's responsibilities are to be a facilitator, moderator, and coach, with particular emphasis on helping the Team mature its self-organization and management. The ScrumMaster manages the relationship between the Product Owner and the rest of the Team, and facilitates removal of impediments for the Team, often working with the Product Owner, the Business Owner, and other Stakeholders to do so. Impediments can come from within the Team and outside the Team. The ScrumMaster understands the Scrum process and how the Team is using it, recommends process improvements, and assures that the Team is following the process they have agreed to. If the Team does not follow its process this becomes an impediment. Most impediments can be addressed by simply causing them to become a center of focus. The SM stimulates that center focus by calling attention to the impediment. Creating a smart center of focus is the art of being a SM.

The Backlog

A Scrum Team's work is managed with a Product Backlog ("Backlog"), which is a prioritized list of Product Backlog Items ("PBIs," "Backlog Items,” or simply "Items"). When the list is small it is just a straight list of things, but as it grows we add grouping mechanisms to organize many little things and help us keep track.
These Items represent the Stakeholder's needs and wants – each of them is a request for something of value from the Scrum Team. These requests can be for anything, including software functionality, marketing, non-functional requirements, technical and infrastructure requests, business support, maintenance of existing systems, and so on. It is a rule of Scrum that the Team shouldn't do anything for any Stakeholder unless it's on the Backlog. The Team will be actively working on the top few Items of the Backlog during the Sprint; this part of the Backlog is called the Sprint Backlog, which is often thought of as a separate list of its own. The Product Owner is responsible for prioritizing that Backlog and thus, creating a distinction between the Sprint Backlog and Product Backlog. From the Team’s perspective, the Product Backlog is work that we might do some day, and the Sprint Backlog is work we are committed to doing.
The Backlog contains Items at all levels of fidelity, from vague wishes/wants/needs to finely detailed requirements. The higher the priority of the Item, the more detailed the request should be, so that it will be ready for planning and execution. Note: “ready” does not imply excessive detail but, instead refers to enough detail. The Team working with the PO will determine what “enough detail” is.
When a Scrum Project starts, the Product Owner should initiate the Backlog by working with the Stakeholders and other Team Members and capturing their needs, wants, and requirements as Backlog Items. As the Project progresses, the Product Owner and the Scrum Team should continuously work with the Stakeholders to (re)prioritize the Backlog, identify new Backlog Items, eliminate noise, and refine and generally clean the items list to get it ready for planning. The project effort will result in product that will often clarify and identify Backlog Items. This process is called Backlog Grooming, and is a continuous process throughout the Project.
Now that we have the notion of the Backlog to work with, let's describe the process, which involves discussion of both Releases and Sprints.

The Release

The goal of a Scrum Team is to produce and release results that meet the goals and priorities that have been set down by the Product Owner (hopefully as a result of working with Stakeholders).
Typically, before a project formally begins, there is a Visioning phase (this could also be the first phase in a project), when the Business Owner, Product Owner, and the Stakeholders produce a Product Vision and a Product Roadmap. The Vision provides the overall focus for the Project, while the Roadmap gives guidance about Releases and their Goals.
The Scrum Team’s purpose is to create a result that satisfies the Stakeholders’ needs, wants and desires, often so that more demand for their services is generated. This production is done through a series of relatively short, fixed-length iterations, called Sprints, in which results are produced by working on Items. The Sprint length can vary, but this requires more discipline on the part of the Team and is not advisable for new, less mature teams. The steps of a Release are relatively simple, and I'll describe them here.
Usually, the first thing that happens in a release is Release Planning. The Stakeholders, the Product Owner, and possibly other members of the Team, get together and negotiate what will be accomplished in the Release. This negotiation considers the Product Vision and Roadmap, balances the needs and wants of the Stakeholders against the abilities of the Scrum Team, and results in a set of Release Goals and a Release
Strategy to achieve them. The Product Owner and Team must update the Backlog so that there are prioritized Items on the Backlog that support the Release Goals and Strategy and are ready for planning.
Once we have a Backlog that supports the Release Goals and Strategy, the Team starts sprinting. The idea is for the Team to do as many Sprints as the Release Strategy calls for, and then Release the Results. Each Sprint looks basically the same, with the Release activities as part of the last one.

The Sprint

The fundamental process flow of Scrum is the Sprint, which is a relatively short period of time in which Backlog Items are converted into Results.
The first thing to do in a Sprint is Sprint Planning. In Sprint Planning the Product Owner works with the Team to negotiate what Backlog Items the Team will commit to for the Sprint in order to support the Release Goals and Strategy. Each of these Items has an agreed-upon definition of "Done," and collectively these Items are called the Team's Sprint Backlog. It is the ScrumMaster’s responsibility to ensure that the Team commits to a realistic amount of work, and that the Product Owner does not unduly influence this commitment. Often, the Items on the Sprint Backlog are tasked out in order to give the Team confidence that it can complete the Item, and thus commit to it. The tasking of Items can help the Team mature by paying attention to the work agreements they make with each other. The tasking can also help the SM detect when the Team is working well.
Once Sprint Planning is over, the Team begins work in the Sprint. The Team self-organizes to do the work and self-manages as it does the work. The Team’s work pattern is described as a swarm to get the job done. Team swarm is a pattern of performing Teams that looks like a swarm to an observer. While the Sprint is in progress, the Team will have Daily Scrums in order that each Team Member understands what the Team's status is. This allows the Team to detect when to adjust in order to be as effective and efficient as possible. These adjustments often take significant time and occur after the Daily Scrum.
During the Daily Scrum, and continuously throughout the day, the Team Members notify the ScrumMaster of any impediments they encounter. It is the ScrumMaster’s responsibility to facilitate the removal of these impediments. Often, this requires working with Team Members, the PO, the Business Owner, and other Stakeholders.
The ScrumMaster must also ensure that the Team does enough Backlog Grooming in order to be prepared for the next Sprint's planning meeting. The Backlog Grooming is a strategy to prepare enough work to begin next so that a rhythmic flow of work can happen.
When the Sprint is over there is a Sprint Review, when the Product Owner and the Team show the Team's Results to their Stakeholders. This is done for two reasons: to prove to the Stakeholders that the Team is moving in the right direction, and so the Team can get feedback on what they've done. If necessary, the Release Goals, Release Strategy, and Backlog are updated as part of the Review (or soon thereafter), considering the Review and any "business reality" changes the Stakeholders may have. When Teams are small they can rely on more intuitive reasoning to determine what the "right direction" is. As a Team grows they will see a need for more sophisticated techniques that use metrics to help them answer what the "right direction" is.
After the Sprint Review, the Team has an internal retrospective to analyze its performance and process. The Team decides what changes, if any, they wish to make to their process as a result of this analysis. These changes will be "enforced" by the ScrumMaster in future Sprints. To enforce something the SM will need to shift the focus to the issue at hand and then let the Team react. Telling the Team what to do is not desirable. Shifting the Team focus and thereby enforcing change is an art of the SM.
At this point the Sprint is complete, and the Team either begins the next Sprint, the next Release, the next Project, or disbands, as appropriate.

Quick Summary


Team of 7±2 does the work
PO provides the work requests
SM provides care for the whole team (PO/Team)
Team swarms on the work
Team is cross-functional
Team owns its process
PO provides validation for each work request
Work is done in short bursts < 30 days each (Sprints)
Work starts and stops with Planning and Review
Review demo for product; Review retro for process
Daily Scrum detects any adjustments needed
PO determines priority as a flow of work requests
SM observes and helps the whole team adjust
SM tunes the whole team for maximum performance

Tuesday, March 9, 2010

Rules That Warren Buffett Lives By

by Stephanie Loiacono
Tuesday, February 23, 2010

Warren Buffett is arguably the world's greatest stock investor. He's also a bit of a philosopher. He pares down his investment ideas into simple, memorable sound bites. Do you know what his homespun sayings really mean? Does his philosophy hold up in today's difficult environment?

"Rule No. 1: Never Lose Money. Rule No. 2: Never Forget Rule No. 1."

Buffett personally lost about $23 billion in the financial crisis of 2008, and his company, Berkshire Hathaway, lost its revered AAA ratings. So how can he tell us to never lose money?

He's referring to the mindset of a sensible investor. Don't be frivolous. Don't gamble. Don't go into an investment with a cavalier attitude that it's OK to lose. Be informed. Do your homework. Buffett invests only in companies he thoroughly researches and understands. He doesn't go into an investment prepared to lose, and neither should you.

Buffett believes the most important quality for an investor is temperament, not intellect. A successful investor doesn't focus on being with or against the crowd.

The stock market will swing up and down. But in good times and bad, Buffett stays focused on his goals. So should we. (This esteemed investor rarely changes his long-term investing strategy no matter what the market does.)

"If The Business Does Well, the Stock Eventually Follows"

The Intelligent Investor by Benjamin Graham convinced Buffett that investing in a stock equates to owning a piece of the business. So when he searches for a stock to invest in, Buffett seeks out businesses that exhibit favorable long-term prospects. Does the company have a consistent operating history? Does it have a dominant business franchise? Is the business generating high and sustainable profit margins? If the company's share price is trading below expectations for its future growth, then it's a stock Buffett may want to own.

Buffett never buys anything unless he can write down his reasons why he'll pay a specific price per share for a particular company. Do you do the same?

"It's Far Better to Buy a Wonderful Company at a Fair Price Than a Fair Company at a Wonderful Price"

Buffett is a value investor who likes to buy quality stocks at rock-bottom prices. His real goal is to build more and more operating power for Berkshire Hathaway by owning stocks that will generate solid profits and capital appreciation for years to come. When the markets reeled during the recent financial crisis, Buffett was stockpiling great long-term investments by investing billions in names like General Electric and Goldman Sachs.

To pick stocks well, investors must set down criteria for uncovering good businesses, and stick to their discipline. You might, for example, seek companies that offer a durable product or service and also have solid operating earnings and the germ for future profits. You might establish a minimum market capitalization you're willing to accept, and a maximum P/E ratio or debt level. Finding the right company at the right price -- with a margin for safety against unknown market risk -- is the ultimate goal.

Remember, the price you pay for a stock isn't the same as the value you get. Successful investors know the difference.

"Our Favorite Holding Period Is Forever"

How long should you hold a stock? Buffett says if you don't feel comfortable owning a stock for 10 years, you shouldn't own it for 10 minutes. Even during the period he called the "Financial Pearl Harbor," Buffett loyally held on to the bulk of his portfolio.

Unless a company has suffered a sea change in prospects, such as impossible labor problems or product obsolescence, a long holding period will keep an investor from acting too human. That is, being too fearful or too greedy can cause investors to sell stocks at the bottom or buy at the peak -- and destroy portfolio appreciation for the long run.

You may think the recent financial meltdown changed things, but don't be fooled: those unfussy sayings from the Oracle of Omaha still RULE!

Monday, March 8, 2010

Kris Infotech Jobs

Kris is a Singapore based company, which is in the business of providing human capital resources, recruitment services and related HR services. 

Job Nature: Permanent Position 
Our Client: Our client is a leading publication house 
Position: Software Developer 

Location: KL, Malaysia 
Skills: PHP, Linux and C 

Interested candidates please send in your resume at: (will be provided upon request) 

Also send the following information: 
• Current Salary 
• Expected Salary 
• Notice Period 



Sunday, March 7, 2010

Unisoft Infotech Jobs

1. Business Analyst and Developers for our Client (Bank)

Work Experience 
- Over 5 years of experience as developer for Capital Market IT
5 years of required experience in at least one of the following IT domains:
•Equity Derivatives IT (Sophis or 4Sight knowledge is a plus)
•Foreign Exchange IT (E-trading or Murex knowledge is a plus)
•Commodity Derivatives IT (Openlink knowledge is a plus)
•Credit Derivatives IT (Murex knowledge is a plus)


Educational/Skill Preferences 
- At least a related degree/diploma holder
- Specific technical knowledge is not required as various technologies are used in the Bank’s applications (i.e.
Java, .Net, C++, Oracle/SQL DB and etc.)
- Experience in all phases of the system development/implementation life cycle.
- Excellent communication skills
- Posses strong analysis and problem solving skills
- Strong perseverance and diligence towards attaining goals and effective time management.
- Self-motivated and excellent team player

(This job invitation was originally dated 2/11/2010 so it may no longer be available. As usual, I will provide the recruiter's contact information if you are interested.)

Itcan Pte Limited Jobs

Itcan Pte Ltd is currently looking for:

1. Senior Oracle Consultants (Multiple Positions) with Banking Experience 
These positions are based in Singapore.

Expected Relavant Experience 
4 - 8 years - Consultant/Senior Consultant Level
10 - 12 years - Lead Consultant Level

Focus Areas 
• Technical expertise in Oracle, SQL and PL/SQL , Oracle 9i & above .
• Able to address performance issues SQL queries and provide solutions to improve performance of queries
• Good Knowledge in Data modelling (ER Model and Dimensional Modelling
• Expertise in UNIX and Windows OS
• UNIX shell scripts , Message Queuing
• Good knowledge in database concepts
• Banking Experience added advantage

Note : Do highlight if you have banking experience & your availability 

If you are available or looking forward for new opportunities , kindly forward your updated resume for further consideration. (Contact details will be provided to anyone interested. Just send me a message with your e-mail address.)

Friday, March 5, 2010

SPEARACE Solutions Job Openings

SPEARACE Solutions Incorporated (www.spearacesolutions.com) is an innovative and aggressive IT consulting and HR solutions company located near the UP-Ayala Techno Park in Diliman, Quezon City, Philippines.

Our vision is to be one of the leading IT consulting and HR solutions firm in Asia-Pacific. Our mission is to be the preferred solutions business partner in the software development, support, and software testing domain.

We support the IT consulting and HR solutions needs of our multi-national clients.

Our client is currently looking for:
1. Applications Development Manager
Job Summary:
This new position is responsible to manage a Point-of-Sale terminal applications development team in Manila to support the development and sustaining of applications for point-of-sale terminals for the NEMEA region.

DUTIES AND RESPONSIBILITIES:
· Is responsible to establish a new applications development team in Manila, Philippines dedicated to NEMEA Region. Team size is anticipated to be 7 developers in Q2 2010, to grow up to 12 in Q3 2010.
· Is responsible to establish POS applications competency and manage the planning and execution of local development projects.
· Manages development team and produces the reports to the management
· Works in collaboration with development and validation teams located in multiple worldwide company locations.
· Promotes software engineering practices to ensure reliable project execution, product quality, and operational efficiencies.
· Setup development standards and planning and review design and code produced by his team.

KNOWLEDGE, SKILLS AND EXPERIENCE
· A university degree in Computer Science, Information Technology, Software Engineering, Electronics Engineer or equivalent is required.
· Minimum 6 years IT experience.
· Minimum 3 years as a Software Lead or Manager responsible for day-to-day supervision of software development projects and/or teams
· Strong planning and organizational skills combined with exceptional written and verbal communication skills are required:
o Project management (use of Microsoft Project is a must)
o Good knowledge of EFT/POS business/applications for Embedded systems,
o Fundamentals of software development in C/C++ for Embedded systems,
o Object Oriented Software Development
o Software Development Life Cycle: Requirements/Design/Development/Test/Acceptance
o UML
o Must be fluent in English

· Experiences with the following are a plus:
· POS (Point-of-Sale) terminals or other highly secure financial/transaction solutions
· Public Key Infrastructure (PKI) experience, cryptography software development experience
· Real Time Operating Systems (RTOS) programming
· Low-level synchronous and asynchronous communication protocols
· General device driver knowledge in the areas of serial, ethernet, USB, flash memory, displays, printers, wireless modems, Bluetooth, RFID, magnetic strip readers, smart cards
· Embedded Linux development
· Subversion (version control system)
· Clarity (project management tool)
· Microsoft Visual Studio

Location: Taguig City

2. Applications Development Senior Software Engineer
Job Summary:
This new position is responsible to contribute to the development and sustaining of applications for point-of-sale terminals for the NEMEA region.

DUTIES AND RESPONSIBILITIES:
· Belongs to a new applications development team in Manila, Philippines dedicated to NEMEA Region. Team size is anticipated to be 7 developers in Q2 2010, to grow up to 12 in Q3 2010.
· Is responsible to establish POS applications competency and manage the execution of local development projects.
· Leads a development team and produces the reports to his manager
· Works in collaboration with development and validation teams located in multiple worldwide company locations.
· Promotes software engineering practices to ensure reliable project execution, product quality, and operational efficiencies.
· Design applications based on the requirements from NEMEA Regions customers and according to company POS terminal applications architecture.
· Setup development standards and review design and code produced by his team.

KNOWLEDGE, SKILLS AND EXPERIENCE
· A university degree in Computer Science, Information Technology, Software Engineering, Electronics Engineer or equivalent is required.
· Minimum 4 years IT experience.
· Minimum 2 years as a Software Lead responsible for day-to-day supervision of software development teams
· Strong organizational skills combined with exceptional written and verbal communication skills are required:
o Basic knowledge of EFT/POS business/applications for Embedded systems,
o Software development in C/C++ for Embedded systems,
o Object Oriented Software Development,
o Debug tools
o UML,
o Telecommunication protocols (TCP/IP, SSL),
o Must be fluent in English

· Experiences with the following are a plus:
· POS (Point-of-Sale) terminals or other highly secure financial/transaction solutions
· Public Key Infrastructure (PKI) experience, cryptography software development experience
· Real Time Operating Systems (RTOS) programming
· Low-level synchronous and asynchronous communication protocols
· General device driver knowledge in the areas of serial, ethernet, USB, flash memory, displays, printers, wireless modems, Bluetooth, RFID, magnetic strip readers, smart cards
· Embedded Linux development
· Subversion (version control system)
· Microsoft Visual Studio