Nov '08-present — IBM Canada, Burnaby, B.C.

  • Application Developer: developed custom web-based applications for clients
  • Worked as part of a team to create customized Java EE applications
  • Focused largely on backend services: Web Services, messaging, database and service beans
  • Nov '10-Jun '11 — Architect/Lead Developer:
    • Created an Enterprise Service Bus (ESB) solution for receiving information and enabling the simulation of possible outcomes:
      • Designed all aspects of the solution, and instructed inexperienced developers
      • Defined the Web Services (top-down) for communication on the ESB
      • Implemented the business logic beans (EJBs) to handle and dispatch requests
      • Created a controller to handle simulations distributed to multiple simulators
      • Created the JPA entities and DAO objects used to interact with the database
      • Created a web interface to access the Web Services
      • Technologies: JAX-WS, WSDL, XSD, EJB3, JAXB, JPA, Struts, RSA, WAS, DB2, SVN
    • Created a Virtual Image for development and deployment of solution:
      • Installed the operating system and all needed libraries
      • Installed and configure the software stack: RSA, WAS, DB2
      • Technologies: VMware, Red Hat Linux (RHEL)
  • Sep '10-Nov '10 — Web Services Developer:
    • Development of various Web Services' clients:
      • Created clients for legacy applications to access new Web Services
      • Translated Web Service responses to business objects
      • Implemented business logic rules
      • Technologies: JAX-RPC, Spring, RSA, WAS, SVN, Maven, Dozer
  • May '10-Sep '10 — Lead Developer:
    • Development of a completely reliable content enriching messaging service:
      • Received/acknowledged requests, built larger messages, sent to a third party
      • Integrated with many other systems
      • Managed many reliability, concurrency and performance issues
      • Technologies: RSA, WAS, WMQ, DB2, Rational CQ, Rational Portfolio Manager
    • Lead developer of a three person development team:
      • Worked with the project architect on the final details of the design
      • Developed the main parts of the code
      • Managed and assigned work to two global resource developers in India
  • Dec '08-May '10 — Messaging Developer:
    • Keep multiple remote machines in sync:
      • Designed and implemented scenarios for reliably transmitting records from remote machines to a central one, and new content from central to all remote machines
      • Technologies: ActiveMQ, JMS, MDBs, JAXB, Geronimo, Eclipse
    • Participated in the core services development:
      • Owned the development and maintenance of the database interface JPA entities, including a customized JPA provider implementation
      • Developed a core EJB service
      • Technologies: EJB3, Spring, JPA, Hibernate, PostgreSQL, FreeMarker
    • Worked on some of the code packaging and distribution infrastructure:
      • Developed the Maven project build configuration
      • Packaged the application into RPMs and distributed them
      • Technologies: Maven, RPM

I joined IBM in 2008, after completing my Master's degree in Computing Science at Simon Fraser University. The location of IBM where I worked is focused mainly on developing customized Java EE web applications for large clients.

At IBM, I had the opportunity to work as part of a development team.

My work at IBM was primarily on the backend services used in the applications. This includes Web Services, messaging, database, and service beans.

The work was broken up into assignments to various projects, each with a different focus and usually for a different client. The details of each of my assignments is in the sections below.

Assignment 1: Dec '08-May '10 — Messaging Developer

- Keep multiple remote machines in sync:
    + Designed and implemented scenarios for reliably transmitting records from remote
      machines to a central one, and new content from central to all remote machines
    + Technologies: ActiveMQ, JMS, MDBs, JAXB, Geronimo, Eclipse
- Participated in the core services development:
    + Owned the development and maintenance of the database interface JPA entities,
      including a customized JPA provider implementation
    + Developed a core EJB service
    + Technologies: EJB3, Spring, JPA, Hibernate, PostgreSQL, FreeMarker
- Worked on some of the code packaging and distribution infrastructure:
    + Developed the Maven project build configuration
    + Packaged the application into RPMs and distributed them
    + Technologies: Maven, RPM

Assignment 2: May '10-Sep '10 — Lead Developer

- Development of a completely reliable content enriching messaging service:
    + Received/acknowledged requests, built larger messages, sent to a third party
    + Integrated with many other systems
    + Managed many reliability, concurrency and performance issues
    + Technologies: RSA, WAS, WMQ, DB2, Rational CQ, Rational Portfolio Manager
- Lead developer of a three person development team:
    + Worked with the project architect on the final details of the design
    + Developed the main parts of the code
    + Managed and assigned work to two global resource developers in India

Assignment 3: Sep '10-Nov '10 — Web Services Developer

- Development of various Web Services' clients:
    + Created clients for legacy applications to access new Web Services
    + Translated Web Service responses to business objects
    + Implemented business logic rules
    + Technologies: JAX-RPC, Spring, RSA, WAS, SVN, Maven, Dozer

Assignment 4: Nov '10-Jun '11 — Architect/Lead Developer

- Created an Enterprise Service Bus (ESB) solution for receiving information
  and enabling the simulation of possible outcomes:
    + Designed all aspects of the solution, and instructed inexperienced developers
    + Defined the Web Services (top-down) for communication on the ESB
    + Implemented the business logic beans (EJBs) to handle and dispatch requests
    + Created a controller to handle simulations distributed to multiple simulators
    + Created the JPA entities and DAO objects used to interact with the database
    + Created a web interface to access the Web Services
    + Technologies: JAX-WS, WSDL, XSD, EJB3, JAXB, JPA, Struts, RSA, WAS, DB2, SVN
- Created a Virtual Image for development and deployment of solution:
    + Installed the operating system and all needed libraries
    + Installed and configure the software stack: RSA, WAS, DB2
    + Technologies: VMware, Red Hat Linux (RHEL)