Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

Building a Data Lake on Google Cloud Platform

Categories

Tags cloud analytics big-data data-science gcp apache

Data has been stored in computers in a variety of ways over the years, including databases, blob storage, and other methods. In order to do effective business analytics, the data created by modern applications must be processed and analyzed. And the volume of data produced is enormous!

It’s critical to store petabytes of data effectively and have the necessary tools to query it in order to work with it. Only then can the analytics on that data produce meaningful results.

With that in mind, this blog aims to provide a small tutorial on how to create a data lake that reads any changes from an application’s database and writes it to the relevant place in the data lake. The tools we shall use for this are as follows:

  • Debezium
  • MySQL
  • Apache Kafka
  • Apache Hudi
  • Apache Spark

There are several ways in which a data lake can be architected. Using a setup like one described above, one can easily scale the pipeline to manage huge data workloads. You will also get links to further reading and Kubernetes deployment files in the article. Good read!

[Read More]

Applying product thinking to slack's internal compute platform

Categories

Tags ux web-development management teams agile learning crypto

When creating a platform, it’s critical to have clearly defined customers and products that will benefit from it rather than building in a vacuum. By Javier Turegano Director, Software Engineering @slack.

But, where do we start? It seems to me that we can re-use a lot of the techniques that have been developed over the years when building external products in order to build this compelling internal product. We can simply call this applying product thinking to our internal platform.

We’ve come a long way on applying product thinking to our internal platform at Slack in the last couple of years, in particular to our internal compute orchestration platform, code-named “Bedrock.” The intent of this article is to share some of the initiatives that we have started to bring a product-thinking approach to building our internal platforms.

The article focuses on:

  • Introducing Bedrock
  • How we’ve stayed close to our internal customers
    • User experience interviews
    • User surveys
    • NPS (Net promoter score)
    • Dogfooding
    • User advisory group
    • Self-paced training and video materials
    • Promote your new product features within your own product

In order to be successful in building your internal platform, you can benefit from applying product thinking and developer experience techniques to your processes. At Slack, we obtained feedback from our developers, prioritized our investments, and made our offering more appeal. Nice one!

[Read More]

Bringing agile to quantum hardware

Categories

Tags cio ibm teams agile learning crypto

We want to build the best, highest-performance quantum computers, all while making processors available to clients so that they can experiment with quantum and find potential benefits to their organizations. Achieving this goal requires a new way of thinking about hardware development methodology. By Markus Brink.

This journey has taught our team that we must experiment with new ideas, toss the ones that don’t work, implement the ones that do work, and integrate them all into the stable devices that we offer our clients – all at the same time. We’re excited to present the results of this agile hardware methodology and more at this year’s APS March Meeting, the largest physics conference in the world – and give insight into how this methodology works, below.

The article then reads about:

  • Agile hardware development to advance metrics in parallel
  • Combining engineering with research for the future of quantum

We leverage agile practices to incorporate relevant technology elements into earlier families where there is a potential performance benefit. The hardware goes through several stages of vetting to verify yield and performance prior to deploying into the system. We don’t expect every chip to meet the performance characteristics we might expect, so it’s paramount that we also engineer a screening practice to efficiently select only the best devices to move forward. We set a high bar for our understanding and characterization of the chips so that we feel confident putting our stamp of approval on its abilities.

Developing an entirely new kind of computer processor certainly isn’t easy. We’re proud to see our team leading the way to realize quantum computing. Interesting read!

[Read More]

How to become a blockchain developer

Categories

Tags cio app-development fintech blockchain how-to learning crypto

With an average salary of $154k per year and steady job growth, now is the ideal time to learn blockchain development. To create and improve blockchain technologies, blockchain developers exercise various skills, including computer networking, cryptography, algorithms, and data structures. By Prajix.

These developers are responsible for designing blockchain technology centered around a specific business model, then building, launching, and maintaining a blockchain network. To accomplish this, they must develop protocols, craft the architecture of blockchain systems, and develop smart contracts and other web applications using blockchain technology. Additional responsibilities include:

  • Evaluating applications for new tools and technologies as they evolve
  • Maintaining client/server-side applications used for integration and business logic
  • Staying up-to-date with new developments in the blockchain community

The article then reads about:

  • What is a blockchain?
  • Who is hiring blockchain developers?
  • How do I get started?

The exact definition of a blockchain is a system in which a record of transactions made in cryptocurrency is maintained across several computers linked in a peer-to-peer network (Oxford Languages). Interesting read!

[Read More]

Architecture Pattern: Orchestration via workflows

Categories

Tags cio app-development software-architecture web-development miscellaneous

Most business processes involve doing multiple things across multiple systems. Imagine onboarding a new vendor onto a B2B platform. When a vendor is onboarded, we might have to create an identity for it, trigger some sort of verification process, issue new API keys and credentials to it, and so on. All of these steps typically happen across multiple teams and technical modules. By Kislay Verma.

How should we implement such systems? One way to do this in the object-oriented/REST style is to identify a primary entity (Vendor/Vendor Service in the former example, Order/Order Service in the latter) which owns the entire operation. This primary entity invokes all the other components involved to make sure that the process runs end to end without any problems. If the process is asynchronous in some way (e.g. if verification of vendor documents is handled manually offline), the primary entity carries the state necessary to make sure that it can continue the process from where it was paused.

The article covers:

  • The problem in modelling business processes
  • The workflow pattern
  • Stateful Orchestration
  • Mixing declarative and imperative to create layered abstractions
  • Workflows as Products
  • Caveat Emptor

Calling workflows a separate architectural pattern is only a change in perspective. No matter what kind of design approach we take, we will always have to do all the things that make up the business process. Focussing on the process as a first-class concept puts the definition and management of the steps in the spotlight instead of brushing it inside an API boundary and considering it an implementation detail. Click the link to full article to learn more.

[Read More]

A complete guide to TypeScript's never type

Categories

Tags programming javascript app-development frontend nodejs

TypeScript’s never type is very under-discussed, because it’s not nearly as ubiquitous or inescapable as other types. A TypeScript beginner can probably ignore never type as it only appears when dealing with advanced types, such as conditional types, or reading their cryptic type error messages. By Zhenghao.

The never type does have quite a few good use cases in TypeScript. However, it also has its own pitfalls you need to be careful of.

The article then describes:

  • What is never type
  • Why we need never type
  • How to use never type
  • How to read never type (from error messages)
  • How to check for never

In TypeScript, never is an empty set of values. In fact, in Flow, another popular JavaScript type system, the equivalent type is called exactly empty. Interesting read!

[Read More]

How to become a Golang developer: A 6-step career guide

Categories

Tags programming career web-development app-development golang

Go is an in-demand language across the board. Today, we’ll discuss the steps to become an employable and modern Go developer. By The Educative Team.

Golang (also called Go) is an in-demand programming language — especially for people working with Google products. Go is used by many big companies, like Uber, Medium, Dropbox, Salesforce, Netflix, IBM, and Twitter.

This career guide at a glance:

  • What is a Go developer?
  • Learn the basics of Go
  • Master Go libraries and other tools
  • Learn testing with Go
  • Understand Go patterns
  • Start building your portfolio
  • Practice Go coding interview questions
  • What to learn next

Golang developers use the Go language to build webpage and software products. A Go developer’s general duties include working with Go and using its full suite of tools and frameworks. Most Go developers also do testing and debugging. The entry threshold for Go is relatively low. It’s an easy language to learn and comes with detailed technical documentation. Switching to Go is relatively easy for those who have experience with the C language. Good read!

[Read More]

Build at the Edge with OpenFaaS and GitHub actions

Categories

Tags serverless web-development app-development apis iot

Learn how GitHub Actions and OpenFaaS can be used for simple functions at the edge of your network. If you’re running Kubernetes in production then you’ll be aware of how difficult it can be to operate. Not only do you need to learn its concepts and API, but if you extend it in any way, then you’ll be needing to maintain all your custom changes over time. As the author of several applications and operators targeting Kubernetes, I have to dedicate much of my time to maintenance and migrations. By Alex Ellis.

I want to show you how to build functions at the edge of your network with the faasd project. faasd is the same OpenFaaS that you know from the world of Kubernetes, but repackaged to be vastly simpler to use on IoT devices. Unlike K3s, it barely consumes any resources at idle, its API is stable and upgrades are as simple as replacing a binary.

So what reasonable person would deploy faasd instead of Kubernetes?

  • If you need a few functions to extend a SaaS or respond to webhooks
  • You want to run a few cron jobs and write them using real code like JavaScript, Go or Python
  • You want to package up functions and something to run them as an appliance
  • You need to run at the edge or on IoT devices

We’ll create a new function to handle repository webhooks, these are events that happen on a GitHub repository such as push, PR and issue events. It’s now up to you to decide what language you want to write your functions in. Go and Python tend to use the least amount of resources, so if you want to pack in plenty of functions, they may be your best options. Node.js is also popular, but can be a bit more hungry for RAM. Excellent read!

[Read More]

Study finds consumers prefer digital banking experiences, but are concerned about security

Categories

Tags learning miscellaneous how-to management cio fintech blockchain

A survey from Entrust details preferences of the modern banking customer, with consumers indicating a need for online banking capabilities, secure cards with chips and enhanced payment security. By Fintech News Desk.

Entrust surveyed 1,350 consumers from nine countries, including the United States, Canada, United Kingdom, Germany, Saudi Arabia, United Arab Emirates, Singapore, Australia and Indonesia, who have made or received digital payments in the past 12 months. The results help paint a picture of where the banking industry stands in 2022, and what the future holds as The Great Payments Disruption continues.

This study highlights how more than ever, consumer banking is about digital interactions first, and that they must create that digital experience with security at its foundation.

Each section of the study considers a different aspect of the transition in the banking and payments industry as more digital, contactless options become available for consumers. Here are some of the key findings from each section:

  • Omnichannel touchpoints are increasingly important in digital banking
  • Customers are security-conscious and lack of security can have damaging consequences:
  • Fee structures and flexible payment options give banks an edge
  • More digitally issued cards could further fuel the rise of contactless payments

Respondents listed credit/debit cards with chips (50%) as their most preferred payment method, but contactless credit/debit cards (48%) were a close second. Additionally, 53% of respondents said they’ve received a digitally issued debit or credit card from their bank or credit union. Digital cards can be an effective selling point as almost two-thirds of survey respondents prefer to open a bank account digitally

The global transformation of banking and payments has only accelerated over the past few years, and between web trends and a global pandemic, the industry has seen disruption from all angles. Consumers are digitally connected in almost all facets of their lives. Nice one!

[Read More]

How to take fewer breaks to be more productive at work

Categories

Tags software learning miscellaneous how-to cio

Programmer’s work might look easy, but it turns out to be stressful to many programmers. Most programmers would complain about being unproductive — they should work eight hours per day, but these eight hours turn into 2 or 3 hours of work. By Nuha Khaled.

Coding for a long time needs lots of focus, and that causes fatigue, especially when this long focus includes long hours of sitting, analyzing, problem-solving, and just coding! At that point, the programmer feels they can’t reach a solution anymore, can’t focus anymore, and are getting a severe headache.

The article is paying attention to:

  • What everyone recommends?
  • What is an activity break?
  • How can we use it as programmers?

List of example activities for programmer which can be used for acitivity break:

  • Coding
  • Problem analyzing
  • Brainstorming
  • Meetings
  • Planning my working day
  • Responding to emails
  • Writing documents

In brief, we usually are doing a primary activity when working, and to refresh, we just need to take a break from the activity, not from the entire work! Changing the activity alone is not enough if they both have the same method. So, problem-solving might not be a break for you from coding, as both need focusing for example. Good read!

[Read More]