Code[ish]

Code[ish]

By Heroku from SalesforceBusinessTechnologyManagement
Download on the App Store

Code[ish] episodes

  • Architecting Multi-Tenancy

    Host Rubert Blumen is joined by Salesforce architect Ian Varley to discuss multi-tenancy. Their conversation covers how multi-tenancy differs from multi-user, popular architectures for multi-tenancy, why Salesforce uses a shared resource architecture, how Salesforce scales horizontally, the economics of a mix of small and large users, the importance of scaling down, scheduling, rate limiting and fairness, the threat model of a multi-tenant system, ensuring isolation between users, and technical challenges of migrating users between shards while maintaining availability and consistency.

    Links from this episode
    • The Architecture Files #10: L33T M10y by Ian Varley
    • Salesforce developer documentation on multi-tenancy
    • ACM Queue Condos and Clouds by Pat Helland
    • The Magic of Multi-Tenancy by Igal Levy
    38 min
  • Operating Open Collective

    François Hodierne is a lead engineer at Open Collective, and he's joined in conversation by Danielle Adams (the Node.js language owner at Heroku) and Becky Jaimes (the product manager for Heroku Data). Open Collective serves as a legal and banking entity for non-profit tech projects to raise donations and funds. All of Open Collective's repositories are open source, and they run a complete Node.js stack, via a GraphQL API on the backend and a Next.js frontend.

    As a core team of just three people, Open Collective relies on public contributions from its community. Recently, they've instituted a very successful bug bounty program, which uses labels to identify the amount of money an issue is worth. By assessing the difficult and urgency of an issue, they've been able to asynchronously communicate to others what they need to do and what they need to achieve to close the bug. Contributions have come in from developers all around the world, but after Open Collective's recent partnership with Open Source Community Africa, the main countries they've seen activity from were Nigeria and Kenya.

    Open Collective is hosted on Heroku, and they've found deployments by Git to be their most essential feature. They also rely on Heroku's metrics dashboards, which provides just the right amount of information. François notes that his key requirement for any hosting platform or JavaScript dependency is its adoption; the more popular a technology is, the more likely it is to be understood and the easier it becomes to on-board new contributors.

    Links from this episode
    • OpenCollective.com/
    • OpenCollective on GitHub
    • OpenCollective's blog post on their bounty program
    • Open Source Community Africa
    27 min
  • Evolving Alongside your Tech Stack

    Chris Castle, a developer advocate at Heroku, leads the discussion with Tim Specht, the co-founder and CTO of Dubsmash, a video messaging application. Tim's involvement with software development stretches back over a decade, to the first evolution of smartphones, when memory management was essential and the new user experiences were being formed. It's become easier now to build applications, but the expectations on quality from users has also changed. For Tim, the two journeys are intertwined: it's not enough to have a depth-first approach to software development, and a baseline knowledge of how to make something computationally efficient aids programmers in building pleasing apps.

    The pivotal transition in Tim's understanding of how to build great software was getting better at prioritization. Allowing others to choose strategies that work best under the circumstances allows the entire project to move forward, rather than stalling endlessly to find the most optimal solution. It's important when making a technical decision to not stay committed to the path if it isn't working out. Any bottleneck has two solutions: either you brute force a solution at the expense of time and productivity, or you find a solution which is good enough.

    When it comes to building a product, Tim says that it's important to try and embed yourself into the news and events of your ecosystem as much as possible. Following authors on Medium or clicking through links on HackerNews not only tells you of what others are building; it also informs you of the new tools you have at your disposal. Of course, it's ill-advised to jump into a new library, language, or framework, without some evaluation and caution. But community adoption for something new--that is, other companies demonstrating success--is the best signifier for whether you should incorporate it as well.

    31 min
  • Building with Web Components

    Jamie White, a front-end engineer at Heroku, is in conversation with Ben Farrell, an award-winning designer working at Adobe. Ben has just written a book about web components, a way of designing websites that's been available roughly since 2013. Various polyfills and proprietary frameworks have achieved what web components is now trying to standardize: composable units of JavaScript and HTML that can be imported and reused across web applications.

    Ben goes over his personal experience with web components, and the history of the components themselves, starting with Polymer, which was essentially an experiment from Google. The library essentially recreated what various browser vendors wished web components would become. Eventually, the standards caught up, and now modern browsers don't need as many polyfills in order to accomplish the gains web components provides to developers.

    The key strength of web components for Ben is their reusability. For prototyping a UI element, he can write a block of code once, have it imported throughout a site, and continue to make modifications to that one piece of code as needs evolve. One such example of this is the web component called Shader Doodle, which abstracts a lot of WebGL "messiness" in favor of a simple interface. He is also working with others on the idea of constructable stylesheets as a means of also importing the same CSS rules and adopt them onto various web components.

    In the near future, projects like lit-HTML and lit-element will render incompatibilities between various frameworks, such as React and Angular obsolete. At their core, they will be built on web standards, which will mean easier interoperability, breaking down these barriers between them.

    Links from this episode
    • Web Components in Action is Ben's book on designing, building, and deploying reusable web components from scratch
    • Polymer is a set of libraries and tools to make developing web components easier
    • lit-html and LitElement are additional tools to express HTML templating in JavaScript
    • Shader Doodle is a web component for writing and rendering shaders
    • Spectrum employs constructable stylesheets to provide a design framework
    • Lightning Web Components is Salesforce's bundle of web components for its platform
    • Web Components Essentials is a book by Cory Rylan to help teach the core fundamentals of web components
    • Polymer's Slack workspace is available as a resource for more information
    33 min
  • Organizing a Memorable Tech Conference

    Leah organizes both RustConf and EmberConf, and has been organizing tech conferences for well over a decade. She talks about some of the lessons she's learned in building inclusivity and accessibility into the conferences, outside of the technical talks. Childcare, for example, is one feature she's introduced that has had a positive effect on both parents and children. Suddenly, workers don't need to fret between networking with their peers and finding quality day care. Leah cautions that the first few years she offered this space, there weren't many enrollments, primarily because attendees didn't know that the option was available. But year after year, more parents are participating.

    As ideas on gender are evolving, Leah has experimented with applying pronoun usage onto badges. At first, she made this mandatory, requiring attendees to provide their preferred pronoun while registering for the conference. She thought that this would help normalize the terminology, but she says her opinion has changed after speaking to several people. Instead, she provides pronoun stickers to attendees when they collect their badges at the conference.

    Some smaller opportunities, like building fitness activities into the schedule, also helps attendees maintain their routine and connect with other conference-goers in ways they might not otherwise be able to.

    Links from this episode
    • Leah's book, Event Driven, is all about running tech conferences
    • Leah's previous podcast, 35. Bringing Open Source to Work
    14 min
  • Supporting Open Source through Open Collective

    Chris Castle, developer advocate at Heroku, sits down with several individuals working towards making the lives of open source maintainers a little easier: Josh Simmons is the VP of the Open Source Initiative and a Senior Open Source Strategist at Salesforce; Joe Kutner works on open source programs at Heroku; and Pia Mancini, is the co-founder and CEO of Open Collective, a platform that gets funding from companies and individuals and disperses it to the open source projects they use, without those projects needing to have their own business bank account.

    The issues involved with financing open source projects are two-fold: first, there's the challenge of actually collecting money from corporations profiting off of open source developers' free time; and after that, actually sorting out how to disperse these funds to contributors. Pia provides an example of the struggle of a Ukranian developer invoicing a company and receiving compensation from a U.S. bank account. Open Collective's goal is to solve both of these problems, by connecting funders with projects, and handling all of the messy paperwork involved as a consequence.

    Josh and Joe both point out that the strategy isn't just to provide a monthly donation charge, either. Funds can be allocated to support bug bounty programs, where security experts not necessarily involved in a project can participate and receive pay-outs. That's necessary work that a maintainer might not necessarily think about organizing, and which definitely benefits the project.

    The Open Collective provides two other services within its umbrella. BackYourStack is a website which will scan the public repositories of a GitHub organization, and identifies which dependencies are part of the collective, such that companies can fairly sponsor projects they didn't even know they depended on. Gift Cards is an opportunity for companies to provide gift cards to their engineers, who then in turn give those to maintainers who they acknowledge as being tremendously helpful. This places the decision making for sponsorship on the developers who most often interact with other open source developers .

    The episode concludes with a foray into issues beyond financing, specifically a maintainers' well being. Open source isn't just about creating software; you've got to also delve into issues, identify what's important, have discussions, and sometimes, fend off abuse from users' unreasonable expectations. Josh explicitly mentions Open Sourcing Mental Illness as a resource for assisting individuals experiencing burnout. The Open Collective is also exploring ways in which to assist maintainers with tasks such as triaging issues or updating documentation.

    Links from this episode
    • Open Collective accepts corporate sponsorships and distributes funds to open source communities
    • Open Source Initiative has been promoted adoption of open source technologies since 1998
    • BackYourStack scans your organization and GitHub, and tells you which projects are seeking funding throughout Open Collective
    • Gift Cards from the Open Collective allow employees of companies using open source projects to support maintainers directly
    • Open Sourcing Mental Illness, provides resources to support mental wellness in the tech and open source communities
    32 min
  • Bringing Open Source to Work

    Leah Silber is the CEO of Tilde, and she and her company have been involved in various open source projects over the years, from jQuery and Rails, to Ember and Rust. Her belief is that open source work is more than just the programming: it's also corralling issues, finding the right people for the right problems, and more "real world" tasks such as setting up events and conferences. Because of this, she doesn't believe there's a strong delineation between "skills for a business" and "skills for a project." Allowing employees to explore new roles in projects that they love helps their skill set grow, and those skills can in turn make them better employees.

    The key to this dynamic is demonstrating OSS values at work. When you treat someone's contributions to projects as an essential parts of their role, there isn't a direct correlation with the relationship between the company and the project. You are investing in the person and the technology, and in the long run, this will benefit the business.

    Leah also believes that it's important for open source communities to not have a single point of failure by way of a single company being invested in a technology. If, for some reason, a business' needs shift away from a particular language or tool, the last thing anyone would want would be for an open source project to wither as a result of it. This is another reason why a company backing an open source project should be much more receptive of accepting contributions for contributors.

    Finally, by having companies more involved in open source projects via their employees, they can direct and guide the project to satisfy their own business needs. The two entities--company and project--can discuss their needs and arrive at solutions together, rather than introducing fragmentation. What's good for a company may also be good for the community, and what's more, the community may have more stable and reliable implementations for any single company's ideas.

    Links from this episode
    • Event Driven is Leah's book about running memorable tech conferences
    32 min
  • An Introduction to Rust

    You couldn't find a more perfect pair of guests to talk about Rust than Carol Nichols and Jake Goulding. Carol and Jake write books that teach Rust, maintain websites that allow users to run Rust samples, record videos about Rust, and also manage the Rust Belt Rust conference, where Rust developers congregate in the Rust Belt region of America. Carol has a background in Ruby, and always sought to eke out more performance and less memory consumption. Jake has a background in C, but recognizes that it places a heavy burden on a programmer to be mindful of memory leaks and segmentation faults.

    Rust is a fantastic programming language from Mozilla. It has a much simpler and intuitive syntax than C, the compiler is optimized to ensure that you are writing memory-safe code, and as a result, it produces executables that run much more quickly (and require less resource consumption) than a dynamic language like Ruby. Carol and Jake delve into how the Rust compiler does this, primarily by aggressively freeing memory and forbidding developers from interactions with dereferenced objects. To newcomers, Rust seems like a forboding language, but Carol and Jake believe that Rust's emphasis on terrific documentation and error messages help guide newbies and veterans alike into writing safer and faster code.

    Several large companies see the benefits of Rust and are writing it in production, such as Mozilla, Google, Facebook, and Amazon. Heroku even has an unofficial buildpack for serving Rust applications, and Carol notes that in one of her projects she's paying more for log storage than for dyno consumption, due to how efficiently Rust uses memory.

    Rust has an ecosystem-first approach to language design (rather than placing everything into the standard library), which has fostered a largely collaborative open source community. Carol and Jake advise, however, that the language is still evolving, and they don't recommend rewriting all your functional business logic into Rust just yet.

    The two conclude by providing many resources on getting started with Rust in the form of books, videos, and coding challenges.

    Links from this episode
    • Many resources for learning Rust were mentioned in this episode:
      • For books, you can get started by reading The Rust Programming Language Book or Programming Rust
      • For hands-on coding examples, the Rust Playground allows you to run snippets of Rust code; Rust by Example shows common programming problems solved through Rust implementations; the Rust Cookbook offers slightly longer code samples; and both Rustlings and Excercism.io have interactive tutorials
      • Rust in Motion is a video series Carol and Jake are producing to introduce developers to Rust
    • The Rust Belt Rust conference is where Rust developers and enthusiasts from around the world will gather to discuss production Rust usage, best practices, and what's next for Rust.
    • crates.io is where Rust packages reside
    • Rust is in production at Mozilla, Amazon, and Google
    44 min
  • GopherCon 2019 Spotlight, Part 2

    Aaron Schlesinger is the core maintainer on Athens, an open source on-prem module proxy. He walks through the history of packages and modules in Go, and introduces how Athens satisfies the needs of developers. Go modules allow you to serve up a Go project's dependencies via an API; Athens implements that API--and integrates with other implementations of the API as well--to simplify dependency management, no matter where the code is stored.

    Beyang Liu is the CTO and co-founder of Sourcegraph, a company that focuses on developer tools. They use Go to build high-performance code search, code intelligence, and jump to def functionality that works across repository boundaries and across entire code bases. Their role at GopherCon 2019 is to live blog all of the talks for interested parties who were not able to physically attend the conference.

    Liz Rice is a technology evangelist with Aqua Security. It's a container security company, and she came to GopherCon to teach a workshop that introduced people to the concepts behind containers. She also recently became a Google developer expert in Go, which certifies her as someone creating interesting content that the community can look towards for education and inspiration.

    Johnny Boursiquot is an SRE at Heroku, and a long time gopher. He gave the closing keynote at GopherCon, and his singular focus is on ensuring that the Go community is truly diverse and welcoming to new members. Every year, new developers attend GopherCon, and he wants to encourage veterans to embrace this growth as a positive change. He also provides a wealth of resources on listeners who are brand new to Go and eager to learn more about it.

    Links from this episode
    • Athens Project is a proxy server for the Go modules download API
    • Several resources for newcomers to Go include:
      • A Tour of Go
      • Go by Example
      • Go Bridge workshops
    • Aaron Schlesinger's talk, "The Athens Project"
    • Johnny Boursiquot's closing keynote, "What Got Us Here, Won't Get Us There"
    25 min
  • GopherCon 2019 Spotlight, Part 1

    Chris Castle recently attended GopherCon 2019 in San Diego, and captured small conversations from many different Go community members. In Part One of a two-part episode, he had several conversations with GopherCon speakers about what they were building.

    Nick Gerakines is the Director of Software Engineering at Mattel, the toy company. Mattel has several toys with Internet connectivity, and Go is the primary language used for all of their connected products, whether it's to support authentication and parental controls, or providing product catalog and product instance information. A lot of core gameplay mechanics, such as the number of "miles" a car has ridden on a track, are also transmitted and reported through Go services.

    Robert Ross works at FireHydrant. They're using Go for their Kubernetes integration and internal developer tools for local development. For example, they are able to build Docker Compose files on the fly. His favorite aspect about the language is that it can build a portable (and performant!) binary with very few lines of code.

    Jessica Lucci is an infrastructure engineer at GitHub. Her interest in Go is catered towards establishing some standardizations beyond simple code formatting. For example, with the recent introduction of Go modules, devising a system around versioning third-party libraries is an interesting problem, particularly when it comes to pinning versions for consistency or updating versions in the event of a CVE.

    Tim Raymond works for Gopher Guides, and conducted a training session on testing your Go code. His favorite aspect of GopherCon is its community, where new and old friends meet to share their interests.

    Jay McGavren is the author of Head First Go, a programming book designed to teach programmers about how to be effective with Go. It will take Go beginners from basic language features all the way to coding a simple web app.

    Carolyn Van Slyck works for Microsoft, and she's used Go to design her perfect CLI. By focusing on the developer experience, she was not only able to abstract away some of the harder tasks which a user might rely upon piping several commands together into one, but she also isolated some of the CLI-specific aspects, such as argument parsing, for future developers to feel more confident when contributing to the project.

    Links from this episode
    • The Mattel Hot Wheels id toy is powered by Go services
    • Modules are a newer system of dependency management for Go
    • Head First Go is a programming tutorial for Go, written by Jay McGavren and published by O'Reilly Media
    • Gopher Guides leads Go workshops for interested individuals
    • Jessica Lucci's talk, "You Can't Go Your Own Way"
    • Tim Raymond's lightning talk, "Parsing Expression Grammar"
    • Jay McGavren's talk, "Teaching Tech", on effectively teaching programming
    • Carolyn Van Slyck's talk, "Design Command-Line Tools People Love"
    22 min

About Code[ish]

From the publisher's feed

Code[ish] takes a closer look at the stories, tools, and people that make Heroku and our global developer community so exciting.