One of the most important things to continue to do for Java EE/Jakarta EE is highlight successful adoption stories at a regular cadence. The community has been doing just that for a long time. A number of these stories are curated here. In this vein, Hamed Hatami graciously agreed to share his Java EE adoption story. Hamed is a very experienced early adopter of Java EE that has developed a number of mission critical enterprise applications in Iran and now Sweden.
Can you kindly introduce yourself?
My name is Hamed Hatami and I graduated in Software Engineering from the Azad University of Iran in 2000. I started to work from the last year of my university with various programming languages and frameworks. I have worked for many well-known organizations all around Iran like the Informatics Services Corporation, the Social Security Organization and many others. I have had a lot of responsibilities such as a Software Developer, Software Designer, Technical Team Leader, Technical Consultant and Software Architect.
I have known the Java programming language since 2000 and I fell in love with it right away.
I was the technical leader of many national projects developed with Java EE such as the RTGS–ACH–Chakavak (check management system) for the Central Bank of Iran.
I have a lot of hands-on experience with Java EE technologies like JSF, CDI, PrimeFaces, RichFaces, EJB 3, JPA, Hibernate, EclipseLink, JDBC, JAX-RS, JAX-WS, JAX-B, JSON-P, JMS, ActiveMQ, HornetQ, WebSphere MQ, JBoss EAP, WildFly, GlassFish, MicroProfile and WildFly Swarm.
I am living in Sweden now to learn more in an international environment. Currently, I am working for Cyber Design Nordics as Senior System Architect and I also have another role in Ericsson Corporation as a Contractor.
Can you describe the applications that use Java EE? What does your company do?
Most companies that I worked for are in the Banking and Insurance domains. There are many technical challenges in developing systems for such companies because of the large number of concurrent users and the large volume of data. For instance ACH had to process more than 80 million transactions per day. The Real-Time Gross Settlement (RTGS), Automated Clearing House (ACH) and Check Management System (CMS) for the Central Bank of Iran were developed on Java EE 6 technologies.
Since I came to Sweden, I have been working for Cyber Design Nordics and I have designed and developed two enterprise systems based on Java EE 7 for one of the most famous companies here. Nowadays I am working for Ericsson as a Contractor with the Java EE stack.
Besides these, I have produced a few products myself with Java EE 6 and Java EE 7 like Magnolia Bus, Magnolia ATM Monitoring, Magnolia Dynamic Report Designer and Magnolia Central Authentication and Authorization.
Why did you choose Java EE?
As a matter of fact, I have been a big fan of Java EE for a long time.
I think I was one of the first people in Iran that developed many web applications based on Java EE 5 and JBoss Seam which was a rival for Spring IoC in those days. As a result I had good knowledge of CDI and its advantages from the very first release.
I believe in the Java Community Process (JCP) and the open collaboration of many companies like IBM, Red Hat and so on.
As you know, one of the most important things in software development is Rapid Application Development (RAD) and I think Java EE covers it well. With Java EE each block of your software architecture fits perfectly together.
Each Java EE Application Server has many services included like the Servlet container, the EJB container, the JMS container, transaction management, security modules, Administration Console for monitoring and tracking, etc.
Most high profile projects in enterprises with a large number of concurrent users and large volumes of data need very good software infrastructure and very good architecture to meet non-functional requirements. I think the Java EE ecosystem is designed to handle non-functional requirements like fault-tolerance, fail-over, reliability, scalability, high-availability, security, interoperability, stability and maintainability in the best way possible out of the box.
Because I have had many good experiences with different enterprise projects using Java EE 5, Java EE 6 and Java EE 7, it has become a default choice for me.
How do the applications use Java EE?
As I mentioned before, most of my projects are designed and developed based on Java EE from scratch. In the presentation layer, we usually use JSF with a combination of PrimeFaces, RichFaces, JQuery, ZK and Vaadin with CDI. In the business logic layer, we usually use EJB 3. In the data layer, we usually use JPA/Hibernate.
More recently I have tried to use other platforms such as Dropwizard and Vert.x in some cases.
What was your general experience with Java EE? Would you choose it again?
I have had very good general experience with Java EE such as the many national projects that I mentioned, so I will use it again with new brand features in Java/Jakarta EE 8 and new innovative platforms like WildFly Swarm, MicroProfile and Payara Micro.
How can people contact you if they have questions?
I am always available via email and LinkedIn.
- Email address: hamedhatami2012 at gmail dot com
- LinkedIn Profile: https://www.linkedin.com/in/hamedhatami