Software Engineering Daily

Software Engineering Daily

By Software Engineering DailyNewsTechnologyTech News
Download on the App Store

Software Engineering Daily episodes

  • Internet of Things with Azure’s Steve Busby

    The Internet of Things is becoming a reality. Factories are being outfitted with sensors, temperature monitors, and other data gathering devices. In agriculture, farms are becoming more efficient thanks to soil monitoring devices and automated pesticide regulation. In our homes, refrigerators, alarm clocks, and mirrors are becoming “smart”.

    Steve Busby joins the show today to talk about the big picture: how the Internet of things works, from data ingestion to processing to feedback. Steve works at Microsoft in the Azure IoT division, and he discusses the problems which companies are having and the solutions that are available today–and where we are going in the future.

    The post Internet of Things with Azure’s Steve Busby appeared first on Software Engineering Daily.

    52 min
  • Music

    Most episodes of Software Engineering Daily are interviews with an expert about a technical software concept. Over the past year I have done a few experiments that are more editorial in nature, and both were very popular. The first editorial was about 10 Philosophies for Engineers, and the second was about how poker relates to software engineering.

    Today’s episode is an editorial about the creative process of writing computer music, and how it relates to software engineering.

    Since it is a departure from the normal format, I am releasing it on a weekend, and there are no ads on this episode. If you don’t like this episode — don’t worry. On Monday, Software Engineering Daily will be back to the usual highly technical rigor. In any case — please send your feedback on Twitter or email.

    A year ago, I was working at Amazon as a software engineer. Much of my spare time was spent writing music on the computer. I would wake up at 6 AM, work on music for three hours, and then walk to work through downtown Seattle.

    The great tragedy of working at any giant tech company is that most employees are completing menial tasks that make the company millions of dollars and make the employee a small fraction of that financial windfall.

    In the past, these economics made sense for the employee. The employer used to be a source of leverage for talented workers. Today, our tools are so cheap and powerful that we can succeed on our own, without a giant corporation. Unfortunately, this is such a recent development that most employees remain trapped within the story of corporatism. Employees dutifully believe that the corporation is doing them a favor.

    The last song I wrote while I was at Amazon is called Zeroes. It is about people who are not aware of the fact that they have much more power than corporations want them to believe.

    Writing music is similar to writing software. The digital audio workstations that music producers use are similar to IDEs that we use to step through a debugger, or detect errors in code. Just as an IDE will help you organize your code and manage your abstractions, a digital audio workstation can be used to coordinate instruments. The workstation can tell you what keys to play in what order, so you don’t need to know anything about music theory.

    Despite all of this help, the music software still doesn’t write the song for you. Much like the human-machine teams that currently dominate competitive chess, the best music today comes from the musicians who are best able to work in harmony with the most sophisticated technology. This has always been the case — from The Beatles to Max Martin to Skrillex.

    What the human brings to the table in human-machine music creation is an understanding of contemporary tastes. This is why I listen to pop music. Top 40 radio stations and Spotify playlists are not perfectly democratic, but they are close enough. I pay attention to the trends of the most popular music, and try to replicate them.

    This next song was written because I was copying the bass lines that became popular from the Iggy Azalea song Fancy, which was #1 for seven weeks straight in the Summer of 2014. Even after trying to copy the bass line, I ended up with a very different song than Fancy.

    Open source allows software quality levels to reach new heights. With open source, new software builds compounding interest on previously written software. The software spreads and replicates freely around the internet thanks to open repositories that new users can pull from.

    In music, this easy replication of information has led to a sampling revolution. Sampling is the act of cutting a snippet of sound from a song, or a TV show, or simply any random noise that you find interesting, and turning that snippet of sound into its own instrument.

    In 2009, I was studying hip hop production techniques. On uTorrent, I found a download of hip hop acapellas — samples of rappers rapping without instrumentals. I stitched some of these acapellas together and made a lyrical sample with 50 Cent, Eminem, and Nas. Underneath that vocal, I sliced up a sample from 24-Carat Black, a soul and funk band from 1970s that has been sampled by lots of hip hop artists.

    As a warning to sensitive listeners, these lyrics contain some harsh and sexist language, and do not represent my views as a podcaster.

    This next song is called Chicago, written when I was in Chicago at my first job out of college. The creation of that song was driven more by raw emotion than a logical approach, or a specific musical concept.

    I was working as a software engineer at an options trading company called PEAK6. The people at the company had fascinating, extreme personalities and brutal honesty was encouraged more than anywhere else I have worked.

    At PEAK6, building options trading software that could directly translate into profits for the company, I also had the feeling that if I did something important that made the company a lot of money, I would be compensated fairly. In this sense, a trading company can be more of a meritocracy than other tech companies.

    Working at a trading company, if you build a software feature for the traders in your company, you can walk over to the traders and ask them how much money it is making them. If they say it has increased their profits by 10%, it is very straightforward to ask your boss for a raise of at LEAST 10%. In contrast, at most tech companies, if you build a tool that improves productivity for your coworkers or your customers, it is often harder to quantify whether you deserve a raise based on building that software. Furthermore, at big tech companies there is so much office politics, and so many rules of propriety and servility and respect of your superiors — if you do something that you think is impressive, but it doesn’t positively impact your manager, that action might actually have negative consequences for you as an employee.

    On the trading floor, the atmosphere of healthy debate, brutal honesty, and lots of money flying around reminded me of my roots as a poker player, and in that sense I felt at home. In college, I was so obsessed with the intersection of finance and technology that I wrote a piece of fiction about an artificial intelligence that gets built at a hedge fund. The AI gets so smart that it eventually divests itself from the hedge fund and starts its own company, calling itself simply “Bank”.

    This next song is about that financial AI that awakens within the hedge fund — the song is called BANK.

    Most software engineers have written a game at some point in their career. I spent much of my time in college thinking about games that reflected the absurd financial fluctuations that I experienced as a poker player. The greatest games provide the player with a sense of drama. A game should be designed to be able to turn your stomach or fill you with elation and adrenaline.

    One game I worked on in college with a few friends is called MoonStocks. I built it with a few friends — Josh Stewart and Pong Tam — in this game, you can buy and sell fictional stocks that fluctuate in price based on Fourier transforms of songs I wrote. On the Android Play Store, you can download MoonStocks if you are interested.

    MoonStocks gave me great pleasure, because it allowed me to combine my niche interests of games, finance, music, storytelling, and programming. This is a lesson in creativity that is preached often these days in our long-tail economy: if you can’t be a 10,000 hour master of one specific thing, try to master the intersection of a few niche topics. The more unusual the topics that you pursue, the greater a chance you have at developing a deeper understanding than anyone else.

    Another game I built in college was called “RatMarket”. The setting of the game is a post-apocalyptic world where the only organisms left are rats and humans. Rat meat has become the only commodity that is traded in the world, and human arbitrageurs create bizarre financial instruments out of the rat meat commodity trading market. This was yet another dead-end project, but after working on it for awhile, I was so engrossed that I wrote a song based on it. So I hope you enjoy this next song, “RatMarket”.

    Absurdity is at the heart of the projects I work on. Playing with absurd concepts lets you stay unpredictable as a creator. When you combine absurdity with a relentless work ethic, you end up exploring more ideas with more tenacity than anyone else. People who respond to absurdity with shame and condemnation are repressed. They have never discovered the utility of the absurd because they have never experimented outside of local maxima of what makes sense.

    This is not to say that absurdity should be adopted as a way of life. Absurdity taken too far is embarrassing and unproductive. A pleasant, intellectual conversation with a hint of absurd humor can be ruined by a sarcastic person, a drunk, or a stoner who takes the absurdity too far.

    Absurdity is a tool to explore the edges of what has not been clearly delineated by science and reason. It is with a taste for the absurd that Airbnb was dreamed up. I’ve seen enough videos of Airbnb CEO Brian Chesky telling the Airbnb story to know that absurdity is deeply ingrained in the DNA of the company. How else would you come to the conclusion that having strangers sleeping on air beds in your apartment would be a billion dollar business? Not to mention the cereal box fundraising story.

    When I try to reason about how intelligent machines will think about the world, my sense of logic fails me. When we are speculating about how machines will think, we instinctively turn to the way that humans think, and try to imagine robot cognition relative to the human model of cognition. This is almost certainly wrong. But still, this topic inevitably comes up in conversation.

    Vacillating between the ideas of the serious, and the absurd, the next two songs explore two sides of how I speculate about the evolving artificial intelligence. The first song is simply called Robots, and it represents the absurdly alien sense of how robots might come online with self-awareness. The second song, Roger the Robot Janitor, explores the human-relativistic view of how robots might think to themselves.

    Roger the Robot Janitor is more about humans than it is about robots. Most of us have had a job that we don’t like. Roger has been designed with cutting edge artificial intelligence technology, and his job is to clean toilets at an elementary school.

    If you are a well-educated American listening to this, you were probably raised with the belief that you could do anything. You jumped through all of the right hoops, you went to college, you got a high paying job. And yet, somewhere along the way, the ideals that you felt growing up turned into a desperation in the pit of your stomach. It seems like something happened along the way and you are no longer looking at the world as an opportunity, but as something to insulate yourself from and relentlessly hedge against.

    It is an all-American seduction that many of the best and brightest computer scientists are seduced from college into crappy, dead-end jobs at giant software companies. They are dead end jobs because they seduce you into a mindset that is not true. The mindset is that you need a giant corporation to survive, and that it is noble and validating to go work at a job with minimal creativity and maximal servility.

    In this sense, we are all Roger the Robot Janitor. We have all woken up to realize we have been programmed with the peculiar desire to keep ourselves from doing anything substantial, for fear of disrupting the safe but blase life that we have established for ourselves.

    If you have had this realization, you have either suppressed it, or experienced a dramatic internal transformation. Or — if you are like me when I was at Amazon — you are experiencing cognitive dissonance. You are suppressing yourself from acting out because you are in preparation mode. You are preparing to escape your cloistered environment, saving up money and willpower.

    You are on the Career Track, but soon you will be on your own. And there is great drama in this moment.

    In the Summer of 2010, the cassette-to-iPod connecting cable in my car broke, and I could no longer play podcasts and music while I was in the car. On the commute to and from my Summer internship, I had an hour and a half of time driving. So I started listening to radio, and during this time I discovered the beauty of contemporary pop music.

    The melodies in pop music are extremely simple, and this makes songwriting extremely simple. In software engineering, when you have the simplest abstractions, programming is exhilarating. Studying pop music was like studying functional programming — the abstractions make creativity unexpectedly easy. Also, both pop music and functional programming have rabid fan bases.

    In order to fully adopt the mindset of a pop musician, I had to write a song about love and relationships and heartbreak, because almost every pop song is about romance. During this time, I was becoming so obsessed with pop music that I decided at some point I was going to become a pop music producer. With this in mind, I needed to learn to collaborate, so I convinced my friend Genevieve to sing what I wrote. The song is called “Letdown”.

    At this point, I have talked through an hour’s worth of songs. This topic is too self-indulgent and far removed from the core idea of Software Engineering Daily to go much further today, but if you listened this far I sincerely thank you.

    I always want to know what you think of this show. Send me an email at [email protected], or tweet at me. It is a huge privilege to have people who listen to this show — so let me know what you want to hear about.

    I’m going to close with a song that I wrote for my cat Scout. The song is called Scout. Thanks again for listening.

    The post Music appeared first on Software Engineering Daily.

    58 min
  • Software Editorialism with Practical Dev’s Ben Halpern

    Most programmers spend lots of their time reading content about software. Since our field changes so rapidly, engineers consume news and editorials voraciously, trying to keep up with the impossibly fast pace. The Practical Dev is a collection of blog posts, editorials, and interviews that was created to help with that end.

    Ben Halpern is the creator of Practical Dev, and he joins the show to discuss software editorialism. The goal of the Practical Dev to help developers grow and learn, and Ben is working towards that goal by providing a platform for engineers to write long-form content.

    The post Software Editorialism with Practical Dev’s Ben Halpern appeared first on Software Engineering Daily.

    54 min
  • Boot Camps, Mesosphere, and Open-Source with Kenny Tran

    Coding boot camps are a subject of controversy. Critics of boot camps defend the conventional university system, and argue that boot camp graduates do not have enough experience to write quality software. But the reality is that some boot camp graduates have found success from this new educational path.

    After graduating high school, Kenny Tran attended one coding boot camp, then spent some time living at home absorbed in his personal projects. Eventually, he went to second coding boot camp–his form of graduate school. During his second boot camp, Kenny worked on PurifyCSS, a module that can reduce the size of front-end projects by 60%. Today, Kenny works at the groundbreaking company Mesosphere–completing a career arc that proves coding boot camps are enough of an education to rival traditional university learning.

    The post Boot Camps, Mesosphere, and Open-Source with Kenny Tran appeared first on Software Engineering Daily.

    54 min
  • Minecraft Programming with Gabriel Simmer

    Minecraft is a sandbox video game in which players build constructions out of 3-D cubes in a procedurally generated world. Minecraft is the best-selling PC game of all time. But Minecraft is not just a game. It is a platform for creativity, used by players within the game as well as programmers outside of it.

    Gabriel Simmer is a 16-year-old programmer who build NodeMC, a tool that wraps around the Minecraft server process. NodeMC can be used to build dashboards for Minecraft, and spin up additional Minecraft servers. In our conversation, Gabriel explains why people are so excited about Minecraft, how people are hacking Minecraft, and what the future of Minecraft is now that Microsoft has acquired it.

    The post Minecraft Programming with Gabriel Simmer appeared first on Software Engineering Daily.

    50 min
  • The Changelog with Adam Stacoviak and Jerod Santo

    The Changelog is one of the most popular Software Engineering Podcasts in existence.

    Open source software moves fast, and The Changelog helps developers keep up with that rapid pace by publishing consistent podcasts and newsletters. When I started Software Engineering Daily, Changelog was one of the shows that I looked at for inspiration on how to succeed as a software podcaster.

    Adam Stacoviak and Jerod Santo are the hosts of The Changelog, and they join me today to talk about how open source has changed since they started the podcast in 2009, and how it will change in the near future.

    The post The Changelog with Adam Stacoviak and Jerod Santo appeared first on Software Engineering Daily.

    59 min
  • Virtual Reality Best Practices with Andreia Gaita

    Virtual reality is a new platform for software engineers to work with. Best practices for VR development have not become widespread throughout the developer community. If you are developing VR software, you need to know how to avoid making the user sick, and this requires an understanding of the hardware limitations.

    Andreia Gaita is a software engineer at github. On today’s episode of Software Engineering Daily, Andreia takes us through the developer experience of VR, and gives some analysis and predictions about consumer VR. For anyone who is looking for an introduction to virtual reality development–this episode is for you.

    The post Virtual Reality Best Practices with Andreia Gaita appeared first on Software Engineering Daily.

    51 min
  • Open Source Pancreas with Dana Lewis

    Patients with Type-1 diabetes need to frequently pump insulin into their bodies. In order to know when to pump insulin, these patients have a continuous glucose monitor alarm which detects incorrect levels of blood glucose.

    When the alarm goes off, the diabetes patient administers insulin manually through the pump. In an ideal world, the alarm would communicate with the insulin pump, creating a closed loop. But the world of outdated medical devices is not ideal.

    Dana Lewis is a developer of an open-source, closed-loop artificial pancreas called the Do-It-Yourself Pancreas system. Dana joins the show to discuss how she hacked together her artificial pancreas using a Raspberry pi plugged into these medical devices.  This is a fascinating story of reverse engineering, internet of things, and the hacker mentality.

    The post Open Source Pancreas with Dana Lewis appeared first on Software Engineering Daily.

    50 min
  • Scale Your Code with Christophe Limpalair

    As software engineering gets more popular, the resources that we use to read and understand software are growing and improving.

    Scale Your Code is an organization that seeks to improve accessibility to the world’s programming knowledge, and today’s guest Christophe Limpalair joins me to discuss Scale Your Code. Christophe is a podcaster and blogger who runs Scale Your Code.

    The post Scale Your Code with Christophe Limpalair appeared first on Software Engineering Daily.

    53 min
  • Reverse Engineering Facebook with Alex Hogue

    “Graphing when your Facebook Friends are awake” was trending at the top of Hacker News when Alex Hogue first posted it. Alex wrote a blog post about this piece of software he built that interacts with public Facebook APIs to detect when any of his friends are awake or asleep.

    As I read that post, I wanted to talk to Alex, because it was such a creative and technical piece of software–but it is surprising that someone would take the time to randomly inspect the elements of the Facebook page, reverse engineer the way Facebook sends data about statuses, mine data from that reverse engineering, and create a bunch of graphs about that data.

    Today, Alex joins me to explain how and why he built a tool to graph when people are awake or asleep using Facebook data.

    The post Reverse Engineering Facebook with Alex Hogue appeared first on Software Engineering Daily.

    51 min

About Software Engineering Daily

From the publisher's feed

Technical interviews about software topics.