Primary Skills
Expert
Developing Java Classes
7
Using threads / Cconcurrency Issues
7
Implementing Data Access Classes
8
RX Java
1
Spring Boot
2
Hibernate
7
Spring
7
Spring Data
7
Spring Integration
1
JPA
7
JDBC
5
Hudson / Jenkins
4
Maven2
7
Developer
Lambda Expressions
1
Scala
1
Akka
1
Functional Programing
1
SQL
10
Designing Database Schema
10
Creating ERD
3
Writing SQL Statements
10
Optimization and Tuning (Please Specify Database)
3
Search
Kafka
1
MongoDB
1
Cassandra
1
Redis
1
Spring Batch
Spring Security
2
Linux OS - power user
5
Writing scripts - shell / bash / cshell etc
3
MySQL
10
Tomcat
5
Subversion
7
GIT
1
Docker
1
LogCollector
1
Logback
1
Shell Script
2
AWS
1

Professional experience

Java Distributed Architect
AngleSense

Help a startup to re architecture a monolithic application to a micro-service platform. This included breaking up application to multiple services with kafka as the communication bus. Help redesign application for scale by introducing rx-java in the software tier along with clustering of servers, and cassandra as a backend database for scaling data. Help introduce more functional style programing using javaslang framework On the devops side, I helped create the Cloud-formation structure on top of AWS for clustering of servers

Java Distributed Architect
Thomson Reuters

Architect for application that downloads and parses documents from multiple sources. /n Support for big load using Spring Boot architecture in the Scala language on top of Akka. /n Application was then packaged in Docker. Tech leader on legacy product written in scala for text NLP analysis. /n Add framework for streaming data to application lucene indexes from server databases.

Java Developer Amdocs
2014

Tech leader on monitoring team of Amdocs Portfolio. /n My job was to bring the product to next level including enhancements in cluster definitions using zookeeper. /n Introduce and create framework for sending dropwizard metrics to graphite using pickel protocol for optimizations. /n Introduce elasticsearch to product for event analysis. Enhance metrics library embedded in portfolio by creating dynamic proxies for metrics.

Java Developer FIS
2013

Joined a team that just started to build a Spring/Hibernate product on a legacy DB./n Helped as tech lead to solve multiple hibernate issues including nested filters and dynamic cache of metadata not supported by the hibernate model. /n Introduced Spring Integration to team, with full flow using JMS, xml transformations, and web service calls (based on classic integration patterns).

LATEST ARTICLES

border:

We all know how the classic SQL injection works (http://en.wikipedia.org/wiki/SQL_injection). A new novel way to try the technique can be found in the following picture:

border:

We have an application that to fully test it with different phases we would need about 15 jobs (see the following post for simplification of jobs: http://javaandroidandrest.blogspot.com/2014/03/jenkins-multijob-plugin.html).  The problem with this is that once you branch your trunk version you do not want to duplicate all jobs. One solution for...

tags:
border:

My assumption is that you are familiar with continuous integration concepts (http://en.wikipedia.org/wiki/Continuous_integration), and we use Jenkins (http://jenkins-ci.org/) as our build machine. I would like to describe our use of the Jenkins multijob (https://wiki.jenkins-ci.org/display/JENKINS/Multijob+Plugin). I think this plugin simplifies a lot of hassles. Development phases In every project you usually have...

tags:
border:

Maven Profiles Activation per module Maven profiles are very powerful (http://maven.apache.org/guides/introduction/introduction-to-profiles.html). One of the hardest parts of maven, in my opinion, for someone coming from a programing background, is that the flow of maven is not a method call. In a lot of cases we would like to create a...

border:

Micro Services I was at a session for micro services. There were many sessions covering different aspects of micro services (for seeing of the sessions, have a look at: http://www.meetup.com/full-stack-developer-il/events/155911442). I would like to summarize some of the issues raised and to give my two cents on the topic. There...

border:

One of the very nice feature of linux is the option for auto complete on the command line. Yes windows has the power shell, but it is not the same as linux. For those in windows and want a linux shell you can install Cygwin (http://www.cygwin.com/). For those of us that...

border:

@Configuration vs xml with prototypes   There are two sides to using spring. One is the injection side, and the annotations are  @Autowire, @Inject, @Resource (see http://javaandroidandrest.blogspot.co.il/2013/05/spring-bean-overriding-between-projects.html). The other side is the definition of beans: @Component, @Repository, @Server.   The beginning of spring all injections were done via xml configuration...

border:

Eclipse – Jenkins   Of course my assumption is that you are practicing continuous integration. If not you should begin with it right away. For more information see http://en.wikipedia.org/wiki/Continuous_integration. One of the problems with Jenkins is that you need to always open the browser to check what the status of...

tags:
border:

XML Subsets Most applications today use XML for some form of data saving. In testing we also need to validate XML files, find entries in the XML via XPath and search for differences in the XML. A lot of these abilities can be found in the lib of XMLUnit (http://xmlunit.sourceforge.net/)...

tags:
border:

http://spring.io/blog/2013/12/12/announcing-spring-framework-4-0-ga-release