🙋🏽‍♀️🙋🏾🙋‍♂️ Ask Me Anything (AMA) with Kevin Whinnery

sbrijmohan
sbrijmohan admin
edited September 30 in Community - Announcements

Community, get excited for our very first Ask Me Anything session with Kevin Whinnery on September 30th, 2021 from 10 am to 1 pm PT! If you could ask him a question about his work or this topic, what would you say? 🔥

Kevin Whinnery leads Team TwilioQuest, the group of awesome people building Twilio’s educational PC game for students and educators. At Twilio, Kevin has also served as a developer evangelist, leader of the developer documentation team, and as a solution engineer for nonprofits using Twilio APIs with Twilio.org. Kevin loves JavaScript best but probably likes your favorite programming language also. Kevin lives just outside Minneapolis, Minnesota, with his wife and three devious children.

Tagged:
«1

Comments

  • let's jump to 3D :P

    joking love retro pixel art

  • Suvink
    Suvink ✭✭✭

    I have a question for Kevin!
    What are the key points we should pay attention to when writing a good, developer friendly documentation?

  • Hi Kevin! I'm curious about TwilioQuest's origin -- how did TwilioQuest come about?

  • Ooh I have one! Kevin you have such a rad job! But I'm wondering...What has been the biggest challenge in your career?

  • I meet a lot of people at conferences and in discords who are interested in doing creative stuff in service of STEM education. What advice should I give to someone who wants to build video games that teach kids to code?

  • Hello Kevin! What would you recommend as the best resources for someone learning to code?

  • Who writes the TwilioQuest missions?

  • Hey Kevin! I'm curious since it's SIGNAL season, what is your favorite developer experience from SIGNAL?

  • Hi Kevin,

    I have a couple related questions. As a tech lead of a bunch of internal tools and our in-house UX Framework I feel overwhelmed by outreach and evangelism especially as we've scaled to onboard thousands of developers that use our products.

    • What developer evangelism and outreach techniques resonate best with engineers?
    • How do you gauge the effectiveness of developer outreach and evangelism?
    • How do you stay on top of documentation, examples, etc throughout the development process?

    P.S. Love TwilioQuest. Keep up the awesome work.

  • I have met a ton of people from Minnesota who are doing really interesting things in tech. What is the Minnesota tech scene like, and what is your advice for new Minnesotans who would like to engage in awesome tech things?

  • mspeir
    mspeir admin
    edited September 30

    I will turn @markwinap's comment into a question! Why does TwilioQuest use the pixel art style?

  • @tommy.ryan said:
    Hi Kevin,

    I have a couple related questions. As a tech lead of a bunch of internal tools and our in-house UX Framework I feel overwhelmed by outreach and evangelism especially as we've scaled to onboard thousands of developers that use our products.

    • What developer evangelism and outreach techniques resonate best with engineers?
    • How do you gauge the effectiveness of developer outreach and evangelism?
    • How do you stay on top of documentation, examples, etc throughout the development process?

    P.S. Love TwilioQuest. Keep up the awesome work.

    Evangelizing internal tools is an interesting problem space!

    In terms of what resonates best with developers, it's always code IMO. If you have the chance to do a presentation, and the outcome you are hoping for is that developers try your thing, you have to show the code! If developers see you writing (or at least showing all of) the code, it helps plant the seed that "oh, this isn't too bad, I see how that works", and they have a visceral sense of the amount of time and effort required to realize some amount of value from the tool. Showing, not telling, is critical for this audience, I have found. It may be less relevant when evangelizing an internal tool, but authenticity and a focus on service is very important as well. If you are just up there selling your thing, and not providing any actual value to your community, you will ultimately not earn the privilege of asking your community to try something new, that you genuinely love and are excited about, and think they will love too.

    Gauging the effectiveness of outreach is also tricky, but in a business like Twilio's, we often look at signups and engagement metrics, usually correlated with geographies we serve, and content we create (like blog posts, etc). We are able to know that a given blog post generated X number of signup starts through analytics, for instance. Content is the easiest to measure because of the web analytics paper trail. Community engagements have historically been harder to measure. I've become very interested in the Orbit model recently, and I think that aggregating community touch points is the place to start measuring those harder-to-value interactions.

    Keeping on top of docs during the development process is super hard! Twilio has spent years and millions of dollars creating systems to automatically generate and deploy API libraries, code samples, and docs from a central set of definitions. On a smaller scale, I would really try to lean on tools that can provide at least some modicum of auto-generated content, like starting from an Open API spec for example. Investing in tooling for documentation is absolutely worthwhile if you are going to have any hope of a good developer experience at scale.

  • @mspeir said:
    I will turn @markwinap's comment into a question! Why does TwilioQuest use the pixel art style?

    Initially, it was because that’s the only style of art I could produce! The first iterations of web-based TwilioQuest and desktop TwilioQuest were built almost exclusively by me, so I had to embrace my own constraints. But even now that we have more help and resources, the aesthetic still seems to make sense. I really want the game to feel approachable for a wide audience, so going for a sci-fi Pokémon art style is an intentional choice.

  • kwhinnery
    kwhinnery admin
    edited October 1

    @Suvink said:
    I have a question for Kevin!
    What are the key points we should pay attention to when writing a good, developer friendly documentation?

    @Suvink great question!
    For me, I think good developer docs are:

    1.) Accurate
    2.) Skimmable
    3.) Task oriented
    4.) Comprehensive

    1 is the most important. If there's something in the documentation that's incorrect, that is one of the worst experiences you can create for a developer. If they copy/paste a code sample that doesn't work because it's out of date, that might be the last time that developer ever bothers to try your product. Worse, you've wasted their time. Accuracy is number one.

    I put "skimmable" as number two, because you are never going to have your reader's undivided attention. They are busy. They are probably only using one tiny feature of your giant product offering. You can help them out immensely by designing your docs to be skimmed. The structure of each page should be similar, so developers know approximately where to find the kind of content they need (reference, code samples, etc). TOCs and interpage navigation also help. Code samples are also very important - if I can just copy/paste a code snippet that mostly works and won't get me into trouble, that is fantastic.

    Task orientation I think is also important. Especially when you are writing tutorials, guides, or other documentation that is not explicitly API reference, your reader is probably very focused on trying to accomplish a specific task. The Firebase docs I think do a really nice job of staying task-oriented: https://firebase.google.com/docs/firestore

    Comprehensive is last on the list largely because documentation is never comprehensive enough. There can always be more docs! So rather than focusing on 100% coverage of your entire product, you are better off focusing your time and attention where developers will spend most of their time and attention. For Twilio, that often means we spend a lot more time on our quick starts and high traffic pages (like how to send SMS messages, for instance), than we do trying to expand our corpus of documentation.

    For more general scholarship on the topic, I really liked reading Every Page is Page One.
    I'd also recommend checking out this talk from former Twilion and all around wonderful person Kat King at Write The Docs for another take.

  • @cmassironi said:
    Hello Kevin! What would you recommend as the best resources for someone learning to code?

    Other than my obvious biased favorite (TwilioQuest), I have found the freeCodeCamp courses to be a nice and comprehensive introduction to JavaScript syntax. While I don’t generally favor Python as a programming language, Learn Python the Hard Way I find to be a great experience because of its focus on building muscles related to software development. Typing in commands, creating directory structures, etc - we try to drill these kinds of skills in TwilioQuest as well. For younger kids, I love the LEGO robotics kits (Mindstorms, prime). Creating instructions for a robot is a great first problem domain, as it helps create a useful mental model for what code is and what it’s for (and has tightly integrated dev tools/code editor).

  • @csunu said:
    I meet a lot of people at conferences and in discords who are interested in doing creative stuff in service of STEM education. What advice should I give to someone who wants to build video games that teach kids to code?

    My own path into building STEM games may not be super repeatable, but I started by finding work that involved teaching and serving developer communities. I started doing developer evangelism, and later developer education by leading our docs team. Before TwilioQuest, I made games and play a part of that work. I think there is a place for gameplay in almost every kind of work that involves teaching.

    I think if you are committed to making everything a game, and you are passionate about games as a storytelling and instructional medium, eventually you will find yourself a STEM game developer!

    A general piece of advice for trying to make any kind of video game would also be to do something super small. Focus on shipping versus features.

  • @sstringer said:
    Hi Kevin! I'm curious about TwilioQuest's origin -- how did TwilioQuest come about?

    When I joined Twilio, one of my first tasks was to run a developer workshop day at TwilioCon, the precursor to SIGNAL. I wanted to create a learn-at-your-own-pace style of content for a live training event that would need to support many different learners from many different backgrounds. The metaphor of a role-playing game, where different people could level up at different times, felt good to me as an organizing construct. Two weeks of frantic hacking with Angular 1 and Parse (RIP), and the first version of TwilioQuest was born!

  • @cdennis said:
    Ooh I have one! Kevin you have such a rad job! But I'm wondering...What has been the biggest challenge in your career?

    I really struggle to stay organized - it’s been an issue my whole life, and I have to employ many different (and changing) techniques to keep myself accountable and make progress on important projects. When I started working remotely about 12 years ago, this really became an issue. I have to be careful about my workspace and how I structure my time if I want to get anything meaningful done. And if like me you have clinically diagnosed attention issues, please don't be afraid to seek treatment and work with a doctor to tackle these issues!

  • @avinashupadhyaya said:
    Hi Kevin! Where do you see TwilioQuest in the future? Do you have plans of making it a multiplayer?

    In terms of making TwilioQuest multiplayer, that is a cool concept that we've talked about a few times (like being able facilitate group projects - it would be neat if one player's code had to do one thing, like provide a server, and the other player's code had to be the front end, etc). It seems like that is pretty far away though, sadly! Though with the new extension tools coming in 3.2, the community may well force the issue and create that feature themselves :)

    In terms of where I see TQ going in the future, I want to continue to build the platform and content in such a way where it becomes a helpful part of computer science education. I would love to see TwilioQuest be the best tool for reinforcing early programming concepts, and become the "Oregon Trail" or "Number Munchers" of learning to code. In the immediate future (after our big SIGNAL release), that will mean focusing on using our new tools to ship content for early in career developers. We have great ideas for content to teach general ideas around APIs, based on Craig's amazing course. We are also in the planning phases of content for what we call "developer computer literacy" - or everything a developer needs to talk to their computer, that they don't teach you in school.

    I think we'll also need to address the fact that TwilioQuest has no browser-based experience. We make extensive use of the desktop environment, but I suspect there's a subset of the experience we could deliver in the browser as well.

  • @csunu said:
    I have met a ton of people from Minnesota who are doing really interesting things in tech. What is the Minnesota tech scene like, and what is your advice for new Minnesotans who would like to engage in awesome tech things?

    There are a number of great companies and developers in Minnesota, but not a tremendous number of employers based in Minnesota doing high tech software per se (like your Amazons, GitHubs, Stripes, or Twilios). Thankfully, remote work is becoming more and more acceptable at these companies. Many Minnesotan engineers are now getting recruiter spam for the FAANG companies at an alarming rate :) One anecdote I can share is that I randomly met an engineer from Twitter who lived and worked remote from rural Minnesota while I was up north, and that was amazing! I hope that trend continues.

    About 12 years ago, I found my way into remote work in tech largely through involvement in open source communities. By contributing to open source, attending and speaking at conferences, and building my network that way, it eventually led to opportunities at companies like Twilio. I think intentionally trying to broaden your professional network in that way can be very rewarding.

  • @aastrinos said:
    Hey Kevin! I'm curious since it's SIGNAL season, what is your favorite developer experience from SIGNAL?

    We have had some pretty great $BASH (afterparty) events at SIGNALs of the past - I am not the most extroverted person in the world, so I really like it when there are collaborative activities and other content that don’t require a lot of social heavy lifting to get into. I also love Superclass, we always have at least a few students that encounter Twilio for the first time, and become either power users, or sometimes new Twilions.

  • Hey Kevin,

    One of the challenges you mentioned back during the Relay event was that prior to this work, you didn't have experience working with Electron or making Sprite Animations work.

    In retrospect now, do you have any advice, tips, or "wish I'd have known" insights that you can offtips for folks who are looking to learn themselves?

  • Hi Kevin! I have to ask--do you prefer cake or pie?

  • Hey Kevin,

    Curious to hear more about how you started working in tech and if you have any advice for those trying to make the transition?🤓

  • ALSO what is your favorite Star Wars movie and how has pop culture influenced your work, if at all?

  • @csunu said:
    Who writes the TwilioQuest missions?

    The technical content for the missions (the tutorials and validation logic) have been written by a combination of me, Ryan Kubik, Margaret Staples, and a number of folks from the Developer Education team at Twilio (check the credits in game for a complete list!). Most of the dialogue and lore/flavor content is still written by me, because that is my favorite part.

  • Writing code can sometimes be a frustrating experience. What do you think is the worst bug?

  • What is TwilioQuest built on?

  • Out of curiosity...have you ever broken TwilioQuest? 👀

  • @alexsmith said:
    Hey Kevin,

    One of the challenges you mentioned back during the Relay event was that prior to this work, you didn't have experience working with Electron or making Sprite Animations work.

    In retrospect now, do you have any advice, tips, or "wish I'd have known" insights that you can offtips for folks who are looking to learn themselves?

    With Electron specifically, I wish I had known what a chore it would ultimately be to distribute the launcher app ourselves rather than go through an app store. The process to obtain an Extended Validation code signing certificate for Windows desktop apps is an experience I would not wish on my worst enemy. I should have just distributed through the Windows app store (which we still may, at some point).

    With regard to sprite animation and game development generally, I don't know if there's anything specifically I would have done differently - it's more a case of the more I learn about Phaser, the more I realize how I could have done things better. For instance, I now have a much better idea how the scene transition system works, and I could have used that rather than building my own crappy take on scene management in the game. So I guess I wish I had known how Phaser worked at the outset of the project, but that seems like an unreasonable thing to wish for :) If I were to form this observation into advice, it might be that it would be nice to play around with your game framework first and get acquainted with the various features before diving right in to a big project.

  • @lsiegle said:
    Hi Kevin! I have to ask--do you prefer cake or pie?

    As a dessert, it’s cake, and it’s not close. When is the last time you had a piece of cake and thought "geez, that wasn't delicious". Never.

    Counterpoint - I have recently been told that Team Pie gets to claim pizza as part of their team, which is huge if true, and may force me to reconsider my position.

  • @sbrijmohan said:
    Hey Kevin,

    Curious to hear more about how you started working in tech and if you have any advice for those trying to make the transition?🤓

    I studied political science in college, and ended up with a computer science minor because I enjoyed programming and making stuff, but didn’t much care for the “computer sciencey” topics (I hope I never have reason to think about Discrete Math again). When looking for work after school, technical jobs seemed more likely to help pay down my student debt, so my work life took a slightly different path than I predicted. My first job was helping create and maintain Java development environments for teams at an enterprise software company.

    In terms of advice for making the transition, try to build and ship a software project, even if it's very small. I think I learned the most from my smaller side projects, where I had to do everything from write the code, to configuring DNS and infrastructure, to explaining to people how the app worked. The mix of technical and non-technical challenges is a major growth opportunity. It also gives you something to put on a resume, and real-world experience to talk about, even if you never have held a formal tech job. It also shows that you can do the one thing every developer needs to do at the end of the day, which is find a way to ship.

  • Hey Kevin, how do you go about deciding what Twilio quest missions to build and what is the process like?

  • @lsiegle said:
    ALSO what is your favorite Star Wars movie and how has pop culture influenced your work, if at all?

    Empire is my favorite Star Wars movie, but more controversially, Phantom Menace is my favorite prequel movie. Yes Jar Jar Binks was horrible, but the pod race and Darth Maul duel were among the best action sequences of any Star Wars film, and Liam Neeson is exactly what I need out of my crusty contrarian Jedi Masters. Older Anakin is also way more cringey than little Anakin.

    Pop culture definitely influences all of my work, and none moreso than TwilioQuest. The episodic nature of shows like Star Trek: TNG continues to be a guiding force for how we are trying to approach content in The Cloud. In The Cloud, because it's a virtual universe and an abstract representation of the Internet, it can contain worlds with any kind of rules. Star Trek works the same way - this week, the crew lands on a world where everyone is a cat and dogs are hunted ruthlessly. As we build newer content in TQ 3.2, we are trying to create flavorful worlds with these kinds of setups, where we can continue to expand them over time. We are a long, long way from doing this well, but that's the ambition.

  • @mspeir said:
    Writing code can sometimes be a frustrating experience. What do you think is the worst bug?

    The worst bugs are the ones where it’s not clear if the problem is with your code, or with a dependency in your code. 95% of the time, the problem is with your code, and it just takes you a long time to track it down. The other 5% take forever to track down because you first exhaust every other possible route, assuming that you have caused the problem, like you usually do. When you discover the problem was with a dependency, the fix is usually also hard, because you have to either take on the task of fixing the dependency, or take on the work of replacing the dependency with something else.

  • @csunu said:
    What is TwilioQuest built on?

    The current incarnation of TwilioQuest is a cross-platform desktop application built on Electron, a framework that allows you to deploy HTML, CSS, and JavaScript applications as native desktop apps (same tech platform used by Slack, Discord, Visual Studio Code, and others). The animated components of the game (where we do collisions, character movement, and render tile maps) is built using Phaser, a 2D game engine that targets the WebGL canvas. The game’s UI is built with React, and sits on top of the canvas element managed by Phaser. We also make extensive use of Tiled as our level editor.

  • @smendez said:
    Out of curiosity...have you ever broken TwilioQuest? 👀

    As Gandalf said, a wizard is never late, nor early - they arrive precisely when they mean to. Similarly, TwilioQuest is never broken - it behaves precisely as it is meant to. (The real answer is yes, on occasions too numerous to count, usually by missing a rare platform-specific edge case, or messing up some arcane code signing step for desktop applications).

  • @Kay said:
    Hey Kevin, how do you go about deciding what Twilio quest missions to build and what is the process like?

    Thus far we have been trying a lot of different experiments and seeing which kinds of content resonate - the language introductions have found an audience, so we’ll continue to invest in those. There have been other pieces of content that haven’t fared as well, and we likely won’t continue to build on those. Going forward, we are also working directly with teachers and students to get a sense of what content they would like to see make it into the game.

  • Kevin, what's been taking up the majority of your time (work and not work) lately?

  • @alinar said:
    Kevin, what's been taking up the majority of your time (work and not work) lately?

    At work, it's getting ready for SIGNAL, our big developer conference! We are releasing TwilioQuest 3.2 (a big update) and launching our community members’ code to space. It should be a fun time :)

    At home, I just wrapped up the fall softball season with Grace, my middle kiddo - they have become a pretty handy shortstop this fall. I am also coaching my son Owen's 5th grade robotics team - keeping him focused on that task has been challenging.

  • sbrijmohan
    sbrijmohan admin
    edited September 30

    @kwhinnery how did you choose the name Cedric and is Cedric a real robot or just a character?

  • What is the biggest "secret" insight you've learned about learning programming through this process?

    I've loved TwilioQuest so far just for the fun of playing and learning. I also think the story and everything is awesome, humorous, and hilarious (in a good way).

    I'm curious if any product managers work on this with you, and what you see as the biggest opportunities to improve developer Education in general.

  • I love how focused Twilio is on developer education! What should someone do if they would want to work at Twilio?

  • @sbrijmohan said:
    @kwhinnery how did you choose the name Cedric and is Cedric a real robot or just a character?

    When I was developing the Fog Owl copilot character, I wanted to be able to auto-generate their voice using AWS Polly. I wrote up a bunch of voice lines and auditioned every English language voice in the API. The least robotic voice (ironically) was "Brian", a UK English voice. Of all the Polly voices, this one seemed the most able to deliver an actual character - in this case, a sort of stuffy robot butler. I built the Cedric persona around this voice. I settled on Cedric as a name for no real reason other than it sounds like it might be the name of a robot butler :)

    The physical appearance of Cedric, and his avatar in the real world, is the Misty II robot from Misty Robotics. Before his current look, Cedric was a sort of vague MST3K robot figure. After a chance meeting with an old acquaintance working at Misty, we struck a deal to adopt the Misty II as the physical look of Cedric, so we could bring him to events too. I have kept the physical Cedric close at hand ever since.

  • @liddlem said:
    What is the biggest "secret" insight you've learned about learning programming through this process?

    I've loved TwilioQuest so far just for the fun of playing and learning. I also think the story and everything is awesome, humorous, and hilarious (in a good way).

    I'm curious if any product managers work on this with you, and what you see as the biggest opportunities to improve developer Education in general.

    Glad you are enjoying it! On our very small team, I currently occupy the de facto role of product manager - though to note, Ryan Kubik has really stepped up and become an incredible technical leader of the project, and has injected his own great sense of game design into the experience as well.

    I think developer education can be improved by continuing to realize that software development is hard, and possibly too hard. The more we can do to make learning and using development tools painless, the better off we will be as an industry, and the more types of creative minds we can empower to build software. I guess I would size up the biggest opportunity as broadening the types of people who consider themselves developers, and seeing software built by every kind of person.

  • What is your favorite Twilio memory? Surely the 🐻 story @bschooley referenced doesn't fit the bill as it involved injury.

  • What was it like to work with the chiptune artist that created the music for TwilioQuest?

This discussion has been closed.
If this is an emergency, please contact Twilio Support. This is not an official Support channel. https://support.twilio.com/
Have an urgent question?
Please contact Twilio Support. This is not an official Support channel.
Contact Support