Hasan Bin Jamil

Athenelaan 207, 2152KL, Nieuw-Vennep. +31 6 48266957. hbjamil@gmail.com

View on GitHub

Overview

More than 20 years of exceptional track record in designing and implementing interoperable, distributed software solutions. A highly proficient software specialist with expertise in developing robust, cloud-based REST and microservices solutions that are scalable, high-performance software systems. Such systems require comprehensive knowledge of concurrent, distributed systems that are interoperable and need to communicate with other nodes in heterogeneous networks. Mr. Jamil is an excellent team player and his expertise lies in software architectures, object-oriented analysis and design, JEE and Java technology and modern software development processes.

Career Summary

     
November 2018–To date Idexx Senior Java Developer / Architect
November 2016–October 2018 Nuon / Vattenfall WSO2-IS / Java Lead Designer
June 2016 – October 2016 ING Bank Senior Java Developer
October 2015 – May 2016 Rabobank International Senior Java Rest API developer
September 2013 – September 2015 KLM Senior Java developer Electronic Search & Booking system
September 2010 – August 2013 IMC B.V. Electronic exchange connectivity Developer
April 2010 – August 2010 KLM J2EE / Web services consultant (via Capgemini)
April 2009 – March 2010 Allianz Senior Developer / Analyst (via Capgemini)
April 2007 – March 2009 Nationale Nederlanden Technical Analyst / Coordinator (via Capgemini)
April 2007 – August 2010 Capgemini Netherlands Senior Consultant
April 2006 – March 2007 International Industries Limited Software Architect / Developer (via XyberMoguls)
November 2002 – March 2006 Telewest Communications NV/SA Software Architect / Developer (via XyberMoguls)
December 2000 – October 2002 IMC B.V. Senior Software Engineer (via XyberMoguls)
December 1999 – March 2007 XyberMoguls B.V. Software Engineer

Academic Summary

     
1996 - 1999 University Of Karachi, Pakistan B.S. Computer Science
2009 - 2011 ROC, The Netherlands Inburgering / Dutch language course

Competence Summary

Domains

- Identity and Access Management
- Corporate Banking
- Electronic Trading
- Electronic Flight Booking
- Healthcare

Cloud Platforms

- Azure (API management, VMs, Loadbalancer)
- AWS (API Gateway, ElastiCache, Lambda, VPC, Loadbalaner, Global Accelarator, S3, Route53)

Languages, Tools, Technologies and Frameworks

- Java 8
- JEE
- Spring / Springboot / Spring Batch / Spring Integration
- Hibernate
- REST and SOAP services
- Dockers
- Java FailSafe
- EHCache, Hazelcast
- JUnit, Mockito
- Apache Spark
- Intellij, Eclipse, JVisualVM
- Maven, Gradle, Jenkins, Sonar, TeamCity, DeployIt
- Wireshark, Jira
- Git, SVN, Stash, Cruicible
- JMeter, Gatling
- JSP, PHP, Servlet
- Java script

Electonic Trading Protocols

- FIX, Fast/FIX
- ITCH, OUTCH

Application and Web Servers

- Tomcat, JBoss, WebSphere
- WSO2 Identify Server

Databases

- Oracle, MySQL, SQL Server, InfiniSpan

Software Processes

- Agile methodologies, Scrum
- Extreme Programming
- TDD

Career Details

November 2018 - To date

IDEXX

www.idexx.nl

Position:

Freelance Senior Java Developer / Architect

Overview

Developed an integration layer between an inhouse developed Animal Health Care and (SAP) Finance system. The integration of the two system is required to generate financial reports and customer invoices. It also enables Idexx to keep track of their daily revenue. This integration layer comprises of service-oriented (two way) channels and batch processes which are developed using Spring Boot, Spring Integration, Spring Batch and Amazon Cloud platform. The solution is developed for Canada and UK markets and process millions of requests and records per day.

Role

Lead developer and Architect of the complete solution. This requires constant communication with Canada and UK analysts and business and layout a solution which can work for multiple markets with vastly different requirements.

Achievement

Legacy system takes more than 1 hour to process a maximum of 10K records. New solution can process those records in 20 seconds and has no limitation on the maximum number of records. With this new solution Idexx can keep track of their daily revenue and order status nearly real time.

Tools and technologies

Java, Spring, Spring Boot, Spring Integration, Spring Batch, REST services, AWS Lambda, AWS Elasti Cache, AWS API-Gateway, AWS Global Accelerator, AWS Application Load balancer

November 2016 - October 2018

NUON / Vattenfall

Position:

Freelance Java and WSO2 Identity server lead designer. Solution Designer

Overview

Implemented an Identity and Access Management (IAM) system for the Nuon (Vattenfall) B2C system. This system provides an authentication and authorization solution for a portal that has a user base of 1.9 million users. After a successful authentication process, these users can manage their products and track their engery usage. This IAM system uses the WSO2 Identity server as a core product and provides APIs for user authentication and user provisioning. During the migration period it also provides a federated authentication mechanism to migrate users from the legacy system to the new IAM system. The solution is built and deployed on top of Azure cloud components.

Role

Team lead, Solution designer and Senior developer. It also involved managing and hiring new resources for the project designing and implementing the API. Providing technical assistance to the junior developers.

Achievement

Migrated 1.9 million users to the new WSO2 based Single Sign ON IAM solution.

Tools and technologies

Java, Spring, WSO2 Identity Server, Azure cloud, MS SQL Server, Hazelcast distributed cache

June 2016 - October 2016

ING Bank

Position:

Freelance Senior Java Developer

Overview

Working in the Risk Analysis and Computing team to migrate the legacy simulations to an Apache Spark based big data simulation system.

Role

Senior Java and Spring developer migrating/implementing the legacy simulations to new platform. Also involved helping the management to create a migration strategy.

Tools and technologies

Java, Spring, Apache Spark, Google protocol buffers

October 2015 - May 2016

Rabobank International. Online security team

Position:

Freelance Senior Java REST API Developer

Overview

Designing and developing a REST API to facilitate corporate banking operations. This API System provides an intuitive and highly scalable interface to build internal and external systems for corporate clients. Back-end of the system uses SOAP services layers to access and manipulate the corporate data stored in LDAP and Oracle DB.

Role

Senior developer designing and implementing the API. Providing technical assistance to the junior developers.

Tools and technologies

Java, Spring, Spring MVC/REST, Spring batch, Websphere, LDAP, Oracle

September 2013 - September 2015

KLM - Electronic Search & Booking tool

Position:

Freelance Senior Software Engineer

Overview

www.klm.com provides an online search and booking tool to find and book lowest price tickets. This site provides a unique view of cheapest flights per year and per month for both outbound and inbound flights. Month by month or day by day price overview gives every user an option to compare the prices and book a journey with optimum flexibility. The whole application is divided into two parts, Search and Checkout. Search provides a single page web application optimized for searching cheapest flying options and checkout helps user to buy extra options and make a payment. Rebooking functionality is recently added in this application.

Role

Worked as a senior back-end developer for the REST based back-end for the search and booking tool. Also added a few simple and small front-end components for the single page search application.

Achievement

Implemented 80% of the back-end for the rebooking functionality. Gain reputation as a star developer who can burn 40% of the sprint points without compromising any quality or standards and always deliver things in time.

Tools and technologies

Search is a single page web application built with html and java script. This front-end uses a REST based back-end written in Java to execute different use-cases. SOAP services’ clients fetch the information from Amadeus about flights and reservations. This system is recently moved to Tomcat (from Websphere) and uses Oracle db to store transactional data. This system also uses MQ to provide feed-back to the internal monitoring systems.

September 2010 - August 2013

International Market Makers B.V. (IMC)

Position:

Electronic Exchange connectivity software engineer

Overview

IMC is a market maker, which connects to more than 50 electronic exchanges for High Frequency Trading (HFT). Electronic Exchanges the entire world uses some (flavors of) standard protocols to dispatch market data (feed) and accept orders for electronic trading. IMC connects to all these exchanges with the help of locally developed connectivity solutions (drivers). These drivers not only dispatch the market feed but also provides an interface to submit orders/transactions to the electronic exchanges. Depending on the exchange protocol, these drivers can provide a two-way information flow with a latency of microseconds.

Role

Development and support of the high-speed connectivity software. Add connectivity solutions to connect with new markets. Support protocol migrations and improve performance of existing solutions.

Achievement

Successfully developed mass quoting for CME exchange. Developed the software to enable IMC (Chicago) to enter the Brazilian market (Bovespa) for the very first time. Migrated the TOM connectivity solution to ITCH which makes the market data feed dispatch to be ~300 milliseconds faster.

Tools and technologies

The system is designed using state of art Object Oriented and concurrency patterns. It is written in Java/JEE and runs under Linux and Windows and uses MySQL database. Objects are serialized using XML and Java standards and distributed over TCP and UDP.

April 2010 - August 2010

KLM - JEE Consultant (via Capgemini)

Position:

Senior J2EE / Web Services consultant

Overview

Flight management system (FM) is a KLM system to manage flight bookings, cargo handling, fuel status etc. It is a complex system involving heterogeneous sub systems interfacing with the help of web-services. KLM was porting this system to the latest web services and business standards.

Role

Understand domain requirements, create designs and implement services. Analyze and debug performance problems, improve the reference architecture for developing web-services. Provide expert opinion on different projects.

Achievement

Improving services performance by 30%, porting JAXB services to JiBX.

Tools and technologies

Java, JAX-WS, JiBX, Spring, Hibernate, Websphere, TIBCO.

April 2009 - March 2010

Allianz – Hypolife mortgage system (via Capgemini)

Position:

Senior Software Developer

Overview

Hypolife is a web-based mortgage application management system that manages the complete process of a Mortgage Application. It uniformly connects all the Intermediaries with Allianz and streamlines the whole business process. Hypolife is developed using MDSD (model driven software development) approach. All business processes and constraints are defined as models and then a proprietary code generator is used to generate Application flows, Model layer, Persistency layer and External Interfaces definitions. This approach makes the whole software development process very agile and supports easy software evolution.

Role

Analyze complex domain requirements. Design and implement technical solutions for the problem.

Achievement

MDSD approach makes it possible to add late requirements efficiently. Hypolife streamlines the whole business process and cuts down overall Mortgage Application processing time.

Tools and technologies

Java, Spring, Hibernate, Spring Webflow, JBoss (for development), Websphere (for production environment), Hypersonic, DB-2.

April 2007 - March 2009

Nationale Nederlanden – DUPLO system (via Capgemini)

Position:

Technical Software Analyst and Architect

Overview

Duplo = “De Uniforme Pensioeninvoerapplicatie voor de Leven Collectief Organisatie” Duplo and OffIS are designed and developed to provide a uniform interface for handling requests related to creation or updation of Pension and Insurances. Duplo makes it easy for the users to create customized offers for their clients by hiding the complexity of the pension and insurance domain under its intuitive user interface and simple but powerful design. This system communicates with legacy systems running on heterogeneous environments like Mainframe and AS400.

Role

Analyze complex technical requirements; devise technical solutions for the problem. Design new solutions. Lead a team of software engineers working in India.

Achievement

The staging system designed to add requests and process mutations cuts down the overall processing by half. In addition it enforces a 4 eye data review principle which dramatically reduces the number of errors made by pension and insurance agents during calculations. Compared to the old AS400, Duplo’s intuitive user interface and simple processing flow makes it possible for the real insurance experts to use the system without having A2400 operating skills.

Tools and technologies

Java, EJB, Websphere, Oracle, DB-2

April 2006 - March 2007

International Industries Limited – FlexTrack MRP Solution (via Xybermoguls)

Position:

Software Architect / Senior Developer

Overview

This system facilitates Production Planning, Scheduling, Order Management, Price Management, Inventory and Warehousing, Raw Material Management and Invoicing. The system provides complete pipe production life cycle management from Order to Plan, Plan to Production and Production to Warehousing or Order Delivery. System provides a platform to generate efficient production plans with a single click based on available resources, machine configuration and user defined criteria.

Role

Designed and Architect the system and lead a team of 15 software engineers. Implemented critical and major components of the system.

Achievement

The user can track the complete life cycle, from coil to the pipe production, with the help of FlexTrack. Production Plans can be generated and updated within minutes that help in keeping track of more than 20 Plants running in the factory.

Tools and technologies

Java, EJB, Hibernate, JBoss, MySQL, SQL Server 2000

November 2002 - March 2006

Telewest Communications – FlexTrack: Revenue Tracking (via Xybermoguls)

Position:

Software Architect / Senior Developer

Overview

This project has resulted in the deployment of a high performance Revenue Tracking Solution on FlexTrack for Telewest, a Belgian operator. FlexTrack is a carrier-class telecom server platform suitable for running multimedia applications or applications that track network resource usage or operator’s revenue tracking or IN like services. The Revenue Tracking Solution consisting of the following applications: Billing Solution, Mediation Platform, Rating Engine, Interconnect and IN Services such as Least Cost Routing (LCR), Prepaid and Value Added Service (VAS). The Mediation Platform collects, validates, formats, routes and reliably distributes (guarantees no loss or duplication) usage events (CDRs) in real-time from vendor independent switches including the AXE to Billing and Post Processing Systems. Extremely scalable, it is capable of mediating millions of usage events daily. Number Portability (NP) collects NP information in real-time from CRDC into FlexTrack. The SSP on AXE demands in real-time and concurrently, NP information from Flextrack using TCAP on INAP. The service is capable of being used by other operators concurrently in real-time through dedicated links.

Role

Member of the architecture team for this project, which required highly specialized J2EE and JAVA skills and expertise in designing high performance distributed architectures. Also essential was experience of developing large, real-time enterprise solutions, which fulfill stringent requirements for availability, performance, robustness and scalability. He was responsible for developing the Mediation Platform and IN Service Number Portability for Belgium based on CRDC.

Achievement

The maiden deployment at a Belgian Telco has resulted in dramatic reduction of fraud and achieved phenomenal improvement in Mediation, Rating and Billing performance. The deployment Mediates and Rates millions of usage events daily and has reduced billing cycle 6x. NP is an extremely cost effective solution.

Tools and technologies

Revenue Tracking is written in JAVA, implemented on the J2EE framework, is platform neutral and deployed on JBOSS application sever and Linux. It can also be deployed using BEA Weblogic or IBM WebSphere Application Servers. It’s designed using the Object Oriented paradigm and makes good use of patterns. Development of the systems requires sound knowledge of Hibernate, JDBC, JFC, EJB, Java RMI and CORBA. Development tools used included: the IBM Rational Suite, JRUN, TogetherJ and JPROBE

December 2000 - October 2002

International Market Makers B.V. (IMC) - Option Trading Platform (via Xybermoguls)

Position:

Software Engineer and participated in the Architecture team

Overview

Option Trading platform, a 50 man-year project, is an exceptionally successful option trading platform used for arbitrage trading by IMC the largest Dutch, Market Maker. Options data from several major exchanges including Euronext and LIFFE is received through live data streams from providers such as Bridge, Mercury and TopCAC. Feed drivers import and transform the data from vendor specific formats into a common information model. The data undergoes intricate processing to spot arbitrage opportunities.

Role

As member of the architecture team, was assigned to help develop some of the components of the trading platform. Help defining the mechanisms for concurrent, asynchronous and event driven trading systems, strategies for options trading and maintaining volatilities. Also took part in the task of identifying mechanisms to seamlessly exchange information between object oriented and relational paradigms. Construction of real time duplex drivers for exchanging data between applications and various stock exchanges, which enables electronic trading. Providing interfaces for trading and tracking portfolios.

Achievement

Successfully developed a framework to develop electronic trading applications and drivers. Applications developed on this framework have the best performance on the Amsterdam Exchange (AEX) capturing most arbitrage positions, daily. Executes automated transactions within a microsecond.

Tools and technologies

The system is designed using state of art Object Oriented patterns. It is written in Java and runs under Linux and Windows and uses MySQL database. JavaCC is used to implement parsers. Objects are serialized using XML and Java standards and distributed over TCP/IP. JProbe is part of the unit testing mechanism and is used to quantify the performance of the packages and components

December 1999 - December 2000

XyberMoguls B.V. (XM) – FlexTrack: A Telecom Server Platform

Position:

Senior Software Engineer

Overview

FlexTrack is a carrier-class telecom server platform suitable for running multimedia applications or applications that track network resource usage or operator’s revenue tracking or IN services. It is truly (linear) scalable and fulfils stringent requirements for availability, performance and robustness. It is OPEN, uses J2EE, and is designed to be platform neutral (NT and Linux). FlexTrack is implemented using a component-based architecture; it is highly configurable and can be easily integrated to third party products or to any network element or application on the network without disrupting existing services or network elements. Developed from inception, the platform is designed to operate with clustered hardware, distributed software architectures (CORBA compliant) and interoperable applications. The platform provides components for communications, control functions and mechanisms such as persistency and security. It was a 20 man-year project implemented by a team of about 20 engineers.

Role

Lead software designer for defining mechanisms and standards for platform independent implementation, testing and deployment of the system on heterogeneous platforms.

Achievement

Developed a generic reusable framework, which enables the development of event driven and pipe lined applications. This framework provides robust, flexible and extensible mechanisms for persistency, inter-process communication, asynchronous communication, pipe lined task execution, event handling, platform independent file handling, memory pooling, environment configuration, fault reporting and error handling.

Tools and technologies

The platform, written in C++ and JAVA running under Linux, is developed using iterative and incremental processes. Components are designed using the Object Oriented paradigm on an XML based protocol. CORBA is used to communicate with the outside world.

Academic Details

1996 - 1999

B.S. Computer Science - University Of Karachi, Pakistan

Courses Studied

- Object Oriented Analysis and Design
- C++, Java, COM, DCOM
- Automata theory, Compiler construction
- Discrete Mathematic, 
- Relational Databases Design
- Operating Systems Architecture, Networking theory
- VLSI Techniques
- Advance Software Engineering, System Analysis and Design and Algorithmic Analysis & Design
- Operational Management, Dynamic Programming, Statistical Methods

Projects

- Natural Language Processing Interface for the Traveling Guide expert system
- Computer controlled Robotic Arm
- Automated Semester Cell system for University of Karachi
- FTP (File Transfer Protocol) Client
- DBMS application for the Patients Admission System Aga Khan University Hospital
- Statistical Methods Based Password Checker
- Jigsaw Puzzle