Yasin Efe
-
Lead Software Engineer
Contractor
github.com/yasinefe
linkedin.com/in/yasinefe
-
React JS: yasinefe.github.io/reactjs-cv
PROFILE
Extensive experience over 20 years in all phases of software design and development. Well versed with several programming
languages and countless frameworks and tools for back-end, front-end and mobile development. Highly skilled in design and
implementation of scalable, multithreaded with low latency, high available, fault tolerant, containerised applications and
services on different cloud platforms. Several year experience of technical leading, guiding and mentoring team members for
many projects. Strong understanding of applying Agile and Extreme Programming, Test Driven Development (TDD), Behaviour
Driven Development (BDD), Continuous Integration (CI), Continuous Delivery (CD) and Infrastructure as Code (IaC).
Comprehensive experience and business knowledge on telecom, finance, media, e-commerce and payment sectors.
Passionate about using new technologies and applying them to real world problems. Interested in Computer Mathematics,
Algorithms, Artificial Intelligence, Machine Learning and Deep Learning.
TECHNICAL SKILLS
Languages: Java 17, Groovy, Python, Kotlin, Node JS, OOP, Functional Programming, Reactive Programming, Design Patterns.
Frameworks: Spring Framework (Core, MVC, WebFlux, JDBC, AOP, JaxWS, REST, Cache, Transaction Management, Security, JPA,
JMS and Hibernate Support), Spring Boot, Akka (Actors, Streams, FSM, Persistence, Cluster, Distributed Data), Project Reactor,
Apache Camel, JMX, JPA, Hibernate, Maven, Gradle, NPM.
Queues: Active MQ, Rabbit MQ, Kafka.
Web Frameworks: React JS, Angular, HTML, Java Script, CSS, Material UI, Bootstrap, GraphQL.
Processes: Agile & Extreme Programming, Scrum, Kanban, Continuous Integration (CI), Continuous Delivery (CD), GitLab
Pipelines, Jenkins, Bamboo, Concourse, Code Review, Pair Programming.
Test Driven Development (TDD): JUnit, Mockito, EasyMock, Scala Test, Kotlin Test.
Behaviour Driven Development (BDD): Cucumber, JBehave, Spock, Geb and Wiremock.
Protocols: REST Services (JSON and XML), Web Services, SOAP, HTTP/S, TCP, FTP, SNMP, SMPP, SS7, TLS.
Cloud / Container: Cloud Foundry, PCF, AWS, Docker, Kubernetes, Google Cloud Platform (GCP), Azure.
Tools: IntelliJ Idea, XCode, Eclipse, Jira, Nexus, Jacoco, Git (GitHub, GitLab), Terraform, Helm, Kibana, Prometheus., Apigee.
Databases: Oracle, PL-SQL, My SQL, HSQL, MongoDB, Elastic Search, Cosmos DB.
Application Servers: Apache Server, Tomcat, Jetty, OC4J, JBoss.
Operating Systems: Linux, Solaris, Shell/Bash Script.
CAREER HISTORY
London Stock Exchange
•
•
•
•
2024/03 – 2024/07 (5m)
Senior Java Developer – Contractor
Maintaining existing microservices using Java 11-17, Spring Boot, Spring Cloud, Camel, IBM MQ and Oracle DB.
Upgraded mediator microservice from Java 11 to Java 17, latest SpringBoot 3.3.2, and latest Camel 4.7.0.
Used BitBucket for source control, Jenkins pipelines for building, testing and deploying to on premises environments.
Maintaining existing Oracle DB structure and PL/SQL procedures.
Projects
• Swap Clear: Provides swap clear functionalities with Java Microservices and Oracle DB.
Crown Agents Bank 2023/08 – 2023/12 (4m)
•
•
•
•
Engineering Team Lead – Contractor
Maintaining existing monolith payment application using Java 11, Kotlin and Spring Boot.
Established the team, managed and give direction to newly joined 5 developers as a Technical Team Lead.
Containerized components with Docker and improved and implemented new CI & CD pipelines using GitHub Actions.
Defined and built infrastructure on AWS with ECS using Infrastructure as Code approach with Terraform and Ansible.
Projects
• PG (Payment Gateway): Provides payment capabilities via mobile operators for different countries.
NewDay
•
2022/01 – 2023/07 (1y 6m)
Senior Java Developer – Contractor
Designed and developed microservices using Java 11, Spring Boot and JPos exposing REST APIs for internal clients.
1
•
•
•
•
•
•
Used Docker and Kubernetes to containerize the microservices, created CI & CD pipeline using GitHub Actions.
Developed microservices using Multithreading with Low Latency, using Thread Pools and Java Executor Service.
Implemented security requirements to store sensitive data securely using Azure Managed HSM service.
Created a user interface to demo backend services using React JS and Material UI.
Defined and built infrastructure on Azure with AKS using Infrastructure as Code approach with Terraform and Helm.
Other technologies used: Lombok, Jira, IntelliJ, XCode, Gradle.
Projects
• PIMS (Payment Instruction Management System) - Microservices: Provides payment instruction and clearing functionality
for different type of card products by issuer.
UBS
•
•
•
•
•
•
•
•
2019/11 – 2021/11 (2y)
Lead Java Developer – Contractor
Designed and developed microservices using Java 8, Spring Boot exposing REST APIs for external & internal clients.
Integrated microservices using Kafka, Kafka Streams and Kafka Store, with Avro Schema and Schema Registry.
Developed microservices to support thousands of transactions with Multithreading and Low Latency.
Used Reactive Programming and exposed reactive APIs, using Spring WebFlux and Reactive Cosmos DB driver.
Created a user interface to visualise complex data flow through microservices using React JS and Material UI.
Implemented REST APIs using JWT authentication and developed authorization service using HSM for external clients.
Defined and built infrastructure on Azure and Cosmos DB using Infrastructure as Code approach with Terraform.
Other technologies used: Lombok, Jira, IntelliJ, Cucumber, Mockito, Spring JPA, Maven, TeamCity, Jacoco, GitHub, OpenAPI.
Projects
• GED (Global Equity Derivatives) - Microservices: Provides trading services for Client Facing Sales and Trading platform.
Mastercard
•
•
•
•
•
•
•
•
•
2018/07 – 2019/11 (1y 5m)
Lead Java Developer – Contractor
Developed microservices using Java 11, Kotlin, Spring Boot, Akka backed with Casandra, VoltDB and Oracle DB.
Implemented reactive microservices using Kafka, Akka (Streams, Http, Persistence, Cluster and Distributed Data), REST.
Built infrastructure on GCP (Google Cloud Platform) using Infrastructure as Code approach with Terraform.
Worked in agile environment, developed microservices with TDD, BDD, fully automated CI and CD.
Containerised and deployed microservices using Docker, Kubernetes, Helm on GCP.
Designed and created highly available, multithreaded, low latency services to support 20K transaction per second.
Integrated microservices with EFK (Elastic Search, FluentD, Kibana) for log monitoring and tracing.
Designed to provide highly secure payment system will be deployed on Critical National Infrastructure of a country.
Other technologies used: Flyway, Lombok, Jira, IntelliJ, Cucumber, Mockito, Spring JPA, Kotlin Test, Gradle, Maven,
SonarQube, Snyk, Jacoco, PI Test, GitLab and GitLab Pipelines.
Projects
•
IPSX – Microservices: Next-Gen Instant Payment System (real time payment processor) developed with Java 11 and Akka.
HSBC
•
•
•
•
•
•
•
•
2017/04 – 2018/06 (1y 3m)
Senior Java Developer – Contractor
Developed and integrated operable microservices using Java 8, Kotlin, Spring Boot backed with MongoDB.
Integrated microservices with Spring Cloud Config to centralise and make config changes without interruption.
Implemented GraphQL based API to provide flexible, performant and client centric endpoints.
Provided reactive APIs using Reactive Programming with Java Reactor library and Spring MVC Reactor support.
Used PCF (Pivotal Cloud Foundry) to deploy, scale and maintain multiple environments for microservices.
Integrated microservices with Splunk to monitor services and trace transactions for different environments.
Worked in agile environment, developed microservices with TDD, BDD, CI and CD.
Other technologies used: Splunk, Jira, IntelliJ, Swagger, Cucumber, Mockito, Kotlin Test.
Projects
• TED – Microservices: Provides GraphQL and REST APIs for a tablet application, used by staff in HSBC branches.
Marks & Spencer
•
•
•
•
2016/07 – 2017/03 (9m)
Lead & Senior Java Developer – Contractor
Mentored and guided team members to improve their technical skills focusing on TDD, Agile and CI / CD.
Developed microservices which expose REST interfaces using Java 8 and Spring Boot.
Used AWS, Cloud Foundry and Docker to deploy microservices, such as Product, Price, Category etc.
Built AWS infrastructure using Terraform such as VPC, Subnet, EC2, RDS, S3, Routing, Volumes, Lambda, etc.
2
•
•
•
•
•
Worked in Agile environment using Scrum and Kanban with TDD (Mockito), BDD and Pair Programming.
Created pipeline to build, release, deploy and deliver microservices using Concourse CI and CD tool.
Designed and created operable and maintainable microservices using Pingdom, Loggly and Log Entries tool.
Used RabbitMQ and Kafka to retrieve and store xml data exported from SAP system.
Other technologies used: Apigee, Terragrunt, Trello, Jira, IntelliJ, Node JS, Swagger.
Projects
• Product Services – Microservices: Provides REST APIs for mns.com and mobile app to sell products online.
• Price Services – Microservices: Provides REST APIs for third parties and customer services.
Sky
•
•
•
•
•
•
•
•
•
2014/10 – 2016/06 (1y 9m)
Senior Java Developer – Contractor
Developed microservices which expose HAL and HATEOAS based REST interfaces using Java and Python.
Used Spring Boot, Groovy to provide APIs designed as microservices for Single Sign On project (SkyID).
Implemented Single Sign On APIs for authentication and authorisation using OAuth 2 specification.
Worked in pure Agile process with TDD, BDD (Spock and Cucumber) and Pair Programming.
Experienced using Gradle and Jenkins for continuous integration and fully automated deployment process.
Implemented database requirements using Cassandra DB and Memcached for the applications.
Used Nimbus cloud system (Cloud Foundry) to deploy and run the applications on different environments.
Used GIT with branch per feature and workflow approaches to manage sources.
Other technologies used: IntelliJ, Nexus, Tomcat, Unix, JUnit, Mockito.
Projects
• PSP – Product Sales Channel – Microservices: Provides REST APIs to allow Sky customers to buy Sky products online.
• SkyID – Microservices: Provides HATEOAS based REST APIs to allow Sky customers to manage their sky account.
Salmon
•
•
•
•
•
•
•
2013/08 – 2014/09 (1y 2m)
Senior Java Developer – Contractor
Developed several back-end applications using J2EE, Design Patterns, OOP and Spring Framework.
Established an effective solution to change existing SOAP web services to REST (JSON) using Spring MVC.
Used Spring Security with session based and HTTP Basic authentication to provide secure REST web services.
Customized and configured Spring Security to provide highly secure REST web services with encryption.
Solved all cross-domain problems faced on front end, implemented client and back-end solutions.
Developed applications using Test Driven Development (TDD) with JUnit and Mockito.
Other technologies used: Maven, JMS, Active MQ, JSP, HTML, JavaScript, CSS, AJAX, JQuery, Pair Programming, Eclipse,
Archiva, Cobertura, SVN, SOAP UI, Selenium, My SQL, Tomcat, Apache Server and Unix.
Projects
• MyAudi – Microservices: Provides more than 100 secure and non-secure REST services using ESB and SOA architecture.
• AUDI Product DB Services: Manages all data for Audi cars and related products, exposes 50 WS interfaces for clients.
• AUDI Web Services: Provides REST interfaces for front end forms in Audi.co.uk and Audi mobile applications.
Vodafone
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
2009/12 – 2013/06 (3y 7m)
Lead & Senior Java Developer
Designed and developed various enterprise back-end applications using Java, J2EE and Spring Framework.
Used many modules of Spring Framework such as JDBC, Hibernate, Transaction, AOP, JaxWS, MVC, Cache.
Developed numerous web applications using Spring MVC, JSP, HTML, JavaScript, JQuery, CSS and AJAX.
Researched and implemented MapReduce functions to query users in a specific location using Hadoop, HDFS.
Refactored existing applications using OOP, Design Patterns and SOLID principles.
Defined required interfaces and implemented them for n-tier systems using SOAP and REST (JSON and XML).
Developed a number of web services using Spring MVC, JaxWS, Axis, Spring Security and WSS.
Implemented several scalable, highly available and multi-threaded applications which run in low latency.
Integrated projects with Continuous Integration tool (Bamboo), and configured it to be used more efficiently.
Implemented requirements using TDD with JUnit, Mockito, Easy Mock and BDD with JBehave, Spock and GEB.
Designed and developed a reusable application to keep web services backward compatible using Groovy.
Created functional tests using Groovy, led the test team to use Groovy for acceptance tests.
Used a number of protocols such as HTTP, TCP, FTP, JMX, JMS and SNMP to develop integrated applications.
Defined database models for various applications, and used ORM tools, such as Hibernate, JPA.
Researched Enterprise Service Bus solutions, to provide authorization, throttling and routing functionalities.
Performed load testing using JMeter and SOAP UI, provided solutions for performance related issues.
3
•
Other technologies used: Maven, Eclipse, Toad, Jira, Nexus, Archiva, Clover, Sonar, Crucible, Cobertura, Jira Agile, CVS, SVN,
Oracle, PL-SQL, Tomcat, Jetty, Unix and Solaris.
BNP Paribas
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Senior Java Developer
Led a development team to create an online banking application using Java, Spring Framework and Struts.
Developed a web application with French colleagues in a multinational environment using internationalisation.
Researched a number of rich client solutions such as ExtJS, JQuery, Backbone, and created prototypes.
Developed a rich client web application using JSP, HTML, JavaScript, JQuery, CSS, AJAX and JSTL.
Found a specific solution for each performance issue of a Single Page Application (SPA) and increased quality.
Other technologies used: Design Patterns, OOP, Spring Framework (Core, JDBC Dao Support, Cache, Transaction
Management), Web Service, SOAP, HTTP, Toad, Clear Case, RSA, Selenium Web Drivers, Oracle, PL-SQL, OC4J, Web Sphere
and Unix.
Vodafone
•
•
2008/04 – 2009/11 (1y 8m)
2005/04 – 2008/03 (3y)
Java Developer
Designed and developed a number of back-end applications using Java, J2EE and Spring Framework.
Developed several web applications using Spring MVC, Struts, JSP, HTML, JQuery, CSS and AJAX.
Redesigned and refactored existing applications using OOP Design Patterns and SOLID principles.
Developed many applications, which expose SOAP web services using Spring MVC, JaxWS, Axis.
Designed and developed scalable, highly available and multi-threaded applications using Java Concurrency.
Implemented applications using Test Driven Development (TDD) with JUnit and Easy Mock.
Used a number of protocols such as HTTP, TCP, FTP, SMPP and SNMP to develop integrated applications.
Performed load tests using various simulators, revised and fixed performance related issues.
Developed an application to provide Single Sign-On (SSO), authentication and authorisation functionalities.
Implemented a fully configurable client application to provide monitoring capabilities using SNMP protocol.
Other technologies used: Spring Framework, Hibernate, Eclipse, Toad, Jira, Bamboo, Cobertura, CVS, Oracle, PL-SQL, My
SQL, HSQL, Tomcat, Jetty, Unix and Solaris.
Millitary Service (KKK)
Cozum Software Services
Markum.NET
2004/07 – 2005/03 (9m)
2002/08 – 2004/03 (1y 8m)
2001/03 – 2001/10 (8m)
Web Application Developer
Application Developer – Part Time
Application Developer – Part Time
EDUCATION
1998 – 2002
BSc in Computer Engineering - Istanbul University
COURSES
Spring Framework (Certified)
Web Services (Certified)
Oracle &PL/SQL (Certified)
UML & Use Cases (Certified)
Project Management (Certified)
Mar 2011 (40 Hours) - Spring Framework (at Bilginc)
May 2010 (40 Hours) - DW-3111 Creating Web Services Using Java (at Sun)
Mar 2007 (50 Hours) - SQL Fundamentals, SQL and PL/SQL Fundamentals, Advanced
PL/SQL, and SQL Tuning Workshop (at Oracle University)
June 2008 (16 Hours) - Requirement Management with Use Cases (at Bildem)
June 2007 (16 Hours) - The Art of Project Management (at Project Management Institute)
4