- Senior Java Developer2015 - 2017Australia Post
Technologies: Java 8, Spring, Apache Camel, AngularJS, AWS, Docker, Python, Hibernate/JPA
- Implemented a public REST API.
- Developed Australia Post's web application and unit tested UI components.
- Developed a Command Line utility to help the team save time.
- Designed and implemented a CI pipeline.
- Integrating legacy internal systems with a Rest API.
- Worked with many AWS components and deployed the application to EC2 instances.
- Senior Java Developer2014 - 2015MessageMedia
Technologies: Java, Amazon Web Services (AWS), Docker
- Integrated Spring Cache and Ehcache with the application to add an extra in-memory cache layer between the application and Redis.
- Developed a distributed system using RabbitMQ as the messaging backbone.
- Designed a balanced publisher to Amazon SQS.
- Developed a message transmitter component based on SMPP communication protocol and integrated with various providers such as Telstra and Optus.
- Designed and implemented an efficient message consumer (semi-lock free to be called by multiple threads).
- Senior Java Developer2014 - 2014Genapsys
Technologies: Java, Spring, Storm, Git, Jenkins
- Designed and implemented the CI pipeline of the company using Docker and Jenkins.
- Set up the network file system and configured embedded Linux to copy files to NFS in an optimized way.
- Refactored the application to use Spring.
- Added New Relic to publish measurements.
- Set up a data processing pipeline using Twitter Storm and integrated it with MATLAB.
- Senior Java Developer2012 - 2013SAMAT (financial banking)
Technologies: Java, Spring, Hibernate, REST, AngularJS, Netty, ElasticSearch
- Architected an innovative in-memory electronic fund transfer switch capable of processing 1800 transactions per second with the following characteristics: Failover clustering, horizontal scalability, low latency, and high throughput.
- Designed and implemented the full stack of a web-based monitoring application.
- Designed an advanced CI pipeline to build, test, and deploy an application on VMware ESX using Puppet.
- Developed effective unit, integration, and functional tests.
- Integrated an ElasticSearch server with the application to index incoming transactions data at run time.
- Set up a HAProxy to load balance EFTPOS TCP connections between distributed computing nodes.
- Senior Java Developer2012 - 2012Javaneh
Technologies: Java, Spring, Vaadin, Activiti BPM, JPA/HIbernate
- Worked in a deadline-driven environment with an Agile team to develop a CRM solution based on the Activiti business process engine.
- Designed an effective model-driven architecture which helped reduce development costs by generating UI components from the data model at run time.
- Designed an application stack using Spring Core, Spring AOP, Vaadin, and JPA2/Hibernate, as well as configured a data access layer to communicate with the Oracle 11g database.
- Helped the analysis team to model their business processes based on BPMN 2.
- Set up a CI pipeline using TeamCity and Nexus to run the project's unit tests, build artifacts, and finally deploy on testing servers for testing by the QA team.
- Senior Java Developer2011 - 2012Khobreh Pardaz
Technologies: Java, Spring, Hibernate, JSP, jQuery, Tomcat, MS SQL 2008
- Implemented robust tamper-proof RESTful web services for a high traffic social website.
- Provided management with a list of social features to engage users more extensively.
- Worked closely with the UI team to fix communication issues between the jQuery AJAX-based client and Java back-end server.
- Developed optimized algorithms to calculate customers' scores based on various loyalty programs.
- Fixed several applications' memory and performance issues by profiling with JProfiler.
- Profiled and optimized SQL queries using the Query Analyzer of MS SQL Server 2008.
- Set up and configured Jenkins to build and run unit (JUnit) and functional (Selenium) tests.
- Set up and integrated a JasperReports Server with MS SQL Server and developed customized reports using a JasperReports Library.
- Java Developer2008 - 2011Twenies
Technologies: Java, Google App Engine, AWS, jQuery
- Worked in a distributed Agile team to develop a social web application capable of handling a high number of user requests.
- Provided management with a list of cloud opportunities in order to address scalability and performance issues.
- Migrated a part of the internally hosted application to Amazon EC2 and integrated it with Amazon S3 to store user assets.
- Moved the main part of the application to Google App Engine, and refactored DAOs to be compatible with GAE.
- Modified and recompiled the source code of Spring Security to be compatible with a GAE environment.
- Migrated the project’s build scripts from Ant to Maven.
- .NET Developer2007 - 2008Farineh
- Designed and implemented an interactive task scheduling panel in C# to be used in the reporting panel of a SCADA system.
- Designed an optimized task scheduling algorithm considering dependencies and other constraints to reschedule tasks on new changes.