Senior Java Developer2021 - PRESENTDiscovery UK
Technologies: Java 11, AWS, Vert.x, Project Reactor, Spring WebFlux, Microservices, Kubernetes, Spring Boot
- Developed and maintained the functionality of determining user entitlements when users try to playback content from Discovery Channel's website. The app currently handles a peak traffic number of 80,000 requests per second.
- Managed five different microservices responsible for playback, entitlements, capability determination, and global settings management.
- Oversaw and supported the deployment of applications across various environments, including development and production via Kubernetes pods.
Senior Java Developer2021 - 2021Growthday
Technologies: Java 8, MongoDB Atlas, AWS EC2, Web Application Firewall (WAF), REST, JSON
- Developed modules for marketing and interfaced with different marketing partners like Kajabi, MixPanel, AppsFlyer, and Facebook.
- Passed on data generated from user interactions on the UI to different marketing companies that could be used to understand user behavior and take appropriate actions.
- Deployed services across different environments, including development, user acceptance testing (UAT) and production.
Senior Developer2021 - 2021Tesco
Technologies: Java, Micronaut, Splunk, Printer Drivers, Scrum, Jira, Terraform, MacOS, Linux, CI/CD Pipelines, Integration, Spring Boot, Apache Kafka, AWS Lambda, GitHub, Git, REST APIs, JUnit, Low Latency, Test-driven Development (TDD), Reactive Programming, Back-end, DevOps, Microservices, Distributed Systems
- Developed an app that ensured that the custom-built self-service check-out registers at Tesco were able to print receipts. These are Linux-based hosts that run multiple containers, each responsible for a different functionality.
- Constructed printer drivers for any new printers that are onboarded for the tills program.
- Used Splunk to collect, manage, and monitor alerts, dashboards, and other parameters.
Senior Developer2020 - 2021Sky UK
Technologies: Java, Go, Spring Boot, Dropwizard, Apache Kafka, Kubernetes, AWS, Prometheus, Grafana, Gatling Load Testing, Apache Cassandra, Scrum, Hystrix, Jira, MacOS, Linux, Low-latency Software, CI/CD Pipelines, Integration, AWS ECS, AWS EC2, AWS S3, AWS Route 53, AWS NLB, GitHub, Git, REST APIs, JUnit, ELK (Elastic Stack), JAX-RS, Low Latency, Behavior-driven Development (BDD), Test-driven Development (TDD), Reactive Programming, Functional Programming, Redis, JProfiler, Back-end, DevOps, Microservices, Distributed Systems, Algorithms
- Developed and maintained an application that helps customers buy passes on NOWTV website. This involved integration with 13 different downstream systems that use REST APIs. This involved four microservices developed using Spring Boot and Dropwizard.
- Maintained the application infrastructure in non-prod and prod environments using Kubernetes. The routines used to manage them were built in Go; also supported the app in production and configured and tuned alerts in Prometheus.
- Built consumers and producers for receiving and publishing messages from and to Kafka and also manage retries and rescheduling of unprocessed messages using custom-built solutions.
- Performed nonfunctional testing using Gatling to ensure that application endpoints provided response within their SLA. This sometimes involved profiling to ensure memory and CPU are utilized appropriately.
Senior Developer2020 - 2020Love Holidays
Technologies: Go, Kubernetes, Google Compute Engine (GCE), Google Bigtable, Google Cloud Functions, Helm, Scrum, Jira, MacOS, Linux, CI/CD Pipelines, Integration, Apache Kafka, Google Cloud Storage, Google BigQuery, GitHub, Git, REST APIs, JUnit, JAX-RS, Low Latency, Test-driven Development (TDD), Back-end, Microservices, Distributed Systems, Algorithms
- Developed an app in Go to download emails from the external email server and process them and store them into Google Cloud storage. Used Google Cloud functions to transfer data from cloud storage into Bigtable for internal data analysis.
- Worked as part of the holiday booking team to maintain a Java app that helps customers to book their hotel or combo holidays. This app links with a number of suppliers for hotel, airline, and taxi reservations.
- Used Kubernetes and Helm to deploy applications in non-production and production environments.
Senior Developer2017 - 2020Sky UK
Technologies: Apache Cassandra, Apache Kafka, Dropwizard, Spring Boot, Java, Go, Agile Software Development, Scrum, Prometheus, Grafana, Kubernetes, Hystrix, Jira, MacOS, Linux, Akka, Low-latency Software, CI/CD Pipelines, Integration, AWS, Gatling Load Testing, AWS ECS, AWS EC2, AWS S3, AWS Route 53, AWS NLB, GitHub, Git, REST APIs, JUnit, JProfiler, ELK (Elastic Stack), JAX-RS, Low Latency, Behavior-driven Development (BDD), Test-driven Development (TDD), Reactive Programming, Functional Programming, Redis, Back-end, DevOps, Microservices, Distributed Systems, Algorithms
- Worked in a pair-programming environment with BDD and TDD techniques to deliver a payments manager that orchestrates the payment workflow for NOW TV.
- Developed new microservices for integration with downstream systems using Java 8.
- Built and maintained application health rules for monitoring using Prometheus.
- Used Hystrix libraries to isolate calls downstream to enforce resilience in design.
- Used Kafka to publish and consume messages to and from disparate downstream systems. This was built using the Akka actor model and Akka persistence.
- Organized biweekly developer meets across teams to discuss issues and improvements that would be useful for everyone.
Senior Developer2016 - 2017Expedia
Technologies: Scala, Elasticsearch, Terraform, Ansible, Akka, Akka HTTP, AWS CloudFormation, MacOS, Linux, Low-latency Software, CI/CD Pipelines, Integration, AWS, AWS ECS, AWS EC2, AWS S3, AWS Route 53, AWS NLB, GitHub, Git, REST APIs, JUnit, JAX-RS, Test-driven Development (TDD), Functional Programming, Back-end, DevOps, Microservices, Distributed Systems, Algorithms
- Developed an analytics dashboard for plotting time-series data and providing. different views of data to the user using Scala, Akka-HTTP, and Elasticsearch.
- Composed CD pipeline scripts using Ansible that bake the application into an AWS AMI with the aim of achieving a near immutable infrastructure.
- Used AWS CloudFormation templates to create different application environments on AWS.
Development Engineer2015 - 2016Sky UK
Technologies: Java, JAX-RS, Dropwizard, Hystrix, ELK (Elastic Stack), AppDynamics, Apache Cassandra, Low-latency Software, CI/CD Pipelines, Integration, AWS, Gatling Load Testing, AWS ECS, AWS EC2, AWS S3, AWS NLB, GitHub, Git, REST APIs, JUnit, JProfiler, Low Latency, Behavior-driven Development (BDD), Test-driven Development (TDD), Back-end, DevOps, Microservices, Distributed Systems, Algorithms
- Worked in a pair-programming environment with BDD and TDD techniques to deliver over-the-top (OTT) video content over different devices. The app also made use of Netflix Hystrix as a circuit breaker to ensure the response times stay within SLAs.
- Built and maintained REST services using the Dropwizard framework.
- Developed and maintained application health rules for monitoring using App Dynamics.
- Composed CI pipeline scripts to work on AWS and Sky's own private cloud.
Senior Developer2014 - 2015Wipro
Technologies: Apache Camel, Java, Integration, REST APIs, JUnit, XML, OSGi, JProfiler, Back-end, Distributed Systems
- Worked on the MCCS program which helps Prudential to let its customers register and access its policies online.
- Wrote Camel routes in Java for the orchestration of services, which communicate with different legacy systems using Blueprint, which are exposed as SOAP and/or REST web services.
- Implemented caching using Camel Ehcache and developed interceptors for applying system-wide policies on different Camel routes.
Application Architect2012 - 2014Monitise
Technologies: JAX-RS, Apache Camel, JBoss Fuse, Enterprise Service Bus (ESB), MySQL, JProfiler, OSGi, CI/CD Pipelines, Integration, Git, REST APIs, JUnit, XML, Behavior-driven Development (BDD), Back-end, Microservices, Distributed Systems, Algorithms
- Worked as an application architect and was involved with performance testing the platform and profiling (using JProfiler) the application to detect any bottlenecks and fixing them.
- Led the development, as a TA, of Common Platform Registration, which is a common OSGi component used by all other accounts. The REST implementation was migrated to Apache CXF, which was deployed in Fuse ESB with JPA entities backed by MySQL.
- Created low-level designs and ensure that the new components work similar to the old registration components; also developed adapters to communicate with external systems.
Analyst Programmer2011 - 2012BGC Partners
Technologies: Mule ESB, Enterprise Service Bus (ESB), Integration, JUnit, XML, XSL, Back-end, Distributed Systems, Algorithms, Trading
- Built components for integration between middle-office and back-office systems.
- Developed Mule-based components to process a stream of messages (file and queue-based) and send them out to third-party reconciliation systems.
- Constructed a jBPM-based framework that could schedule and process messages and manage the flow of data dynamically (using Mule components).
Application Architect2004 - 2011DXC Technology
Technologies: Java, XSL, XML, JUnit, XML Schema, SOAP, IBM MQ, Enterprise Service Bus (ESB), JBoss Drools, Enterprise Java Beans (EJB), WebSphere Application Server, Oracle9i, Back-end, Distributed Systems, Algorithms, Trading
- Designed and developed a rules execution framework for executing rules on any third-party rule engine. It implemented JSR-94 and can be accessed locally within an app or remotely over a network.
- Developed a visual product modeling system which is a portable, self-documenting software tool that helps health plan business experts roll out new products and support business changes quickly without programming.
- Created routes and mappings over an integration broker (IBM Enterprise Service Bus).
Java Developer2003 - 2004IBM
Technologies: Java, WebSphere Application Server, JUnit, XML Schema, XML, XSL, Oracle9i
- Developed authentication modules for the WebSphere Application Server 5.x and 6.x.
- Built a framework that automated testing of the application server over different systems using a batch scheduler.
- Created an interface for a custom-built comm server that could convert data over an SNP protocol to a TCP protocol.
IT Analyst2000 - 2003Tata Consultancy Services
Technologies: Java, XML, Enterprise Java Beans (EJB), Oracle9i, IBM MQ, XML Schema, JUnit, XSL, WebSphere Application Server
- Developed a custodial solution to manage a customer's portfolio. Also, worked on a message transformation system that supported the transformation of custom messages.
- Worked for JP Morgan Chase to deploy the GSTPA application that supported T+1 settlement.
- Built a disaster recovery system using IBM MQ Series that could recover lost data by reverse engineering the messages that have been processed.