Personal details

Heba E. - Remote back-end developer

Heba E.

Senior/Lead SW Engineer
Based in: 🇪🇬 Egypt
Timezone: Cairo (UTC+3)

Summary

Is it an old Client Jar that you want to integrate to your Microservice ? or Do you want your users to open their pass on Apple Wallet ? or Boosting your kickoff using Docker Containers to simulate Production-like ENV for having seed Pilots ? or Securing your BE application customizing JWT with Spring Security ? or Integrating Spring to Oracle NoSQL ? or Mapping your application's SOA components to JakartaEE technology ? or Are you getting an unfamiliar DB error that turns out to be in PL/SQL Java Classes ? or Are you having an MQ Connection leakage that's consuming your memory ? or Are you tracing your EAR deployment Application Server logs to find out that ClassLoader can't load MDB ? or Are you avoiding having a shining SPOF where you want KT to be across your team through mentoring, pair programming, LLD documentation, ..etc ? No matter what is your answer to these questions because my answer was NO before relying on me to accomplish it. I'm a results-oriented SW Engineer capable of digging deeper in the technology & learning on the job fulfilling quality, time & KT. Also, I've experience working remotely with distributed teams across different countries.

Work Experience

Senior/Lead Software Engineer
DXC | May 2019 - Dec 2022
Git
JPA
JUnit
Jenkins
Spring Security
NoSQL
EJB
Jms
Integration Testing
Jira
Oracle PL/SQL
Docker
Spring Boot
SOAP Web Services
Java 8
Microservices
Oracle SQL
RESTful API
Apache Maven

• DXC allowed me to work in an Agile flat management ENV on critical projects like SADAD that acts as the backbone for Saudi Payment System facilitating a wide range of transactions for individuals, banks & the government sector. Also, working on Alinma Bank IB solution where I'd hands on reverse engineering the old application to the latest technologies & implementing most of its cross-cutting concerns "Details are clarified in Projects' section".

• Mentoring less senior developers, leading sub teams & working remotely with distributed teams.

• Following DXC VALUES meeting the clients' business requirements.

Software Engineer
IBM | Sep 2016 - Apr 2019
Java
Git
Spring
Jsf
JDBC
Integration Testing
SOA (Service-Oriented Architecture)
Oracle PL/SQL
Web Service
JavaScript
Oracle SQL
IBM BPM
JasperReports
Apache Maven

• IBM allowed me to hone my skills as a developer while providing me with valuable experience in working in a client-facing role. Working on distributed large-scale systems like the Egyptian National Post Office project that serves almost half of the Egyptian population. Also, working on Commercial International Bank where I worked closely with clients to understand their needs and deliver the best possible solution "Details are clarified in Projects' section".

• Recognized with the Eminence & Excellence Cash Award on contribution in CIB project appreciating the hard work, determination & quality of outstanding work for demonstrating the following IBM Practice: Put the client first.

• Utilizing from the corporate ENV trainings, hackathons, ...etc that developed my soft skills in accordance to technical ones. Participating in several initiatives & competitions like Buddy initiative for easing job transition to new hires & Inside Track ideation competition, getting 5 of our ideas accepted in phase 1 & getting the judges' special mention on "New IBMers Orientation" mobile application which is our phase 2 implemented idea.

Education

ITI
Diploma in CSEnterprise and Web Applications Development - Java Technology
Oct 2015 - Jul 2016
Faculty of Science, Ain Shams University
Bachelor's degreeBSc of Science in Physics and CS
Sep 2008 - Jul 2012

Personal Projects

Sadad Saudi Payments - DXC
2021
JPA
JUnit
EJB
Jms
Integration Testing
Oracle PL/SQL
SOAP Web Services
Java J2EE
Oracle SQL
• SADAD acts as the backbone for Saudi Payment System. It has its own Upload framework integrating internal systems. I worked in Java layer, integrates with Decision Services for Business Rules validation, exposes Web Services for synchronous calls, publishes/subscribes Messages for asynchronous calls & communicates with DB. Part of my daily tasks is supporting ENVs for Reconciliation & Upload services, handling IBM WAS issues due to missing libraries, configurations, ..etc & Oracle application traces due to missing schema permissions, sequences, ..etc. Some of these issues are unexpected like tracing a leakage in MQ connections or unfamiliar like tracing missing Oracle PL/SQL procedure Java Class. Working on Vendor-specific products like IBM MQ, BPM & WSRR to fix configuration issues or peer-working with other teams to trace integration issues. • Implementing Service Component Architecture Removal technical CR to replace SCA with JakartaEE for Reconciliation services. Mapping SCA components to JakartaEE beans, writing JUnit "assembles TDD in testing business not implementation", deploying archives, testing Soap Web Services & Message Beans & Integration testing with BPM & DB. • I worked on Aggregators "special type of SADAD Billers" business CR in Refund Load/Upload Services, adding it to DB entities & XML schema & code extension while maintaining the Strategy pattern. • Working as part of a team on documenting Upload Framework LLD for Client handover then used in technical KT for its comprehensibility. Having deep understanding that implied mentoring & pair programming with other team members for tracing Upload issues & eventually nominated me to lead Uploads' offshore subteam. • As some SADAD services are very complex, I suggested documenting a Testing Walkthrough & enclosing issues with their solution steps to be referenced by DEV & Testing teams. Working as part of a team on it, documenting Reconciliation & Upload services.
Alinma Bank - DXC
2019
JUnit
Spring Security
NoSQL
Jms
Docker
Spring Boot
Java 8
Microservices
Oracle SQL
RESTful API
•Leading DEV Admin module. I worked with Design team on LLDs, provided technical guidance to DEV team & implemented MicroService cross-cutting concerns. The Client provided a jar that logs Admin actions to DB by binding external configurations. I integrated with it passing logger properties & working around cumbersome parts like injections to Jar's context & binding Runtime dependencies. I used Spring AspectJ where Advice intercepts request to extract logged info & persist it asynchronously using Java Concurrency API for non blocking execution & exception handling. •Working on securing our stateless MicroServices using Spring Security & customizing it for JWT using Spring FilterChain & configuring Authentication Manager. Custom Authentication Provider is implemented for user retrieval & validation. For Web Security configuration, CORS policy, Session Management, APIs' authorities & JWT filters are set. Authenticating user by setting Login URL to FilterProcessesUrl, extracting credentials & passing it to Authentication Provider. Overriding successful & unsuccessful Authentication for JWT retrieval or throwing exception. For Authorization, implementing Spring's Filter to validate JWT, retrieve user & set authentication token on SecurityContextHolder. •Implementing a Java API for KVStore connection. Spring has no integration module with Oracle NoSQL "unlike Mongo". So, implemented a Spring bean to set store configurations, connect & permit concurrent operations. Implementing a Generic CRUD Repository for accessing the store Tables using TableAPI for code re-usability. •Implementing a Java API to connect & communicate with IBM MQ Docker Image. Using Spring JMS & JAXB to pass messages to/from the container. Afterwards CorrelationId is used for synchronous calls & POJO-Message converter is implemented. •Using a Java API that implements Apple PassKit which provides utilities to create, sign & zip pass as a ByteArray. Using Java awt for dynamic pass alters.

Certifications & Awards

DevOps Essentials
IBM | Jan 2019
Microservices Practitioner Essentials
IBM | Apr 2018