Skip to content

Instantly share code, notes, and snippets.

@HackerTheMonkey
Last active June 20, 2023 16:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HackerTheMonkey/dbc494fd61207d0c3e12d50768fee023 to your computer and use it in GitHub Desktop.
Save HackerTheMonkey/dbc494fd61207d0c3e12d50768fee023 to your computer and use it in GitHub Desktop.
{
"meta": {
"theme": "rickosborne"
},
"basics": {
"name": "Joseph Khafaji",
"label": "Software Engineer",
"image": "",
"summary": "A principal software engineer with 19 years of professional experience in the fields of information and telecommunication technologies. My passion is building clean, well tested and working software. I love diving deeper than average to understand how things work under the hood and what makes something tick. I consider myself as a generalist engineer who utilises his tools and development practises to excercise problem solving in an efficient and pragmatic manner.",
"website": "",
"email": "joseph.khafaji@gmail.com",
"location": {
"city": "London",
"countryCode": "UK"
},
"profiles": [
{
"url": "https://github.com/hackerthemonkey",
"username": "hackerthemonkey",
"network": "github"
}
]
},
"skills": [
{
"keywords": [
"Java",
"Kotlin",
"Scala",
"ScalaJS",
"Groovy",
"Go",
"JavaScript",
"TypeScript",
"NodeJS"
],
"level": "Advanced",
"name": "Programming Languages"
},
{
"keywords": [
"Bash",
"AWK",
"Python"
],
"level": "Advanced",
"name": "Scripting Languages"
},
{
"keywords": [
"AWS",
"Google Cloud"
],
"level": "Advanced",
"name": "Cloud Platforms"
},
{
"keywords": [
"SpringBoot",
"Micronaut",
"Quarkus",
"Dropwizard",
"HTTP4K"
],
"level": "Advanced",
"name": "Microservices Portfolio Frameworks"
},
{
"keywords": [
"PostgreSQL",
"Oracle",
"MySQL",
"MS-SQL",
"OrientDB",
"MongoDB"
],
"level": "Advanced",
"name": "Databases"
},
{
"keywords": [
"UNIX",
"IBM AIX",
"Linux",
"Mac OS",
"ex Sun Solaris",
"MS Windows"
],
"level": "Advanced",
"name": "Operating Systems"
}
],
"education": [
{
"endDate": "2004",
"startDate": "2000",
"area": "Msc. Telecommunication Engineering - University College London",
"studyType": "Masters",
"institution": "University College London - UCL"
}
],
"references": [],
"awards": [],
"work": [
{
"summary": "MyStarTutor - An EdTech startup aimed at improving tuition experience for the general consumer",
"website": "https://mystartutor.com/",
"name": "MyStarTutor",
"location": "London",
"position": "Senior Principal Engineer",
"startDate": "2020-05-05",
"highlights": [
"Introduced Kotlin as the primary langauge used within the platform",
"Maintained Java (11 & 17) based Microservices",
"Architected and built the MST Platform using Google Cloud (GCP)",
"Used Spring Boot as the primary Microservices chassis framework within the org",
"Encouraged and culivated the use of TDD and BDD as the main development practises for building business logic day to day",
"Chosen PostgreSQL (Google Cloud Storage) as the primrary RDBMS technology of choice",
"Utilised Kong as the API Gateway of choice within the org.",
"Created various Infra Microstacks for AutoPilot GKE (Kubernates), Cloud Storage, Networking, etc... using Pulumi as the Infra of Code (IaC) tool of choice",
"Chose GraphQL (Netflix DGS) as the API of choice to power MST's Mobile App"
]
},
{
"summary": "Lendable - building a Buy Now Pay Later product (BNPL)",
"website": "https://www.lendable.co.uk",
"name": "Lendable",
"location": "London",
"position": "Senior Kotlin Developer",
"startDate": "2022-02-01",
"endDate": "2022-08-01",
"highlights": [
"Kotlin",
"AWS",
"Kubernetes - EKS",
"Ktor",
"Koin",
"MySQL",
"Domain Driven Design (DDD)",
"Stripe"
]
},
{
"highlights": [
"Designed and implemented a migration strategy of Autosoft's insurance backend systems from inhouse VMs into an on-premise cloud solution using Cloud Foundry.",
"Planned and executed a tech modenisation project and a move from OSGi-based monolithic architecture into a microservice architecture using docker and spring boot.",
"Refactored mission-critical business logic that’s needed by the backend and by the app for offline usage into a shared library implemented by ScalaJS to allow reuse across the backend (Java) and the frontend (Javascript and React)",
"Extracted the billing business logic from a monolithic codebase into a standalone Microservice using spring boot and implemented a highly complex billing strategies which required backtracking to allow accurate billing",
"Successfully introduced the reproducable builds concepts into the platform by utilising a combination of an externalised configuration pattern as well, jgitflow and the deploymeny of build artifacts into Nexus."
],
"summary": "Tech Lead - Solera - contract, London, UK",
"website": "https://www.solera.com",
"pinned": true,
"name": "Solera",
"position": "Senior Principle Engineer",
"startDate": "2016-01-01",
"endDate": "2018-01-01"
},
{
"highlights": [
"Designed and implemented Chase Payment Service Processor (PSP) integration into Masabi Payment Gateway (MPG).",
"Enhance and clarify the errors that a client of Masabi Payment Gateway (MPG) would get in the case transaction failures by consistently mapping and categorizing error codes between MPG and the various PSPs.",
"Designed and implemented a migration plan of Apple Pay encryption keys from file-based storage into a database one which simplifies the provisioning and maintenance activities of those keys.",
"Piloted accepting and processing Bitcoins by MPG to increase the supported payment forms."
],
"summary": "Senior Software Engineer / Tech Lead - Masabi - contract, MASABI, London, UK",
"website": "http://www.masabi.com",
"name": "Masabi",
"position": "Senior Java Developer",
"startDate": "2017-06-01",
"endDate": "2017-10-01"
},
{
"highlights": [
"Participate effectively in the initial requirement analysis sessions and acquire knowledge from various departments in order to assist guiding and implementing a migration strategy going forward.",
"Early involvement to help assembling a team of senior developers to take part of an overarching systems migration project from an outdated version of the Landmark software which formed a backbone piece of mission critical applications built around it.",
"Designed and implemented a test and compare transition strategy from a legacy telnet-based spot booking API into a SOAP API making sure that the migrated to API produce exact same result as the legacy one.",
"Built a feature-toggle based migration strategy to avoid long running branches and a big bang cutover and favour an incremental release strategy instead.",
"Optimised the unmaintained Jenkins Pipelines decreasing the release schedule from months to a weekly and eventually to an on demand fashion.",
"Designed a transition plan for extracting business specific data from Landmark into a data warehouse solution built in house.",
"TDD, ATDD, BDD, Java 8, Dropwizard, Ingres DB, UNIX, Linux, Puppet, PostgreSQL, MS-SQL, Landmark, Puppet, Docker, Maven, Gradle, Bash, Wiremock, Jira, Jenkins, Pipeline, Library, Puppet, SOAP, RESTful API"
],
"summary": "Senior Software Engineer / Tech Lead - contract, ITV, London, UK",
"website": "http://www.itv.com",
"name": "ITV",
"position": "Senior Software Engineer",
"endDate": "2017-06-08",
"startDate": "2017-01-08"
},
{
"highlights": [
"Extract an existing non tested payment module from a monolithic code to plant the seed for a Payment Gateway Microservice",
"Designed and implemented a CI/CD pipelines around the extracted Payment Gateway Microservice, using Jenkins and later Bamboo",
"Migrate the source control from SVN to Git. Move to git workflow for daily usage.",
"Upgrade from java 6 to java 8.",
"Separate the payment gateway API from it’s implementation to provide for loose coupling and allow the two to evolve independently.",
"Create a functional testing suite to throughly test the existing functionalities against various payment processors before adding any features, building a DSL using YatSpec in a composable manner. Reducing the cost of writing a single test.",
"Lead the development effort of major integration with Bank of America and Vantiv payment processors. Launching this with exceptional success for Masabi and their clients in NewYork. Featured in NewYork Governer’s speach",
"Designed and implemented a brand agnostic split payment solution with customizable split strategies.",
"Tackle PCI compliance issues such as migrating from locally encrypting and storing payment details into using a 3rd party tokenisation solution, TokenEx. This facilitated the concept of portable payment instruments in which customers can change device but still retain their previously entered cards data as this is now tokenised server-side rather than being client-centered.",
"Evaluate various vault tokenizer solutions as part of PCI compliance and assist in choosing the most optimum provider and implementing the integration with it.",
"Migrating from a simple connection pooling mechanisim to hibernate multi-tenancy solution which improved the overall performance of the payment gateway.",
"Designed and implemented a payment wallet solution via integrating with MasterPass.",
"Implement the Luhn check algorithm to allow the Payment Gateway to distinguish and validate credit and debit card numbers.",
"Leading the implementation of a barcode standard text-based AMTRAK for a travel agency in the US which allows the interoperability for ticket issuance and scanning across railway operators.",
"Implemented a low level european standard barcode format protocol, UIC. Build and embed the conformant encoders and decoders into the broker server software.",
"Designed, implemented and integrated a solution that utilizes MySql and Hibernate optimistic locking capabilites into providing a guarantee that a transport agency does not run into an issue of selling more tickets than the available seat on any given train.",
"TDD, ATDD, BDD, Java 8 SE, Java 7 SE, Java 6 SE, J2EE, Tomcat, Embedded Jetty, Spring, Hibernate with multi-tenancy, Git, Svn, Maven, Linux, Puppet, Docker, Maven, Gradle, Bash, Jira, Clubhouse, VMWare, Amazon AWS, Amazon RDS, Shell Scripting (bash), Jenkins, Bamboo, YatSpec, JCabi, Apple Pay, Google Pay, Luhn Check Algorithm"
],
"summary": "Senior Software Engineer / Tech Lead - contract, MASABI, London, UK",
"website": "http://masabi.com",
"pinned": true,
"name": "Masabi",
"position": "Senior Software Engineer",
"endDate": "2017-01-08",
"startDate": "2015-04-01"
},
{
"highlights": [
"Leading a team of backend and frontend developers in an agile environment towards delivering an intranet site for BP, Aral and Castrol sites, in addition to providing guidance towards adherence to best development practices and testing within Adobe CQ.",
"Lead the initial planning phase of an intranet site for BP, Aral and Castrol. Designing the site structure, share prices and station feeds processing and contributing to the whole development and delivery plan.",
"Encouraging and coaching the team on various refactoring techniques in an aim to make the legacy code that the team inherited easier to change and maintain.",
"Designing, implementing and maintaining the git branching and merging strategy and mentoring the team about GIT best practices.",
"Leading a project to analyze and implement a migration from Adobe CQ 5.5 to AEM 6.x",
"Introducing Selenium functional testing and building the blueprint infrastructure and CI plans to support it.",
"Being the connection point between the development team and the 3rd party DevOps team when it comes to dealing with development and testing environments.",
"Being an effective member of a development team working in the MINI Cooper website developing backend services.",
"TDD, ATDD, BDD, Java 7, J2EE, Java Servlets, Adobe AEM, Apache Maven, Apache Ant, Groovy, GIT, Bamboo Integration server, JIRA, GitHub, Selenium WebDriver, Apache Felix, Apache Sling, Test-NG, AKAMAI CDN,, CQ Dispatcher, Apache, Vagrant, Chef, Varnish, Slice, Sling Models, Feature Toggles, SlingShell, Linux, Unix, Shell Scripting (bash)"
],
"summary": "Tech Lead, BP AND MINI COOPER VIA AKQA - CONTRACT, London, UK",
"website": "http://www.bp.com",
"name": "BP",
"position": "Tech Lead",
"startDate": "2015-04-01",
"endDate": "2017-01-01"
},
{
"highlights": [
"Heavily encouraging software development best practices across the team and setting the standards on the project in regard to Test Driven Development (TDD), clean code and the refactoring of legacy software into design patterns with ensuring having a full test coverage prior to any refactoring process.",
"Developing a customized testing framework using Selenium WebDriver and wrapping that with a Page Object Model (POM) overlay in a componentized manner. The aim of this in-house developed framework was to replace a legacy Scala-based and story-based framework with a new revamped journeybased test automation framework. The framework will be presented in the upcoming London Selenium meet up in Feb 2014.",
"Being responsible for designing and shaping the testing strategy across the project when it comes to the level of testing, that being unit, integration or functional testing and the selection of the right mix of testing framework and technologies that best fit the needs of the project.",
"TDD, ATDD, BDD, Java 6, Scala, J2EE, Adobe CQ 5.5, Maven, Ant, Svn, Git, Bamboo, Jira, FishEye/Crucible, Selenium WebDriver, Apache Felix, Apache Sling, Java Content Repository (JCR), Scala Test, Findbugs, PMD, JSoup, SOUP-UI, Mockito, JUnit, SOAP, Oracle Coherence"
],
"summary": "Senior Java Developer, Tech Lead, LBI, London, UK ",
"website": "http://www.digitaslbi.com",
"name": "Digitas LBI",
"position": "Senior Software Engineer / Tech Lead",
"endDate": "2014-05-01",
"startDate": "2012-04-01"
},
{
"highlights": [
"Being part of the core billing engine development team, planning and developing new engine features and enhancing existing ones.",
"Development and the customization and enhancement of the various ETL data loading processes.",
"Billing and subscriber statistics and data mining and analysis.",
"Java 7 SE, Java 6 SE, Java 5 SE, J2EE, Oracle SQL, Oracle Pl/SQL, Glassfish 3.0, Maven, Ant, Svn, Multithreading, MS SQL Server, Transact-SQL, Teradata Database, Shell Scripting (bash), MS-DOS Batch files scripting"
],
"summary": "Java/Oracle Billing Engine Developer, SCORECARD SYSTEMS, London, UK",
"name": "Scorecard Systems",
"position": "Software Engineer",
"startDate": "2011-09-01",
"endDate": "2012-04-01"
},
{
"highlights": [
"Being part of the rhino application server development team implementing the core features of the Rhino SLEE container.",
"Developing resource adapters (JMS, JBI and Mobile Location Protocol (MLP))",
"Developing SBB components serving as the building blocks for Telco services and acting as the project lead (mostly hand-on) for the development of the frontend/backend of the android/rhino-based RhinoCompanion app which has been demonstrated in the Mobile World Congress in Barcelona (Feb/2011)",
"Java 6 SE, J2EE, JAIN SLEE, JAIN SIP JMS, JMX, JBI, Enterprise Java Beans (EJB), JUnit, Android SDK, RTP, VoiceXML, XCAP, CAMEL, CAP, ISUP, MAP, REST, SOAP web services, WSDL, Shell Scripting (bash), Svn, Ant, Maven, Postgres SQL, MySQL, Rhino SLEE Application Server, Multithreading, Amazon EC2 Cloud Services."
],
"summary": "Systems Engineer, OPEN CLOUD, London, UK",
"website": "http://opencloud.com",
"name": "OpenCloud",
"position": "Senior Software Engineer",
"endDate": "2011-09-01",
"startDate": "2010-09-01"
},
{
"highlights": [
"Implemented a JBI component (JSR-208) that provides a complete implementation of SIP RFC 3261 providing WSDL interfaces to facilitate the consumption of SIP services via web components in a transparent manner.",
"Implementing system benchmarking measuring the performance of the JBI components under stress testing.",
"Being part of the team developing the Orange One service contributed to the codebase of the backend SipServlets as well as revamping the android and the iPad frontend interfaces",
"JAVA 6 SE, J2EE, SIP Servlets, HTTP Servlets, Maven, Ant, svn, Shell Scripting (bash), Glassfish Application Server, Multithreading, Oracle OCCA, REST & SOAP web services, JMeter, WSDL, Phone Gap, Javascript, Android SDK, JBI, SIP RFC, JBoss Application Server, Oracle Weblogic"
],
"summary": "Voice Congvergence Team - Software Developer, ORANGE AND FRANCE TELECOM R&D LABS UK, London, UK",
"website": "http://orange.com",
"name": "Orange and France Telecom R&D - FT Labs",
"position": "Senior Software Engineer",
"endDate": "2010-09-01",
"startDate": "2010-04-01"
},
{
"highlights": [
"Implemented a GSM standard for Near Real Time Roaming Data Exchange NRTRDE for exchanging roaming data records across clearing partners.",
"head the billing development team building a custom GSM billing solution for a 10M subscribers in a high volume, high transactions environment.",
"Designed and developed various ETL processes to extract and transform call detail records for billing and reporting purposes.",
"Deeply involved in a data migration project phasing out legacy systems in favour of newly developed ones.",
"Designed and developed various value added GSM services around SMS, MMS, call routing service, Intelligent Network Services, etc...",
"Administering Microsoft Windows Server 2003 domain controllers.",
"Administering IBM AIX, Sun Solaris and Redhat Linux servers.",
"Administering Oracle databases.",
"Administering EMC storage systems",
"JAVA 1 SE, JAVA 1.2 SE, JAVA 1.4 SE, J2EE, Enterprise Java Beans (EJB), JSP, Servlets, Java Multithreading, Hadoop, Spring Framework, Tapestry, Swing, SMPP, SIP, Oracle database 9i & 10g, IBM Tivoli, Veritas, Oracle PL/SQL, Shell Scripting (bash ksh sh POSIX), Redhat, Mandrake Linux, SUSE Linux, SUN Solaris, IBM AIX, IBM HACMP Cluster, CISCO Networking, HUAWEI Billing System TopEng, GSM Network Planning, ICAP, ISUP, MAP, CAP, CAMEL, GSM Billing Standards, NRTRDE, Data Warehousing, MCSE, PHP, TAP, Data Roaming, Windows Server 2003"
],
"summary": "Core Network and Billing Developer, HUAWEI, London, UK, UK",
"website": "http://huawei.com",
"name": "Huawei",
"position": "Senior Software Engineer",
"endDate": "2009-09-01",
"startDate": "2004-11-01",
"interests": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment