Personal Data

Name Reza Ghafari
Mobile (+61) 0402 636 492
Email rezaghp@ieee.org, reza@computer.org, me@rezagh.com
Web RezaGh.com, #rezaghp, LinkedIn

Degrees

- M.Sc. Computer Science (MCS), Pune University, India, 2001-03, GPA: 70 % (First Class), syllabus, projects
- B.Sc. Mathematics, Teacher Training University (Tarbiat Moallem), Iran, 1994-99, GPA: 66 %, syllabus

Skill Summary

I started working in Java/EE officially at around 2002 in uni and moved on to different projects, technologies and positions, from junior developer to architect and project lead/manager. My development experience is mostly on backend but I have good experience and understanding of frontend too. My exposure to different aspects of IT industry is as follows:

Java, JavaEE, Frameworks, Backend: 8+ Years
Desing, Methodology, Pattern: 5+ Years
Architecture: 3+ Years
Leadership: 2+ Years
Domain Knowledge: Telecom, ERP, Advertisement, Product Catalogue, Online Carts/Orders

See the table at the end for details.

Recent Work Experiences


Positions Senior Technology Specialist
Where Telstra-BigPond, Sydney
Dev. Team Size 3-20
Time From Nov 10th 2008 till now, Full time, Contract Position
Project Transformation
Technology JPA, Spring, Hibernate, EJB 3, Ehcache, EasyMock, PowerMock, JUnit, Webservices, JAXWS, JBoss
Role I am mainly a backend developer and have long been responsible for design and development of the "product catalogue system" of the Transformation project; one of Telstra's strategic projects. The system contains Bigpond's product management and price calculation modules. I am among the core team to design and develope the system from scratch to production. Among coding almost all the business modules of the system I also worked on performance and caching mechanisms. Apart from Product Catalogue system I can also mention:
  • Some JMS R&D on HornetQ to replace the normal RMI/JAXWS calls with a messaging system (MOM) for better performance and using clustering capability.
  • Implementation of a JAXWS cookie handler for webbased systems
  • Design of an authentication module
  • Working on different enterprise application integration solutions
  • Upgrading different Bigpond systems to IPv6
  • Design and implementation of a PVT system
  • Design and implementation of a monitoring/deployment automation system across Bigpond
  • Converted an old ASP system to a JavaEE migrating old heritage customers to new systems. This system extensively uses stored procedures on SQL Server


Positions Senior Developer/ Consultant
Where Hyro Services, Sydney
Dev. Team Size 3-10
Time From April 10th 2007 till 24/10/08, Full time, Permanent Position

Project QHConnect (Bolero) is a B2B application for Qantas Holidays to enhance and manage holiday packages between Qantas and providers
Technology JMS, Axis Webservices, Weblogic, Struts, Hibernate, J2EE, EJB, MDB
Role Me and a team mate were sent to Qantas as consultant for a couple of months with responsibility to review, enhancement and add new functionality and bug fixing of the new releases.

Project Mobile Positioning Module
Technology Spring, Hibernate, Tomcat, XML, Telstra Mobile Positioning Interfaces
Role I was part of a team to developed a module for locating a mobile user inside Australia using Telstra GIS services.

Project Australian Idol Fan Messaging Forum and BigBrother Forums for channel TEN
Technology Jive Forum, J2EE, Tomcat, MySQL
Role I was responsible for customizations of forums. I had to dive into Jive Forum source codes and did a lot of changes on pagination, colors, thread management, database connection performance and pooling and many other logics.

Project Telstra Events Platform; allows Telstra mobile customers to handle events and access video services
Technology Spring MVC, Hibernate, Tomcat, MySQL
Role For a long time I was responsible for maintaining the application and developing a couple of new modules

Project Foxtel EPG (Electronic Program Guide)
Technology Spring, Hibernate, Oracle db, Axis2, Maven, JPA
Role I was involved in design and development of the early version of the product for a short time.

Positions Developer
Where McGirr Information Technology, Australia, Sydney
Dev. Team Size +5
Time From October 16th, 2006 till April 5th 2007, Permanent Position
Reference Mr. Peter Nanayakkara (PM), Mr. Jerry Maher  (Managing Director)
Project State Disaster Recovery System for NSW Department of Community Services, Information Management System for Queensland Industrial Relations Commission, McGirr Case Management Systems
Technology Java/J2EE, EJB, Struts, Oracle Application  Server, Tomcat, Jasper Reports, Oracle database, Scrum methodology, DotJ Taglib
Role

I was member of the development team and developed some new use cases for their old systems, a report generator system and some other system enhancements

I also developed a web based system capable of dynamically handling the CRUD (create/read/update/delete) of basic database tables. Instead of writing a CRUD use case for each simple and fundamental table, where we have less or no business, this can be used for CRUD operations of all such tables. It works based on reflection and with an inline web grid insert/update/delete.


Positions Senior Developer/Technical Architect
Where Caspian Company owned by Parsian Bank, Iran
Dev. Team Size +10
Time From March until October 2006, Full time
Reference Mr. Alireza Amiri, Mr. Amir Leilazi
Project A large scale banking system (Lending)
Technology Java/J2EE, Hibernate, Spring, RMI, Weblogic Application Server, Swing, Oracle 10g database
Role

I was developer of the core architecture, member of architecture team and involved in design and development.

Among other things I:
  • Developed a fully transactional Financial (Voucher) Engine which is part of every banking system. All financial transactions must go through this engine. Being transactional is a vital characteristic of this component. It also prevents concurrent access/operation on accounts and avoids drawbacks concurrency. It is a server side component.

  • Developed a data sync mechanism for synchronization of server and bank branch local tables. Some tables used to be duplicated in branch servers in order to reduce network traffic and these tables had to be synchronized with central servers. This was a server side component with different synchronization algorithms.


Positions Project Manager
Where Center for Distance Education, done in NSY Corporation, Iran
Dev. Team Size ~4
Time Dec 05 till March 06, Full Time
Reference Mr. Dr. Mohammad Talasaz (Project Consultant), Mr. Iman Baradari (Director)
Project A web based and XML based digital library and e-book reader application
Technology Java/J2EE, Web based, Oracle 10g database, Hibernate, Oracle Application Server, OC4J, Lucene open source search engine, XSL, XSLT, RUP methodology, JDeveloper IDE, Struts
Role I was the PM and involved in analysis, design, architecture and development. I developed a number of use cases in the system as well. This was a project with a very tight and short schedule and we had to finish it in 3-4 months. A customized form of RUP, accurate planning and time slicing helped us a lot to achieve this goal on time.

Positions Senior Developer/Technical Architect/Team Lead
Where Consortium of Information & Communication Technology (Kafa), Iran
Dev. Team Size 10-30
Time September 2004 - Jan 2006, Full time, and from Jan 06 till March part time
Reference Mr. Mehran Khansari , Mr. Ghasemi, Mr. Youssefian, Mr. Behrooz Katanchi
Project A large scale, national and web based ERP
Technology Java/J2EE, web based, Struts, Hibernate, Oracle 10g database, Oracle application server, JDeveloper IDE, RUP methodology, JFree Report
Role

I was a senior developer, architect and programmers' head in one of the three sub systems of the ERP. I designed and developed a number of components and important use cases. Among them:

  • Developed an image uploader for uploading photo and signature of personnel. This component can attach to any web page in the system (using its own tag) for uploading.

  • Developed a hibernate code generator to automatically generate hibernate XML and Java object files from database tables.

  • Developed a dynamic report generator to generate, format and view reports online. Users can define one or more tables, their relations, columns of the report, colors and other formatting parameters and then view, save or print the report.Using this, everyone can make their own reports and there was no need for hard coded report queries.

  • Developed a code generator for the whole project's framework. Using this code generator, developers can focus only on the business logic and the rest of architectural classes will be generated.

  • Developed a duplicate key finder for resource bundles. In this project we had lots of resource bundle property files for user interfaces and we always had the problem of duplicate keys. This component can find/view/delete/replace duplicate keys.

I also worked on work flows and Oracle application server deployment. I was also a team lead in my last couple of months and used to interview new Java developers.

From Jan I changed to part time and worked as a consultant.

This consortium was an ISO and TickIT holder.


Positions Developer
Where Arman Sharif Informatics, Iran
Dev. Team Size 10-15
Time March - Sep. 2004, Full time
Reference Mr. Arash Rajaian (CEO)
Project web based university automation and total system
Technology Java/J2EE, web based, EJB, Applet, Oracle Database, JBuilder IDE, Weblogic/Websphere/Tomcat servers, JFree Report
Role

I was part of the design and development team. Among other things, I wrote a web based dynamic report and chart generator for admins to generate student reports . I also developed a Java chat server with .NET clients for students of a virtual class to chat. I also researched on web services, JSF and JDO for a while. I started my EJB experience here in this company.


Positions College Faculty
Where DY Patil College, Pune University, India
Time June 03 - Dec 03, Full time
Reference Mr. Ranjit Patil (Dean of Computer Science Faculty)
Role CORBA Project Guide and instructor for "client-server and component based architecture" paper in master degree level. I used to guide around ten CORBA/RMI projects and instructed a small portion of the paper as well. This was a very good teaching experience at post graduate level.

Positions Developer
Where Ascent Informatics, India Pvt. Ltd., India
Dev. Team Size ~5
Time Feb - June 2003, Full time
Reference Mrs. Sujata Tilak (Managing Director)
Project

A web based information repository and management system called Infository. It was a tree based tool for storing/searching knowledge and information (of any type) in an organization.

Technology Java/J2EE, Applet, JSP, Tomcat, Servlet, Swing
Role

I was involved in design and development. My first official place to work on Java/J2EE. I worked here as my industrial training semester (4th semester) for master degree and developed a number of web based use cases in the system.


I have omitted my work experiences related to Hardware and Teaching.

Skill Sets


Category Have experience in Familiar with
Java Core Java, J2EE, EJB, Servlet, RMI, Hibernate, Spring, JTA, Spring Security, JPA, Struts, Webservice, JMS, HornetQ, MDB, Swing, Lucene, Apache Exec JSF, JDO, Toplink, EasyMock
Front End JSP, Javascript, HTML, Applet, Ajax, JQuery, Tiles, DWR, JSTL
Patterns Design/ Enterprise/ J2EE/ Architectural Patterns, ...
Version & Tracking Clear Case, CVS, SVN, Jira, SourceSafe Git
Design and Process Agile, UML, RUP, Rational Rose, Power Designer, Scrum Lean, XP, TDD
Database Oracle, Mysql, Access, HSQL, MS SqlServer, Stored Procedures
IDE JDeveloper, Eclipse Jbuilder, IntelliJ, WebSphere, Together, NetBeans
OS Ubuntu Linux, Windows, MacOS, Dos VAX/VMS, RedHat, SunOS, Solaris
Servers Tomcat, JBoss, Oracle AS, Apache Weblogic, Websphere
Other langs Python, C++, C, Win32 SDK, VC, VB, PHP, GWB Lisp, Prolog, Fortran, GWT, Android, ASP
Reporting Jasper Reports, JFree Reports
XML XSL, XSTL, XPATH, XSD, XQuery, SOAP
Other Stuff CORBA, OpenGL, SoapUI COM, RPC, Shark Work Flow (XPDL), Oracle UCM

Objective and what I can do!

I can:I love: I hate: I want to:
  • write reusable code
  • design systems and architectures
  • design processes
  • be a good team player
  • patterns, refactoring and simplicity
  • automation
  • Agile
  • technology but sit between a tech rabid
    and a business focussed person!
  • testing but it is a very useful thing in Agile specially.
  • bossy bosses!
  • tasks at 5:00 PM
  • too much documentation/diagram!
  • earn well
  • learn
  • do new things
  • make a difference

Current Passions

Java/EE development, architecture, SOA, cloud, Python, Agile

Hobbies \ Memberships