Software Engineering Daily

Software Engineering Daily

By Software Engineering DailyNewsTechnologyTech News
Download on the App Store

Software Engineering Daily episodes

  • Android Things with Wayne Piekarski

    Internet of Things is a concept that describes lots of devices that you interact with regularly being connected to the Internet and networked together.

    Technologists have been dreaming of the world of IoT for many years, where our connected refrigerator can detect that we are out of food, and automatically order more food. Or our connected bathroom can scan us for diseases and recommend treatment.

    The bright future of IoT is slowly coming together. Hardware prototyping is getting cheaper. Voice interfaces and machine learning are creating new mediums for communicating with devices. Platforms like Kickstarter are allowing developers to validate the market for their products and raise the necessary capital to build their product.

    Android Things is a developer platform for IoT applications based on the Android Operating system. Android Things consists of hardware devices and software tools that reduce common IoT problems such as software updates and security patches. Wayne Piekarski is a staff developer advocate at Google, and he joins the show to talk about the state of IoT and why Google built Android Things.

     

    Show Notes
    • Prototype Manufacturing with Jeff McAlvay
    • Android Things  |  Android Developers
    • Android Things 1.0 Features and APIs  |  Android Things  |  Android Developers
    • Introduction to Android Things – YouTube
    • Introducing Android Things 1.0 – YouTube
    • What’s new in Android Things (Google I/O ’18) – YouTube
    • Build with Android Things
    • Android Things: Everything you need to know about Google’s plan to disrupt IoT
    • Android Developers Blog: Say Hello to Android Things 1.0
    • Android Things 1.0 launches, Google promises 3 years of updates for every device | Ars Technica
    • Android Things 1.0 fixes the biggest pain points in building IoT devices
    • Into Android Things with zero IoT knowledge. – Elye – Medium
    • The post Android Things with Wayne Piekarski appeared first on Software Engineering Daily.

      56 min
    • Unity and WebAssembly with Brett Bibby

      Unity is a game engine for building 2-D and 3-D experiences, augmented reality, movies, and other applications. Unity is cross-platform, so that applications can be written once and deployed to iOS, Android, web, and other surfaces. Unity has been around for 13 years, and has grown in popularity with the rise in gaming and game development.

      Brett Bibby is VP of engineering at Unity, and he joins the show to describe how Unity applications are built. Since Unity SDKs allow Unity code to run across all the different platforms, this requires writing and maintaining native code libraries for each of these devices.

      When asm.js came out, Unity developers were able to deploy 3-D games to the web–these were some of the first examples of asm.js being used. Asm.js is a small, performant subset of JavaScript that other languages could compile down into. So in this case, Unity programs in C# were running in the browser after being compiled down into asm.js. Since then, WebAssembly has improved the tooling further, allowing a high-performance compilation path for non-JavaScript programs.

      After exploring the basics of Unity, Brett described how Unity works with WebAssembly, and the potential for creative applications of Unity both on and off the web.

       

      Show Notes
      • Unity (game engine) – Wikipedia
      • WebGL – Wikipedia
      • Unity for Mobile AR | Unity
      • Multi-platform Handheld AR in 2018 – Unity Blog
      • Unity – Multiplatform – VR-AR – Unity
      • Get real with creating AR games and apps in Unity – Unity
      • WebGL: WebAssembly and Feature Roadmap – Unity Blog
      • Unity at GDC keynote – Unity 2018 (nested prefabs & more) w. Brett Bibby (VP of Engineering) – YouTube
      • Unity – Multiplatform – Publish your game to over 25 platforms
      • The post Unity and WebAssembly with Brett Bibby appeared first on Software Engineering Daily.

        1 hr 2 min
      • Front Engineering with Laurent Perrin

        Front is a shared inbox application that has seen rapid adoption within companies. Front allows multiple members of a company to collaborate together on a conversation–whether that conversation is in email, Twitter, or Facebook Messenger. This is useful when a customer email needs to be shared between the sales and engineering teams, or when a single email address is shared between different members of the same team, such as “[email protected]”.

        This might sound like a niche problem, but it is actually a problem faced somewhere within every single company. Because the problem of shared inbox is so prevalent, the company has grown its user base quickly, scaling the team as well as the infrastructure.

        The sensitivity of the data (emails) that Front is handling means that security is paramount. And as users of Front rely on it more and more as a central point of communication, uptime and consistency needs to be maintained.

        Laurent Perrin is the CTO at Front, and he joins the show to describe the software architecture and product strategy for Front. It was a fascinating show, and we covered the full stack. On the backend, Front pulls emails into S3 buckets and maintains the schema of the inbox in a SQL database. The desktop Front client is written in Electron, which is a way to write desktop applications in HTML5, JavaScript, and CSS.

        We also talked about the system for keeping the communications “real-time”–it’s important that users are aware of what each other is doing, since you don’t want to be preparing a response to an email at the same time I am.

         

        Show Notes
        • Front App – Funding Rounds | Crunchbase
        • This startup pitch deck helped Front raise $66 million in 5 days – Business Insider
        • Front – FrontApp Inc Tech Stack | StackShare
        • Front | Manage email as a team
        • Front Blog — Email, Customer Support and Startups Blog
        • Front raises $66 million to replace Microsoft Outlook | TechCrunch
        • Front (@FrontApp) | Twitter
        • The post Front Engineering with Laurent Perrin appeared first on Software Engineering Daily.

          55 min
        • Android on Chrome with Shahid Hussain and Stefan Kuhne

          Google has two consumer operating systems: Android and Chrome. The Android operating system has been widely deployed on mobile devices. Chrome is an operating system for laptops and tablets, originally based around the Chrome browser.

          For several years, these two ecosystems were mostly separate–you could not run Android apps on a Chrome operating system. Shahid Hussain and Stefan Kuhne are engineers at Google who worked on support for Android apps on ChromeOS. The implementation of Android on Chrome involves running the Android OS in a Linux container on the host Chrome operating system.

          In today’s episode, Shahid and Stefan compare the Android and Chrome operating system platforms. They explain why Google has two different consumer operating systems, and the advantages of allowing Android apps to deploy to Chrome.

          Shahid and Stefan also talk about the challenges of porting mobile applications to ChromeOS. Android apps are made to run on small screens and tablets. In order to make them run on ChromeOS, the applications need to support running on a desktop or laptop.

           

          Show Notes
          • Chrome OS – Wikipedia
          • Shahid Hussain (@shahidhussain) | Twitter
          • What’s new in Android apps for Chrome OS (Google I/O ’18) – YouTube
          • Install Android apps on your Chromebook – Chromebook Help
          • Chromium OS – The Chromium Projects
          • Chromium OS FAQ – The Chromium Projects
          • Optimize apps for Chrome OS  |  Android Developers
          • The power of Chrome OS! – YouTube
          • Posts containing ‘chromeos score:5’ – Stack Overflow
          • google chrome os – What will be the side-loading and debugging mechanism for Android apps on ChromeOS? – Stack Overflow
          • Apps for Chrome OS overview  |  Android Developers
          • The post Android on Chrome with Shahid Hussain and Stefan Kuhne appeared first on Software Engineering Daily.

            49 min
          • Kubernetes Distributions with Brian Gracely and Michael Hausenblas

            Kubernetes is an open source container management system. Kubernetes is sometimes described as “the Linux of distributed systems” and this description makes sense: the large numbers of users and contributors in the Kubernetes community is comparable to the volume of Linux adopters in its early days.

            There are many different distributions of Linux: Ubuntu, Red Hat, Chromium OS. These different operating system distributions were created to fulfill different needs. Linux is used for Raspberry Pis, Android phones, and enterprise workstations. These different use cases require different configurations of an operating system.

            Similarly, there are different distributions of Kubernetes because there are different types of distributed systems. The internal infrastructure of a cloud provider might use one type of Kubernetes to serve users running application containers. A network of smart security cameras might be networked together with a different distribution of Kubernetes.

            Brian Gracely and Michael Hausenblas join the show today to discuss Kubernetes distributions. Brian and Michael work at Red Hat, which helps maintain OKD (formerly “Origin”), the Red Hat Community Distribution of Kubernetes, upon which Red Hat OpenShift is based. OpenShift is a platform as a service that enterprises use to deploy and manage their applications. Full disclosure: Red Hat is a sponsor of Software Engineering Daily.

             

            Show Notes
            • Brian Gracely, Author at OpenShift Blog
            • Michael Hausenblas
            • 12 Kubernetes distributions leading the container revolution | InfoWorld
            • Find the Perfect Kubernetes Distribution – The New Stack
            • Kubernetes distributions vs. the open source option
            • Cloud Native Computing Foundation Launches Certified Kubernetes Program with 32 Conformant Distributions and Platforms – Cloud Native Computing Foundation
            • Enterprise Kubernetes – Red Hat OpenShift
            • An Introduction to Enterprise Kubernetes
            • The coming of the Kubernetes distributions · More than seven
            • CNCF Cloud Native Interactive Landscape
            • Kubernetes Distributions and ‘Kernels’ – Tim Hockin & Michael Rubin, Google – YouTube
            • The post Kubernetes Distributions with Brian Gracely and Michael Hausenblas appeared first on Software Engineering Daily.

              57 min
            • Continuous Delivery Pipelines with Abel Wang

              Continuous integration and delivery allows teams to move faster by allowing developers to ship code independently of each other. A multi-stage CD pipeline might consist of development, staging, testing, and production. At each of these stages, a new piece of code undergoes additional tests, so that when the code finally makes it to production, the developers can be certain it won’t break the rest of the project.

              In a company, the different engineers working on a software project are given the permissions to ship code through a continuous delivery pipeline. Employees at a company have a strong incentive not to push buggy code to production. But what about open source contributors? What does the ideal continuous delivery workflow look like for an open source project?

              Abel Wang works on Azure Pipelines, a continuous integration and delivery tool from Microsoft. Azure Pipelines is designed to work with open source projects as well as companies. Abel joins the show to talk about using continuous integration and delivery within open source, and the process of designing a CI/CD tool that can work in any language and environment. Full disclosure: Microsoft is a sponsor of SE Daily.

               

              Show Notes
              • Create a CI/CD pipeline for your app with the Azure DevOps Project | Microsoft Docs
              • Define a multi-stage CD release process | Microsoft Docs
              • Continuous Integration and Continuous Delivery | Visual Studio Team Services
              • Build and deploy your app – examples | Microsoft Docs
              • Extensions for Visual Studio family of products | Visual Studio Marketplace
              • What is Continuous Integration? – Azure DevOps | Microsoft Docs
              • What is Continuous Delivery? – Azure DevOps | Microsoft Docs
              • Deploy a Docker container app to an Azure web app | Microsoft Docs
              • Getting started with Azure DevOps Projects to setup CI/CD pipeline for ASP.NET Core & Containers | Microsoft Build 2018 | Channel 9
              • The post Continuous Delivery Pipelines with Abel Wang appeared first on Software Engineering Daily.

                44 min
              • Orchestrating Kubernetes with Chris Gaun

                A company runs a variety of distributed systems applications such as Hadoop for batch processing jobs, Spark for data science, and Kubernetes for container management. These distributed systems tools can run on-prem, in a cloud provider, or in a hybrid system that uses on-prem and cloud infrastructure. Some enterprises use VMs, some use bare metal, some use both.

                Mesosphere is a company that was started to abstract the complexity of resource management away from the application developer. Instead of a developer managing virtual machines, provisioning cloud infrastructure, or wiring all that infrastructure together to run distributed applications, the developer spins up distributed applications like Kubernetes, Spark, or Jenkins on top of Mesosphere, and Mesosphere provisions the machines on the underlying infrastructure.

                Using Kubernetes on top of Mesos allows you to separate resource provisioning from the actual container orchestration. In a previous episode, we explored how Netflix uses Mesos with a container orchestrator on top to simplify the resource management of microservice application containers as well as data science workloads.

                Chris Gaun is a product manager at Mesosphere who helped build Kubernetes-as-a-service. In today’s show, he describes why it is useful to have separate layers for resource provisioning and container orchestration. He also talks about the difficulties of manually installing Kubernetes, and why Mesosphere built a Kubernetes-as-a-service product. Full disclosure: Mesosphere is a sponsor of Software Engineering Daily.

                The post Orchestrating Kubernetes with Chris Gaun appeared first on Software Engineering Daily.

                53 min
              • Kubernetes Continuous Deployment with Sheroy Marker

                Engineering organizations can operate more efficiently by working with a continuous integration and continuous deployment workflow. Continuous integration is the process of automatically building and deploying code that gets pushed to a remote repository. Continuous deployment is the process of moving that code through a pipeline of environments, from dev to test to production. At each stage, the engineers feel increasingly safe that the code will not break the user experience.

                When a company adopts Kubernetes, the workflow for deploying software within that company might need to be refactored. If the company starts to deploy containers in production, and managing those containers using Kubernetes, the company will also want to have a testing pipeline that emulates the production environment using containers and Kubernetes.

                Sheroy Marker is the head of technology at ThoughtWorks products, where he works on GoCD, a continuous delivery tool. Sheroy joins the show to talk about how Kubernetes affects continuous delivery workflows, and the process of building out Kubernetes integrations for GoCD.

                We also discussed the landscape of continuous delivery tools–why there are so many continuous delivery tools, and the question of how to choose a continuous delivery product if you are implementing CD. Continuous delivery tooling is in some ways like the space of monitoring, logging, and analytics–there are lots of successful products in the market. Full disclosure: ThoughtWorks and GoCD are sponsors of Software Engineering Daily.

                The post Kubernetes Continuous Deployment with Sheroy Marker appeared first on Software Engineering Daily.

                49 min
              • Kubernetes Impact with Clayton Coleman

                Kubernetes is in production clusters around the world with hundreds of thousands of containers. Kubernetes provides a distributed systems management environment for small startups and giant enterprises with applications ranging from microservices to machine learning pipelines.

                Because the use cases are already so wide-ranging, and the project has had so much adoption, the focus of many of the Kubernetes core contributors is stability. Clayton Coleman joins the show to talk about the impact that Kubernetes is having on software engineering and the efforts of the community to improve stability. Clayton is the lead engineer for OpenShift, a platform-as-a-service from Red Hat.

                Autoscaling, monitoring, and etcd are a few of the topics we discuss. Improvements to each of these areas are making Kubernetes easier to work with. There is a possibility that the Prometheus monitoring system will get pulled into Kubernetes itself, and we explore the pros and cons of this architectural decision.

                From his experience working on OpenShift, Clayton also has a lot to share around the idea of a platform-as-a-service. Platform-as-a-service tooling can make enterprises significantly more  productive, serving as a layer between a cloud provider and a developer that is shipping application code.

                Cloud providers can be complex to learn how to work with. As enterprises adopt cloud more aggressively, they are using platform-as-a-service tools as an interface for developers to work with those clouds in a more opinionated way. Kubernetes is used as a foundation for platforms like OpenShift, because Kubernetes can orchestrate resources on a cloud in a way that makes it easier for a deployment to be multicloud, or portable between clouds.

                In our previous episode with Clayton 2 years ago, we covered the basics of OpenShift and the developments that were occurring around Kubernetes at the time. In today’s show we go deeper into how the Kubernetes ecosystem is evolving, and his personal experience working on OpenShift. Full disclosure: Red Hat (where Clayton works) is a sponsor of Software Engineering Daily.

                The post Kubernetes Impact with Clayton Coleman appeared first on Software Engineering Daily.

                1 hr 6 min
              • Android Slices with Jason Monk

                The main user interfaces today are the smartphone, the laptop, and the desktop computer. Some people today interact with voice interfaces, augmented reality, virtual reality, and automotive computer screens like the Tesla. In the future, these other interfaces will become more common. Developers will want to be able to expose their applications to these new interfaces.

                For example, let’s say I am a developer who builds a podcast playing app. I have a website and a mobile app, but what if I want to expose that app to a voice interface? Or, what if I want to expose a specific piece of functionality from that app, to make shortcuts easier?

                Android Slices are user interface components that expose pieces of application functionality to Google Search, Google Assistant, and other applications. Jason Monk is a software engineer who works on Android Slices at Google. Jason joins the show to discuss how mobile user interfaces are changing, the motivation behind Android Slices, and the engineering behind this newer building block for Android developers.

                The post Android Slices with Jason Monk appeared first on Software Engineering Daily.

                50 min

              About Software Engineering Daily

              From the publisher's feed

              Technical interviews about software topics.