Faiz, could you please introduce yourself? How did you started with Java / Java EE?
As FlexiSAF’s CEO, I am responsible for FlexiSAF’s day-to-day-operations, as well as leading the company’s product development and technology strategy. I co-founded FlexiSAF and has been the CEO since 2009 when the company began its full operations. I am ambitious and enthusiastic in improving the quality of education using technology.
I started learning Java in 2000 using Java How to Program by Deitel & Deitel which was given to me by my Uncle, Eng. Aziz. Since then I never looked back again. It was in 2008 that I started paying attention to Java EE. All my projects are now Java based. I am Sun Certified Professional with the following certifications: Sun Certified Business Component Developer, Sun Certified Developer for Java Web services, Sun Certified Web Component Developer and Sun Certified Java Programmer.
How Java is doing in Nigeria? Are there any meetups, JUGs etc.?
Based on my interaction with developers in Nigeria, I think people shy away from Java. They feel the learning curve is very steep. However, I think big enterprises use Java EE but I am not sure of the market share between Java EE and .Net. With technologies like Android however, Java is gaining more popularity. There is JUG in Abuja since 2011 which is being headed by my Friend Bulama Yusuf. However there hasn't been a meetup for sometime now. There are JUGs in 2 other cities in Nigeria (Lagos and Port Harcourt). Bulama informed me that they have been communicating with Oracle Nigeria to organise a nationwide conference but that has been slow.
Could you please briefly introduce your application?
We have a number of applications for schools, but the most popular one is SAF School Management Software (SAFSMS). It is a web-based application for managing school's processes and students' records. Currently over 200 schools are using SAFSMS. It is completely based on Java EE on the server side and Google Web Toolkit on the client side. We are now working on a cloud version for SAFSMS which is going to be Software as a Service (Saas)
Many are thinking, Java EE is not appropriate for startups. What is your opinion about that?
I think it is a very wrong opinion because I have seen startups that use other technologies and eventually find it difficult to scale and have to migrate to Java EE. Java EE is really straight forward and takes care of the so many complexities ordinarily you have to worry about.
Which Java EE / SE versions are you currently using?
We use Java EE 7 for our current projects. We still use Java SE 7 but will soon migrate to 8.
Is there anything to simplify in you code base (legacy interfaces, superfluous patterns etc.)?
I think there's nothing really to simplify because all our code base is post J2EE1.4. We keep everything simple.What tools, servers, IDEs, operating systems are you using?
Most of us are Linux guys, we use Ubuntu. But a few of our designers use Windows. We were using Mercurial for SCM but recently migrated to GIT. I think I prefer GIT's branching model to Mercurial's. We now use Gradle for our build tool. Netbeans is our preferred IDE. GWT is our preferred UI tool and we also recently adopted GWTP as the framework for our GWT. We have also adopted Arquillian for our unit tests and use Arquillian Drone for integration tests. We use Docker to encapsulate the full stack that our applications need to make them portable. We haven't really done full CI but are considering Jenkins for that now. Amazon EC2 is our preferred cloud computing platform.All our applications are deployed on Glassfish, however we are thinking of following Arun Gupta (to Wildfly).
Any lessons learned?
I think the most important lesson I learned is to always use tools and automate whatever needs to be automated. It will greatly cut down the cost of running your business and obviously increase revenue.
If you had the chance to start-over. Would you choose Java EE again?
I will choose Java EE always without any hesitation
Where can readers find more about your system. Do you have any links, resources to share?
Faiz, thank you for the interview!
On demand workshops: Java EE 7: Bootstrap, Effective, Testing and Microservices available for streaming.