A Java EE Startup: Getting Lucky With DreamIt
Norman, could you please introduce yourself?
I am CTO and co-founder of dreamIT where we especially built and keep building up an entire gambling platform for a world-wide lottery provider from scratch. Since then I have accepted several key responsibilities, piling up more than 15 years of experience in the gambling and technology sectors. I worked across many gambling verticals including Sports- and Horse Betting, Casino, and Lottery. Through my career I have worked with many of the (world's) leading gambling operators where I developed and deployed strategies, products and solutions across Europe for both B2B and B2C customers.
Until now I have been improving my skill set continuously - especially in the web, mobile and interactive world to build high-performance, scalable and maintainable - but not over-engineered - solutions. I believe that simplicity of a solution ensures protection of investments for the ever-changing requirements in today's fast-paced world and is one of the most important - but almost underrated - challenge in coding. With deep understanding on both B2C and B2B sides of the Gambling Industry, I was driven by my passion to superior systems, excellent user experience and, of course, innovation in the gambling.
What is dreamIT? What are you building?
dreamit.de is a Hamburg-based software engineering company delivering individual software solutions tailored to very specific clients’ needs. We are focusing on large, transaction-based B2C platforms, and we develop all elements of such tailor-made solutions (database-/back end systems, frontend, mobile (iOS/Android)). We consequently use agile software development methods with short sprints and a continuous deployment approach. We have a strong and proven ability to architect, design, develop, implement and operate SaaS solutions. Our senior architects address typical challenges with proven best practices, which enables us to quickly find the right solution for our clients’ needs.
One of our teams' largest projects so far has been the development of an entire gambling platform for a foreign secondary lottery provider from scratch, following the client's very specific requirements. We helped this client to really identify, articulate and document any technical product specific needs, based on their business needs. Strictly following these customer specifications, we built an entire website-/desktop-/admin tool system that currently processes an 8-digit number of transactions each month.
You started straight with Java EE 6. Are you still happy with this decision?
Yes, we are still happy.
How much traffic (peek e.g transactions per second, concurrent users etc.) your application has to handle?
In the lottery business we tend to have quick surges in user traffic, resulting in big peeks. On high jackpots we get about 4000 to 5000 concurrent users.
What about the performance? Is Java EE fast enough?
Java EE is really fast and solid as a rock. Job applicants often say that they've never seen a faster web site before.
Are you happy with Java EE's productivity?
Java EE is great. It doesn't restrict you in anything. We are working domain driven and it seems that Java EE is built for it. You have bean validation, CDI, JSF, which all works very well together. So you can build perfect domain models with very good cohesion. Especially CDI fits well in the whole Java infrastructure, because you can use every visibility as you would without a container. This is a big advantage over classical EJBs, where you need everything public, which should be handled by the container.
We are using the full stack of Java EE only. And we try to avoid third party libraries. Simplicity is our key to success. And Java EE gives you almost everything out-of-the-box, so we can concentrate on business logic.
Any plans to migrate to Java EE 7?
We are planning to migrate to Glassfish 4.1 or even Payara in the next few weeks. Java EE 7 is not the key reason for migration as Java EE 6 is quite cool for us, but our developers are waiting to use "revolutionary" Java 8. In general we try to be up-to-date with our technology stack as soon as possible.
What application servers, tools etc. UI technologies are you using?
We are using Glassfish 18.104.22.168 right now. Our database is mongoDB, our frontend is JSF. The IDE is IntelliJ IDEA. The continuous integration server is TeamCity from JetBrains. Other tools are: haproxy, nginx, hazelcast, SonarQube.
Should architects code?
Absolutely. We think, they work basically for the development team. And developers usually understand code very well. An architect must be present his ideas for the developers in source code. Though they also must be able to do some nice diagrams both for developers and the management. But management compatibility is only a side aspect of the architect's job.
How many developers are working on the application?
Currently we have about 15 developers and the team keeps growing fast.
Are there any pain points with Java EE? What could be simplified?
Unfortunately the CDI spec changed with Java EE 7. Things that were possible with EE 6 don't work any longer. Another problem is Oracle's policy of Glassfish updates. But Payara is a hot candidate to fill the gap.
Will you choose Java EE for the realization of your ideas again?
For sure. The technology is mature, but still let's you do whatever you want.
I really enjoyed to work with you and your team--we had lots of fun. What in your opinion is more important, having fun with hacking and be passionate, or the actual experience?
It's a mixture of both. You need experienced developers in the team (at least the architect). But they all need to be passionate including the experienced developers.
Do you have any demos, links etc. for the readers?
We do not promote our customers' web sites, so unfortunately I am not able to give you any demo link here. But visit our web site http://dreamit.dein contact with us.
Or visit us on the code.talks developer conference where we act as a sponsor too http://www.codetalks.de/2015/sponsoren
We will starting soon our github repo. And in general we try to establish us as a brand -- at least here in Hamburg. Just to be a cool developer company. We now organize our first meet-ups. Hopefully with your support too. I count on you.
Additionally, here is a link to our chief architect: http://frankcaputo.de. He is a member of the JSF and MVC-Ex pert-Groups, where we e.g. have a chance to help improving upcoming JSF versions directly. Frank participates in JSF improvements significantly. E.g. make JSF more HTML5 markup friendly with pass-through attributes or adding resource library contracts.
You always ask me whether I know passionate Java EE developers. How to apply? :-)
Simply send us an email to firstname.lastname@example.org, take a look at http://dreamit.de/it-jobs-in-hamburg or contact me directly on Xing https://www.xing.com/profile/Norman_Schoeneich
Norman, thank you for the interview!
> Unfortunately the CDI spec changed with Java EE 7.
> Things that were possible with EE 6 don't work any longer.
This should NOT be the case. The spec is (or at least should be) perfectly backward compatible (I should know as I am one of the authors). Which part do you mean?
If you experience a change in behaviour from EE6 to 7 then this is most likely either
a.) a bug in the EE7 implementation
b.) you did rely on non-specified behaviour in EE6
Posted by struberg on April 26, 2015 at 12:17 PM CEST #