profile-pic
Vetted Talent

Deepak Singh

Vetted Talent

A seasoned software engineer with expertise in cloud-native development, data transformation, and blockchain technologies. I've worked with companies such as the London Stock Exchange Group, HCL Software, and Accenture, focusing on Java development, blockchain deployments, and smart contracts. My expertise includes AWS, Hyperledger Fabric, Ethereum, Docker, Kubernetes, and Python.

  • Role

    Sr/Lead Blockchain Development Engineer

  • Years of Experience

    5 years

Skillsets

  • AWS - 3 Years
  • hyperledger fabric - 3 Years
  • Solidity - 1 Years
  • Smart Contracts - 2 Years
  • Docker - 3 Years
  • Blockchain - 3 Years

Vetted For

12Skills
  • Roles & Skills
  • Results
  • Details
  • icon-skill_image
    Senior / Lead Blockchain Development Engineer (Hybrid, Bangalore)AI Screening
  • 64%
    icon-arrow-down
  • Skills assessed :Blockchain, Decentralized Identifier, Hyperledger Aries, Self-sovereign identity, W3C Standards, AWS, Python, Team Collaboration, Vendor Management, Good Team Player, Problem Solving Attitude, Strong Attention to Detail
  • Score: 58/90

Professional Summary

5Years
  • Apr, 2023 - Present3 yr 2 months

    Senior Software Engineer

    London Stock Exchange Group(LSEG)
  • Nov, 2021 - Apr, 20231 yr 5 months

    Senior Software Engineer - I

    HCL Software
  • Sep, 2018 - Oct, 20213 yr 1 month

    Senior Application Development Analyst

    Accenture Solutions Pvt. Ltd.

Applications & Tools Known

  • icon-tool

    Kubernetes

  • icon-tool

    GKE

  • icon-tool

    EKS

  • icon-tool

    Docker

  • icon-tool

    Ansible

  • icon-tool

    Helm

  • icon-tool

    Jmeter

  • icon-tool

    Selenium

  • icon-tool

    Solidity

  • icon-tool

    Hyperledger Fabric

  • icon-tool

    Python

  • icon-tool

    Java

  • icon-tool

    Ethereum

  • icon-tool

    Apache JMeter

  • icon-tool

    AWS (Amazon Web Services)

Work History

5Years

Senior Software Engineer

London Stock Exchange Group(LSEG)
Apr, 2023 - Present3 yr 2 months

    Project 1: WORLD CHECK ONE(WC1):

    • Working as a Java Developer for World-Check under Data and Analytics Division of LSEG. World-Check is an essential screening platform, created to support your due diligence needs in the fight against financial crime, bribery, and corruption. World-Check serves the know your customer (KYC) and third-party screening needs of large firms, and helps businesses comply with anti-money laundering and countering financing of terrorism legislation. It is a risk mitigation tool. We have more than 30 microservices in production and Reporting-service and Auditing service being core to product, my primary role is to work on adding new features, maintaining and enhancing existing ones in Reporting, Auditing and Templating services of WC1. Worked on addition of new feature to expose the generation of reports to client through APIs.
    • Working on Auditing service, which is responsible for capturing any client events and storing it for auditing purposes for them.
    • Working on Templating-Service in XSLT to convert data to the defined formats.
    • Skills Used: Java, Spring JPA, Spring Data, Spring Batch, Spring Messaging, Spring Integration, SQL, XSLT, AWS(ECS, SQS, Aurora, Cloudwatch)

Senior Software Engineer - I

HCL Software
Nov, 2021 - Apr, 20231 yr 5 months

    Projects:

    Project 1: Integration Platform(ITX/HIP):

    • Working as a cloud-native developer for IBM Transformation Extender(ITX)/HCL Integration Platform(HIP). HIP is basically a tool for any to any data transformation and it enables organization to integrate industry-based customer, supplier and business partner transactions across the enterprise. It helps automate complex transformation and validation of data between a range of different formats and standards.
    • Setting up ReadWriteMany(RWX) storage on the the GKE using Rook-Ceph.
    • Responsible for carrying out Chaos Engineering experiments on the k8s deployment using Litmus, an open source Chaos Engineering platform.
    • Skills Used: Kubernetes, GKE, EKS, Docker, Shell Scripting, Java.

    Project 2: HIP-Adapters:

    • Also working as a Java developer for one of the component of the product (hip-adapters) which is a comprehensive collection of communication, database, messaging, and utility adapters available for the HCL Integration Platform (HIP) and IBM Transformation Extender (ITX) products, as well as for third-party applications and web services.
    • It is Adapter Factory, and these adapters are used to retrieve and route data.
    • Skills Used: Java

    Project 3: Unica-HIP:

    • Also solely responsible for collaborating with Unica team in order to develop and maintain helm charts to integrate different releases of Unica with HIP releases for Kubernetes deployment.
    • Unica is a suite of marketing products and Unica-HIP is an out of the box low code, fast and flexible framework to seamlessly integrate 3rd party touchpoints and martech applications with Unica.
    • Skills Used: Kubernetes, GCP, Docker, Shell Scripting

Senior Application Development Analyst

Accenture Solutions Pvt. Ltd.
Sep, 2018 - Oct, 20213 yr 1 month

    Project 1: hyperledger/bevel: https://github.com/hyperledger/bevel#contributors-

    • Have significant contribution in Hyperledger Bevel, an open source automation framework under Linux Foundation in Hyperledger for rapidly and consistently deploying production-ready DLT platforms. Bevel makes use of Ansible, Helm, and Kubernetes to deploy production Blockchain networks. It supports Hyperledger Fabric, R3 Corda, Quorum, Hyperledger Indy and Hyperledger Besu. Specifically, it makes use of Ansible for configuration of the network and uses
    • Helm charts as instructions for deploying the necessary components to Kubernetes.
    • Skills Used: AWS managed EKS, Docker, Ansible, Shell Scripting, Java, R3-Corda, Hyperledger Fabric

    Project 2: Supplychain management of hardware:

    • A full-fledged largest Blockchain consortium in the hardware supply chain industry for 9 companies. Have done performance testing of client-side application of nine nodes on Azure Managed Blockchain and found out the optimum limit of transaction that could be processed. Also entrusted for creation of automation scripts for testing the entire flow which drastically reduced the time for sanity testing from 3 days to just couple of hours.
    • Skills Used: Quorum, Solidity, Jmeter, Selenium

    Project 3: Transport Management:

    • Developed Smart contract for client-side application for management and tracking of vehicles buying and approval process in a consortium of Govt. Authority, Dealer, Bank, Insurance Company and integrated API with blockchain application for reporting of entire chain.
    • Skills used: Java, R3-Corda, Spring Boot, MySql

    Project 4: Bulk Cargo

    • Worked on R3 Corda DLT platform, developed smart contracts for client-side application and APIs for a number of participants in the consortium of shipping process.
    • Skills used: R3-Corda, Spring Boot

    Project 5: Deployment of Blockchain Assets

    • Worked on AWS instance to deploy end to end a couple of Blockchain assets being developed by Capability in multiple platforms.

Education

  • M.Tech (CSE)

    NIT, Rourkela (2018)
  • B.Tech (CSE)

    Bengal college of Engineering and Technology, Durgapur (2015)

AI-interview Questions & Answers

Hi. Hi. My name is Deepak Kumar, and I completed my MTech from an IT outlet. And then after that, I joined Accenture as a blockchain developer. I worked there as a blockchain developer, mostly looking into and hyperlocal fabric. I worked on a blockchain accelerator framework app, which is now called Bevel, an open-source project in the Linux Foundation under the Hyperledger project. So, I have a significant amount of contribution in this project, which is open-source. After that, I worked on Kubernetes. In my second company, I spent time on Kubernetes. So, I was a Kubernetes engineer there. I worked on Java and other stuff. Right now, I'm working at the London Stock Exchange Group as a senior software engineer. And here, I'm mostly working with Spring and Spring frameworks, as well as AWS, Docker, and other things.

In designing a blockchain-based authentication system, how would you ensure secure communication between hosted microservices? Based on an authentic system, how do you ensure secure communication between hosted microservices? So while designing a blockchain-based authentication system, in that case, I would design a system where if there is a requirement to get authenticated using a microservice or interact with AWS microservices hosted in AWS, I would create an active directory in AWS to store keys generated from the blockchain system. Once those microservices are verified, they would have a separate service to handle this, which would fetch keys from the active directory whenever another system wants to communicate with it. These keys are randomly generated or hash-based, and the blockchain system would store them in the active directory. One microservice would then pick up these keys and verify the hash, allowing systems to communicate with the microservice if the hash matches. There can be other ways to achieve this. Another approach would be to store a hash of each person in the blockchain system, and whenever a microservice wants to interact with another service, it would pitch the hash to the blockchain and verify it. If the hash matches, it would allow the person or service to interact with the microservice. The design details would depend on the specific requirements.

Why would be the best what would be the best strategy to handle data synchronizing between a hyperledger private blockchain and a half public 30-minute network? To handle data synchronization between Hyperledger and a private blockchain, I think this can be handled by synchronizing the hybrid and private blockchain with the Ethereum network. This can be done by implementing a mechanism where the hybrid private blockchain fetches the data from the Ethereum network whenever there is a transaction or after a certain interval of time. Then, it uses an algorithm to verify the authenticity of the data, and then stores it in the blocks. Otherwise, in the private blockchain, whether the data is synchronized or not, I think this is a key consideration.

So we would be running a Node.js-based RESTful service. So and we will have the third-party library, which will invoke the chain code of the Hyperledger. And once that library, which is being provided by Hyperledger, will help us to fetch the chain code. And once we have the chain code, we can go through it one by one, and verify the transactions, whatever the transaction we have in the chain code. Or otherwise, we can also do one thing. We can expose a REST API through Node, which will call the Hyperledger chain code, which will have the logic to verify the transactions that are valid or not. For example, there is a transaction which happened, and let's say we want that whenever there is a transition between A and B, and A has some amount in his wallet if he wants to transfer that to B, we must check first that whether A contains those things or not. So those things will be written in the chain code. In the REST nodes, we just need to expose an API, which will call the chain code, and that chain code will run on the Hyperledger Fabric.

For a scenario with high read and write output, we can optimize a MongoDB database and use it with a MAM blockchain application by implementing the following strategies. In the read scenario, we can shard the database by keeping multiple databases that are distributed, which is a copy of the same database. This way, whenever there is a read operation, it can be read from any of the distributed shard or copy of the database. In the write scenario, we can follow a master-slave architecture. The master will block the other copies of the database so that no other can read or write the data at that time. It will then update the database in all the copies of the databases instantaneously. To further optimize the system, we can put a load balancer in front of the MongoDB. This will direct the blockchain application to different instances randomly whenever it wants to read the data. Whenever the blockchain application wants to write data, it will direct the write operation to the master instance.

I think the key consideration when designing Microsoft's blockchain is that it's intact with the authorized blockchain. So, first of all, we want to see the size of the deployment, so maybe if we see that, the things will be how we are deploying the microservices. Okay? So if it's deployed on a particular VM, we don't need much because we can deploy the dockerized blockchain nodes over the one instance where the microservice is running. But if the microservices are deployed as a dockerized application itself, and maybe let's say it's deployed in a Kubernetes cluster. So maybe we can look into the Kubernetes side where we want to deploy all the microservices there. And at the same time, the blockchain nodes are also running in the cluster. So, actually, I would suggest deploying it on the Kubernetes cluster because that will handle all the things gracefully. But while the considerations mainly are that whether these are all able to interact with the blockchain nodes and which microservice is going to interact with which nodes. Those things have to be taken into consideration. Then, like that, we have to take these things into consideration.

So I think here, we are checking if error is not equal to nil. So if it is no error, then we are saying shim error failed to get state for the key. That is actually wrong. Instead of that, we would be doing if error is not equal to nil. Okay. Then we will read the value inside that. Else, we will say that we will return error failed to get the state of the key. So if error is not equal to nil, then we should be placing whatever we have in the LC part. And whatever we have in the else part, it is value equal to nil. So if error is equal to nil, then shim dot error. So it should be error equals nil. Then we should return error. Then we will check for the value. No. Then we'll say not found. Otherwise, we'll print the value.

This is being caused because when we are checking the balance of the sender, if it is greater than the value, first of all, it should be greater than or equal to the value. If it is not, then it will throw an error. So, yeah, it will check if it is greater than the value, then transform the excess balance. Otherwise, it will throw the error. We should be putting a logger statement just after the function to print the value of the sender's amount or the balance the sender has. And after that, we should be putting this. Yeah. We should be putting a debugger at the or maybe before the line to log the value of the amount that the sender has and then the value. By that, we can know just before the function starts and before the require statement.

I would say to minimize the bundle of Python using less libraries. Using all this optimized version of the libraries, so that it can be handled. Or maybe we could deploy the instances as a containerized image, and we can, so whenever there is a load, we can increase the number of containerized images of the nodes. So by that, we can handle that. So whenever there is a greater demand, more operations, we can increase the number of containers of the Python-based.

If you need to perform a complex signing of data from a post SQL database and among ODB collection within a browser, how would you ensure the most efficient process?

I would troubleshoot a distributor denial of service attack and blockchains while maintaining a new service. So I think in order to troubleshoot denial of service attacks on a blockchain, which we can do, we can hit the blockchain node and see why this is denying the service.