2020 Advances in Software Engineering: Blockchain, IoT, AI, Cybersecurity & Apps

Find schools

Decentralize It: Blockchain

Cryptocurrency reached eye-watering levels of hype in late 2017. But blockchain, the technology which underpins cryptocurrency, has its sights set even higher. Blockchain’s fundamental value proposition is providing an immutable, unhackable public database that is controlled by no single entity. What is that good for? In short, pretty much everything.

While the mainstream corporate marketplace has its eyes on profit-generating blockchain ventures in healthcare, banking, and manufacturing, the real revolution is in the ability to decentralize applications. Distributed applications (dApps) are open-source projects that have no centralized means of control. They operate through smart contracts: self-executing agreements which remove the question of trust.

Implementation of these tools means a software engineer can cut out the middleman (bank, regulator, bad actor) and lower fees down to nothing. In the eyes of the blockchain optimists, practically every application currently running can be made in a more efficient, less expensive way by converting it into a dApp.

Ethereum, the platform that’s home to the world’s second largest cryptocurrency, was designed precisely to enable these type of applications. While its most popular working dApps and smart contracts today fall into the sphere of gaming and finances, more practical use cases do exist and more are on the horizon. Others include:

  • Ethlance creates a decentralized gig economy in the vein of Upwork, but with zero fees.
  • The software engineers at uPort are working to streamline digital identity and fight fraud and data theft.
  • Golem aims to be the Airbnb of computers, allowing users to lend and borrow unused computing power anywhere across the globe.

You can even go to a decentralized prediction market, Gnosis, and lay down a bet on the future: just don’t bet against blockchain in 2020.

Putting It All Together: IoT

Every second, 127 new devices will be hooked up to the internet. By 2020, there will be more than 20 billion connected devices. The rollout of 5G service and edge computing can supercharge the ability of those devices to speak to each other in real-time, forming what’s known as the Internet of Things (IoT). Being able to collect, analyze, interpret, and act upon all the data that’s recorded in this way represents an extremely lucrative opportunity.

Firms like Sense are developing their own industrial data ecosystems through the IoT, while connecting cars to the cloud allows for smart roads that promise safer, more efficient transport. But these advances come with their own unique challenges. IoT software engineers need to be able to write code for small, energy-efficient devices and they often need experience across several verticals to implement that code.

Those who can solve the IoT’s specific software engineering needs are likely to be highly rewarded: conservative estimates place global spending on IoT at a quarter trillion dollars by 2020, and projections for 2022 put it at over a trillion.

Great Power, Great Responsibility: Cybersecurity

With more connected devices, cybersecurity becomes of paramount concern for software engineers. Even a refrigerator hooked up to the cloud becomes a possible point of vulnerability. Open-source projects put all their cards on the table for all to see. Botnets and DDoS attacks in the new connected environment don’t just threaten individual applications, but entire data ecosystems.

Borrowing from innovations in cryptocurrency, software engineers are looking towards security features such as zero-knowledge proofs (ZKPs). By automating randomized verification checks around the periphery of queried data, both parties are able to verify the queried data without revealing it specifically. If that sounds confusing, that’s okay, it’s even more confusing for hackers: ZKPs allow for ultra-secure transactions and communications that don’t require the exchange of passwords and therefore have fewer points of vulnerability. The tech involved in ZKPs is still computationally expensive, but applications are already being researched and developed in the pharmaceutical and finance industries. Startups like QEDIT offer a combination of high-grade cryptography and controlled transparency that keeps private data secure. More are on the way.

One Size Fits Most: Evolving Apps

The way software engineers design applications is evolving. Projects need to be deployed faster and updated more frequently, pushing the industry towards a state of continuous delivery and continuous deployment. But with an increasing diversity of devices and operating systems, it’s becoming impractical to design a different app for each.

Software engineers are developing their own fixes for this. Progressive web apps (PWAs) allow applications to exist as both mobile apps and browser-based websites, while taking advantage of each platform’s strength. Meanwhile, new developer environments like Google’s Flutter and Microsoft’s Xamarin allow software engineers to write applications that work across a variety of desktop operating systems and mobile platform, while still being able to access native APIs and UIs without a loss of performance.

The future of these apps is decidedly meta: low-code development platforms are being designed to help people with little to no technical expertise create specifically targeted enterprise-level applications. Visual programming, drag-and-drop functionality, and automatic code generation can speed up the software development process and take simpler tasks out of the hands of experienced software engineers. That can represent a huge financial windfall, and big businesses have taken note: Siemens recently acquired Mendix, a low-code development platform, for $730 million.

Take My Job, Please: Artificial Intelligence

No look into the future is complete without a mention of AI. And the future is already here. About half of all digitally-mature organizations already have a defined AI strategy. Meanwhile, AI-enabled tools are projected to generate nearly $3 trillion in business value by 2021, according to Gartner, a research firm. Some people worry that AI will gobble up their jobs, but that’s exactly what software engineers are hoping for: AI can take a significant amount of work off a software engineer’s plate and make the whole process faster, cheaper, and more effective.

With the increased number of linked APIs and code updates, the repeated testing of one’s software has gotten more complex and time consuming. But AI, if trained correctly, can automate and accelerate the process. AI-enabled services like Functionalize allow users to type up plain-English test plans and have them executed over the cloud, across every device and browser. Self-healing tests update autonomously in real time, meaning software engineers can spend more time innovating and less time tinkering.

AI can also give software engineers a head start on a new project. AI-powered programming assistants like Bayou use neural sketch learning to recognize high-level patterns in vast numbers of existing programs. By training the AI to link these patterns to intent, it can provide a baseline code for a new project or fill in the blanks on a first draft, thus saving software engineers an enormous amount of time in the process.

AI may indeed be taking over some of a software engineer’s responsibilities, but only the unwanted ones. For now.

Related Features

Artificial Intelligence in Job Recruitment: How AI Can Identify Top Talent

Diversity and inclusivity aren’t purely idealistic goals. A growing body of research shows that greater diversity, particularly within executive teams, is closely correlated with greater profitability. Today’s businesses are highly incentivized to identify a diverse pool of top talent, but they’ve still struggled to achieve it. Recent advances in AI could help.

Artificial Intelligence Systems & Specializations: An Interview with Microsoft’s Sha Viswanathan

The ability of a computer to learn and problem solve (i.e., machine learning) is what makes AI different from any other major technological advances we’ve seen in the last century. More than simply assisting people with tasks, AI allows the technology to take the reins and improve processes without any help from humans.

Building Web3: Expert Interview on Non-Fungible Tokens (NFTs)

Unlike fungible items, which are interchangeable and can be exchanged like-for-like, non-fungible tokens (NFTs) are verifiably unique. Broadly speaking, NFTs take what amounts to a cryptographic signature, ascribe it to a particular digital asset, and then log it on a blockchain’s distributed ledger.

Building Web3: Smart Contracts, Solidity, and the Ethereum Network

First proposed by computer scientist Nick Szabo in the 1990s and later pioneered by the Ethereum blockchain in 2010, smart contracts are programs that execute themselves when certain predetermined conditions are met.

Business Systems Analyst – A Day in the Life

This is a role for tech-lovers, for logical thinkers, for those who like being given an answer and then are told to find the question. But it’s also a role for communicators, for relationship builders, for people who enjoy cross-departmental collaboration.