Many articles blogs and other documents have been written about how to scale your data linearly. To scale your application you need to partition your data across multiple machines each handling part of the load. If the data can be partitioned correctly, the grid can scale to include more machines [...]
I’ve been trying to write this post for few weeks now, nothing comes really perfect. So here’s a non-perfect post, about me leaving GigaSpaces and starting my own company:
I’m leaving GigaSpaces. It’s been almost four years since I joined GigaSpaces to lead the R&D team. When I first started, I wanted to work closely with Nati Shalom and with a new type of application server technology which was built to solve *big problems*. Together with a great group of people, we’ve built a great product, our famous GigaSpaces XAP. The proof of our success is this list of respected customers who are working with this product to run their business critical applications.
We didn’t just build a product. As many of us in this field now understand: great product is a result of great people, a lot of talent, professionalism and methodologies boiled together.
I’m very proud of what we’ve done together, and am grateful for the opportunity that I had. I also would like to thanks my friends at GigaSpaces, it’s been a real pleasure working with you guys!
In the past few years, I’ve witnessed the way technology influences my daily life. The internet, communication, globalization and the rapid innovation changes the way I live in this world. I was rather young programmer when the internet boomed back in the 90’s. Since than I’ve been in enterprise IT, doing middleware for the most part.
Now it seems to me that Internet is finally getting into enterprise IT. In my perspective, cloud computing is all about Internet meeting IT. IT becomes exciting! I’m excited. And for this reason I’ve decided to build my own new startup company around this new revolutionary ideas. I made a personal decision that I want to help this revolution to happen by building the tools missing in the market to support it.
Few days before my 38th birthday, I’m really excited about starting a new business which combines my passions: people, technology, methodology and new challenges.
Always looking forward!
I’ve been working on a new project using GWT. Being the only developer of my team, I’ve started with prototyping the user interface interaction model and was looking for a framework that will help me go fast, without a need too change to many paradigms. As I’m building a SaaS product, it has to be web, so I was browsing for various alternatives for web development.
Basically, I had two options:
- Application Driven – build rich client application using modern development tools such as GWT or Flex and add server-side integration later.
I have taken the second approach and used GWT as I’m familiar with Java and Eclipse so the ramp up was fast enough.
I came about using principles from Test Driven Development (TDD). I used a TODO list to make sure I’m focused on a single specific task without thinking about infrastructure layers at all. I had to make sure I’m not looking at the big picture while doing the little things, as I wasn’t interested at all in optimization and long-term thinking. Coming from an architecture mind-set, I had to control my tendency to think about the system while doing UI coding.
My working methodology was something like:
Step 1: Create a screen using GWT and make sure it looks right
Step 2: Add client-side, mock data to fill the tables and grids I’m using just to make sure the interaction model is what I’m looking for
Step 3: Data is encapsulated into some kind of Data Provider abstraction that is still static and within the client, however it is not part of the view anymore
Step 4: Data is moved to the server and as the Data Provider is enhanced with data loading capabilities
Step 5: Server starts to create dynamic data based on real data sources and instead of dummy data sets
Through this exercise I learned something which wasn’t clear to me prior
- As client side development is much simpler than server side interaction between the various tier, I was able to move extremely fast in building the right interaction model for the client application
- The architecture that has evolved from this approach is of modern two-tiers approach, similar the the old client/server model but in internet age. Most of the functionality is being done within the client where as the serer serves as a data provider. Coming to think of it, this is a huge opportunity for web driven database which support web protocols – HTTP, REST and query capabilities.
It simply struck me. I don’t consider myself the fastest developer, I’ve been privileged to manage some of the top talent out there, so I know where I stand. Still, the opportunity RIA, web enabled middleware services and the cloud presents something unseen before, as we are finally getting to the right level of abstraction in building internet applications.
From my perspective, the days of page-driven web development for applications, and super-complex packages such as JEE with tiered MVC are long gone. Although I’m telling a known secret here, those who are going to leverage fast cloud enablement technologies will gain tremendous advantage of those who don’t.
Today, on my way back from Sweden, I stopped in the Netherlands to visit Tricode, our strategic partner. On the way from the airport we’ve chatted as always, and I realized that they started to implement scrum as well in their projects. This is not t...