diff --git a/Gemfile.lock b/Gemfile.lock index fa53772..777392a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,119 +1,273 @@ GEM remote: https://rubygems.org/ specs: - activesupport (4.2.6) - i18n (~> 0.7) - json (~> 1.7, >= 1.7.7) + activesupport (6.0.4.1) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) minitest (~> 5.1) - thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.4.0) + zeitwerk (~> 2.2, >= 2.2.2) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) coffee-script (2.4.1) coffee-script-source execjs - coffee-script-source (1.10.0) - colorator (0.1) - ethon (0.9.0) - ffi (>= 1.3.0) - execjs (2.7.0) - faraday (0.9.2) + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.17.13) + ruby-enum (~> 0.5) + concurrent-ruby (1.1.9) + dnsruby (1.61.7) + simpleidn (~> 0.1) + em-websocket (0.5.2) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + ethon (0.14.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.8.1) + faraday (1.8.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0.1) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) multipart-post (>= 1.2, < 3) - ffi (1.9.10) - gemoji (2.1.0) - github-pages (80) - github-pages-health-check (= 1.1.0) - jekyll (= 3.1.6) - jekyll-coffeescript (= 1.0.1) - jekyll-feed (= 0.5.1) - jekyll-gist (= 1.4.0) - jekyll-github-metadata (= 1.11.1) - jekyll-mentions (= 1.1.2) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + ffi (1.15.4) + forwardable-extended (2.6.0) + gemoji (3.0.1) + github-pages (219) + github-pages-health-check (= 1.17.7) + jekyll (= 3.9.0) + jekyll-avatar (= 0.7.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.1.6) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.15.1) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.13.0) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) - jekyll-redirect-from (= 0.10.0) - jekyll-sass-converter (= 1.3.0) - jekyll-seo-tag (= 1.4.0) - jekyll-sitemap (= 0.10.0) - jemoji (= 0.6.2) - kramdown (= 1.10.0) - liquid (= 3.0.6) - listen (= 3.0.6) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.7.1) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.12.0) + kramdown (= 2.3.1) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.3) mercenary (~> 0.3) - rouge (= 1.10.1) + minima (= 2.5.1) + nokogiri (>= 1.10.4, < 2.0) + rouge (= 3.26.0) terminal-table (~> 1.4) - github-pages-health-check (1.1.0) + github-pages-health-check (1.17.7) addressable (~> 2.3) - net-dns (~> 0.8) + dnsruby (~> 1.60) octokit (~> 4.0) - public_suffix (~> 1.4) - typhoeus (~> 0.7) - html-pipeline (2.4.1) - activesupport (>= 2, < 5) + public_suffix (>= 3.0, < 5.0) + typhoeus (~> 1.3) + html-pipeline (2.14.0) + activesupport (>= 2) nokogiri (>= 1.4) - i18n (0.7.0) - jekyll (3.1.6) - colorator (~> 0.1) + http_parser.rb (0.6.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.9.0) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 1.1) - kramdown (~> 1.3) - liquid (~> 3.0) + jekyll-watch (~> 2.0) + kramdown (>= 1.17, < 3) + liquid (~> 4.0) mercenary (~> 0.3.3) - rouge (~> 1.7) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) safe_yaml (~> 1.0) - jekyll-coffeescript (1.0.1) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) - jekyll-feed (0.5.1) - jekyll-gist (1.4.0) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.3.1) + commonmarker (~> 0.14) + jekyll (>= 3.7, < 5.0) + jekyll-commonmark-ghpages (0.1.6) + commonmarker (~> 0.17.6) + jekyll-commonmark (~> 1.2) + rouge (>= 2.0, < 4.0) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.15.1) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) octokit (~> 4.2) - jekyll-github-metadata (1.11.1) - octokit (~> 4.0) - jekyll-mentions (1.1.2) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) + octokit (~> 4.0, != 4.4.0) + jekyll-mentions (1.6.0) html-pipeline (~> 2.3) - jekyll (~> 3.0) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) jekyll-paginate (1.1.0) - jekyll-redirect-from (0.10.0) - jekyll (>= 2.0) - jekyll-sass-converter (1.3.0) - sass (~> 3.2) - jekyll-seo-tag (1.4.0) - jekyll (~> 3.0) - jekyll-sitemap (0.10.0) - jekyll-watch (1.4.0) - listen (~> 3.0, < 3.1) - jemoji (0.6.2) - gemoji (~> 2.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.7.1) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.12.0) + gemoji (~> 3.0) html-pipeline (~> 2.2) - jekyll (>= 3.0) - json (1.8.3) - kramdown (1.10.0) - liquid (3.0.6) - listen (3.0.6) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9.7) + jekyll (>= 3.0, < 5.0) + kramdown (2.3.1) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.3) + listen (3.7.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - mini_portile2 (2.0.0) - minitest (5.9.0) - multipart-post (2.0.0) - net-dns (0.8.0) - nokogiri (1.6.7.2) - mini_portile2 (~> 2.0.0.rc2) - octokit (4.3.0) - sawyer (~> 0.7.0, >= 0.5.3) - public_suffix (1.5.3) - rb-fsevent (0.9.7) - rb-inotify (0.9.7) - ffi (>= 0.5.0) - rouge (1.10.1) - safe_yaml (1.0.4) - sass (3.4.22) - sawyer (0.7.0) - addressable (>= 2.3.5, < 2.5) - faraday (~> 0.8, < 0.10) - terminal-table (1.5.2) - thread_safe (0.3.5) - typhoeus (0.8.0) - ethon (>= 0.8.0) - tzinfo (1.2.2) + mini_portile2 (2.6.1) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.14.4) + multipart-post (2.1.1) + nokogiri (1.12.4) + mini_portile2 (~> 2.6.1) + racc (~> 1.4) + octokit (4.21.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (4.0.6) + racc (1.5.2) + rb-fsevent (0.11.0) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.5) + rouge (3.26.0) + ruby-enum (0.9.0) + i18n + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + simpleidn (0.2.1) + unf (~> 0.1.4) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (1.2.9) thread_safe (~> 0.1) + unf (0.1.4) + unf_ext + unf_ext (0.0.8) + unicode-display_width (1.8.0) + zeitwerk (2.4.2) PLATFORMS ruby @@ -122,4 +276,4 @@ DEPENDENCIES github-pages BUNDLED WITH - 1.12.4 + 2.1.4 diff --git a/_config.yml b/_config.yml index cf8f88c..83f295c 100644 --- a/_config.yml +++ b/_config.yml @@ -8,12 +8,10 @@ # Site settings title: Justin Jeffress email: justin.jeffress@gmail.com -description: > - 日本に憧れているアメリカ人です。2年間横浜に住み、東京で1年間働いた経験があります。 - American who admires Japan. Lived in Yokohama for 2 years and worked in Tokyo for 1 year. +description: I love to tinker with software and share my knowledge with others in the pursuit enriching people's lives. baseurl: "" # the subpath of your site, e.g. /blog url: "http://sleepydeveloper.github.io" # the base hostname & protocol for your site -twitter_username: sleepydeveloper +x_username: sleepydeveloper github_username: sleepydeveloper # Build settings diff --git a/_data/blog-posts.yml b/_data/blog-posts.yml new file mode 100644 index 0000000..80604c5 --- /dev/null +++ b/_data/blog-posts.yml @@ -0,0 +1,110 @@ +- title: "New Alexa Skills Training Course: How to Design for In-Skill Purchasing" + url: https://developer.amazon.com/en-US/blogs/alexa/post/555d00d6-66b4-4f0b-8974-2021cd9a1630/alexa-skill-teardown-decoding-dialog-management-with-pet-matc + publication_date: 2018/01/12 + description: When building conversational user interfaces, it's important to think about continued engagement and high-quality interactions. During a recent webinar on advanced voice design techniques, we shared some best practices for applying advanced features like dialog management, entity resolution, and memory to enable customers to engage in multi-turn conversations with Alexa skills. + +- title: "Alexa Skill Teardown: Understanding Entity Resolution with the Pet Match Skill" + url: https://developer.amazon.com/en-US/blogs/alexa/post/cfbd2f5e-c72f-4b03-8040-8628bbca204c/alexa-skill-teardown-understanding-entity-resolution-with-pet-matc + publication_date: 2018/01/16 + description: Today, we'll focus on Entity Resolution, which enables you to add synonyms to your slot values and validate that a user actually said one of them. The Alexa service will then handle resolving the synonyms to your slot values. This simplifies your code since you don't have to write any code to match the synonym that user said to your slot value. + +- title: "Updated Tutorial: Enable Multi-Turn Dialog with Decision Tree Sample Skill" + url: https://developer.amazon.com/en-US/blogs/alexa/post/5b0efd02-0ed0-42d5-b922-5ee594d30a38/new-alexa-skills-kit-template-build-an-alexa-decision-tree-skil + publication_date: 2018/01/23 + description: As you create more Alexa skills, you can add advanced features to deliver a more conversational experience to your users. We recently updated the decision tree sample skill to use dialog management and entity resolution. Previously the skill asked a set of yes/no questions. Depending upon the answer, Alexa would ask a follow-up question. Once the user answered the last question, the skill would recommend a vocation to the user. + +- title: Taking Control of the Dialog Management State Machine + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2018/03/taking-control-of-the-dialog-management-state-machine + publication_date: 2018/03/16 + description: Dialog management is a great way to collect the set of required slots that your intent needs to perform a task for your customers, since it greatly reduces the necessary coding required to reprompt for missing slot values. + +- title: Using Dialog Management to Capture A and B or C Slots + url: https://developer.amazon.com/en-US/blogs/alexa/post/44dd83f4-4842-40c5-91f8-3868b9f4608c/using-dialog-management-to-capture-a-and-b-or-c-slot + publication_date: 2018/03/23 + description: During Alexa Dev Days, my colleagues and I have been leading a voice design workshop that focuses on voice-first experience design and leans on dialog management to simplify collecting a set of required slots that an intent needs to perform its task for the user. + +- title: How to Enable Alexa to Switch Context Mid-Conversation with Dialog Management + url: https://developer.amazon.com/en-US/blogs/alexa/post/d8579cd6-9109-42b2-ada6-df017fc1dee5/how-to-handle-different-intent-requests-with-dialog-managemen + publication_date: 2018/03/29 + description: When you have a natural conversation with another person, you might find the conversation can take different directions. Therefore, the context of the conversation can change quite rapidly. With dialog management, you can ensure your skill is able to handle context switching. + +- title: Using Yes/No Intents with Dialog Management + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2018/04/using-yes-no-intents-with-dialog-management + publication_date: 2018/04/06 + description: The AMAZON.YesIntent and AMAZON.NoIntent are useful for handling a “yes” or “no” utterance while improving dialog accuracy and creating more natural voice-first experiences. + +- title: Eliciting Slots Dynamically with Dialog Management + url: https://developer.amazon.com/en-US/blogs/alexa/post/5fe7565a-9547-4e03-be36-6c62ed356d57/dynamically-elicit-slots-during-dialog-management-based-on-previously-given-slot-value + publication_date: 2018/04/12 + description: At Alexa Dev Days, my colleagues and I lead a voice design workshop that focuses on voice-first experiences and shows how to capture a set of slot values through a turn-by-turn conversation with a user. I was recently asked, "I'm making a skill that recommends products. Can I change the question that Alexa asks to fill my slot(s) and can I make an optional slot required?" + +- title: "Build Advanced Alexa Skills: Confirm What Customers Want with Dialog Management" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2018/05/build-advanced-alexa-skills-confirm-what-customers-want-with-dialog-management + publication_date: 2018/05/10 + description: When your skill performs a task for the customer that requires information from them, it's a best practice to confirm you have the information you need before performing the task. + +- title: Use the New Fallback Intent to Respond Gracefully to Unexpected Customer Requests + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2018/07/use-the-new-fallback-intent-to-respond-gracefully-to-unexpected-customer-requests + publication_date: 2018/07/12 + description: The new AMAZON.FallbackIntent in the Alexa Skills Kit (ASK) built-in library helps you handle unexpected utterances, or when a customer says something that doesn't map to any intents in your skill. + +- title: Advanced Skill Building with Dialog Management + url: https://m.media-amazon.com/images/G/01/mobile-apps/dex/alexa/alexa-skills-kit/guide/Dialog-Management-Guide.pdf + publication_date: 2018/08/01 + description: Conversations are dynamic, moving between topics and ideas fluidly. Through voice, we are able to converse with technology, which is far more engaging than clicking buttons on a screen. To create truly engaging conversational voice experiences, you’ll need to incorporate flexibility and responsiveness in your Alexa skills. Your skills should be able to handle variations of conversation, conditional collection of data, and switching context mid-conversation without losing track of what's being said. + +- title: "Building Conversational Alexa Skills: How to Dynamically Elicit Slots Based on a Previous Answer Using Dialog Management" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2018/11/building-conversational-alexa-skills-how-to-dynamically-elicit-slots-based-on-a-previous-answer-using-dialog-management + publication_date: 2018/11/02 + description: Over the past few months, I've spent a lot of time deep diving into dialog management and sharing what I've learned with the Alexa developer community. + +- title: Use Intent Chaining to Enter Dialog Management from a Different Intent + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/03/intent-chaining-for-alexa-skill + publication_date: 2019/03/01 + description: It's no secret that dialog management is one of my favorite features in the Alexa Skills Kit. I've spent countless hours experimenting with it. + + +- title: インテントチェーンを使って別のインテントのダイアログを管理する + url: https://developer.amazon.com/en-US/blogs/alexa/post/b3939b11-5cef-4598-b2f9-c7ad904e1692/understanding-intent-chainin + publication_date: 2019/04/02 + description: 実は、ダイアログ管理は私のお気に入りのAlexa Skills Kit機能の1つです。長い時間をかけていろいろな実験をしてきました。スキルの質を高めるコンテキスト切り替え(英語)や柔軟な条件付け(英語)といった便利なテクニックは、こうして開発できたのです。中には、Alexaイベントや@SleepyDeveloperを通して開発者から頂いた質問にインスパイアされたものもあります。Alexa Skills Kitチームでは日々、ダイアログ管理に新しい機能を追加し、更新を行っています。どれもユーザーとのやり取りを向上させるすばらしい機能ばかりです。今日はその中から、インテントチェーンをご紹介します。 + +- title: 6 Dialog Management Resources to Build Advanced Alexa Skills + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/03/intent-chaining-for-alexa-skill + publication_date: 2019/04/19 + description: Conversations are not scripted. When you ask someone a question, the person may or may not provide all of the information that was asked. They may even provide more. When designing your Alexa skill, it’s important to start with this conversation in mind. In an Alexa skill, a dialog with the user is a conversation with multiple turns in which Alexa asks questions and the user responds with the answers. + +- title: "New Alexa Skills Training Course: Build an Engaging Alexa Skill with Cake Time" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/05/new-alexa-skills-training-course-build-your-first-alexa-skill-with-cake-time + publication_date: 2019/05/17 + description: "We're excited to introduce our new self-paced skill-building course called Cake Time: Build an Engaging Alexa Skill." + +- title: "Alexa Skill Recipe Update: Making HTTP Requests to Get Data from an External API Using the ASK Software Development Kit for Node.js Version 2" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/05/alexa-skill-recipe-update-making-http-requests-to-get-data-from-an-external-api-using-the-ask-software-development-kit-for-node-js-version-2 + publication_date: 2019/05/23 + description: I love interacting with the Alexa developer community. Your thirst for knowledge constantly challenges me to experiment and dive deep into many voice-related topics. + +- title: "Getting Started with the Cake Time Course: Designing the Voice User Interface (VUI) for Your Alexa Skill" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/06/getting-started-with-the-cake-time-course-designing-the-voice-user-interface-vui-for-your-alexa-skill + publication_date: 2019/06/04 + description: Great voice design is the foundation for an engaging Alexa skill, which is why it is the starting point for the Cake Time course. + +- title: "Getting Started with the Cake Time Course: Using Auto-Delegation to Collect Slots Turn by Turn" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/06/getting-started-with-the-cake-time-course-using-auto-delegation-to-collect-slots-turn-by-turn + publication_date: 2019/06/10 + description: Unlike a Hollywood movie, real conversations are not scripted. There are many factors that can affect conversation such as the number of participants, time of day, mood, amount of caffeine consumed, and so on. + +- title: "Getting Started with the Cake Time Course: Adding Memory to the Cake Time Skill to Remember the Customer's Birthday" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/06/getting-started-with-the-cake-time-course-adding-memory-to-the-cake-time-skill-to-remember-the-customer-s-birthday + publication_date: 2019/06/15 + description: In my previous post on designing the Cake Time skill, I did a deep dive on situational design. Instead of a flow chart, my colleague and I focused on the conversation and used situational design. + +- title: "Getting Started with Cake Time: Using the Alexa Settings API to Look Up the Device Time Zone" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/07/getting-started-with-cake-time-using-the-alexa-settings-api-to-look-up-the-device-time-zone + publication_date: 2019/07/02 + description: In my previous post on adding memory to cake time, I walked through the process of adding memory to the Cake Time skill so your skill can remember your customer's birthday. + +- title: "New Alexa Skills Training Course: How to Design for In-Skill Purchasing" + url: https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2019/10/new-alexa-skills-training-course-how-to-design-for-in-skill-purchasing + publication_date: 2019/10/16 + description: In order to effectively monetize your Alexa skills, you need to design an experience that inspires your customers to continue using your skill over and over. While a portion of the experience depends on the technical implementation (code, information architecture, APIs, etc.) it can only go as far as your voice interaction design. So we created a design-focused course to help you design a skill with in-skill purchasing. You’ll learn what makes great premium content, when to make offers, how to write offers, how to handle transitions to and from the Amazon Purchase flow, and how to provide access to purchases. diff --git a/_data/code-projects.yml b/_data/code-projects.yml new file mode 100644 index 0000000..bc9ccbe --- /dev/null +++ b/_data/code-projects.yml @@ -0,0 +1,27 @@ +- title: Build an Engaging Alexa Skill + url: https://github.com/alexa-samples/skill-sample-nodejs-first-skill + description: I built this sample skill for the Build an Engaging Alexa Skill tutorial. I collaborated with Alexa Skills Marketing to built the Alexa Skill Builder onboarding email campagin around this tutorial. Starting with introducing the core fundamentals, utterances, slots, and intents, the tutorial introduces the API building blocks necessary to collect slots, recall user input, and reduce cognitive load by proactively using Alexa features. The skill and tutorial are modular, which enables learners to skip what they already know and dive right into the concepts they wish to learn. + +- title: Build An Alexa Pet Match Skill + url: https://github.com/alexa-samples/skill-sample-nodejs-petmatch + description: I created this sample skill to demonstrate how to use Dialog Managment to collect slots in order to recommend a dog based on a set of preferences. Development of this skill lead me to dive deep into multi-turn dialog voice user interface design and implementation. I went on to become the mutli-turn dialog domain lead. + +- title: Tutorial Build Multi-turn Skills with Alexa Conversations + url: https://github.com/alexa-samples/skill-sample-nodejs-alexa-conversations-pet-match + description: Alexa Conversations fundamentally changed the way to develop Alexa Skills. Alexa Conversations uses a set of sample utterances to build and train an AI/ML model to automatically handle slot elicitation during conversation. To demonstrate the differences between Alexa Conversations and Dialog Management to build a multi-turn skill, I recreated the Pet Match skill with Alexa Conversations. This project became the basis for the compare and contrast session at re:Invent 2019. + +- title: Sample Skill - Sauce Boss + url: https://github.com/alexa-labs/skill-sample-nodejs-sauce-boss + description: This skill debuted at re:Invent 2018 to supplment a modular workshop designed to teach developers how to build skills with Alexa Presentation Language for screen enabled Alexa Devices like the Echo Show. Developers who attended the workshop received early access to the APL beta which had just been announced. + +- title: My Cactus Simulation Alexa Game + url: https://github.com/alexa-samples/skill-sample-nodejs-web-api-my-cactus + description: I created this project with Alexa User Interface Designer, Allison Atwell and Alexa Gaming domain lead Joe Muoio to demonstrate how to design and build an Alexa game skill with a professional team. Allison prepared a set of design assets. Live on twitch, I implemented the VUI and core game engine logic and Joe Muoio implemented the web API game experience. Upon completion, Allison, Joe and I did a 12-episode series where we dove deep into the process we took to build the skill. + +- title: Build An Alexa Meal Recommendation Skill + url: https://github.com/alexa-samples/skill-sample-nodejs-the-foodie + description: The Foodie served as the sample skill to supplment the Designing for Conversation workshop, which we debuted at VoiceSummit 2018. The workshop taught developers how to design and build an Alexa Skill. It was a our first time builidng a modular tutorial outside of readme files, complete with shorts video clips to demonstrate the dont's of voice user interface design. The clips were very well received and were used to create social media ads to promote the tutorial. With a score of 4.7 out of 5, the workshop was the highest rated workshop at VoiceSummit. + +- title: Introduction to AI/ML Programming + url: https://github.com/fbsamples/mit-dl-workshop + description: At Meta my colleague Suraj and I collaborated on this workshop with professors at MIT to create and pilot an introduction to AI/ML programming with PyTorch. The workshop teaches the fundametnals of AI/ML. This modular workshop was to be our foundation to build a series of modular tutorials, so they could be combined as needed to tailor a workshop based upon audience needs. This was to serve our "meetup in a box" initiative to expand our team's advocacy reach beyond our team. diff --git a/_data/education-and-accolades.yml b/_data/education-and-accolades.yml new file mode 100644 index 0000000..0fe4474 --- /dev/null +++ b/_data/education-and-accolades.yml @@ -0,0 +1,15 @@ +- institution: AWS Certified Alexa Skill Builder - Specialty + degree: AWS Certified Alexa Skill Builder - Specialty + year: January 2019 + +- institution: Kanken Level 3 (Japanese Kanji Proficiency Test) + degree: Only has a 44.5% pass rate among native Japanese test takers. + year: November 2016 + +- institution: Stanford University's Inter-Center University, Yokohama, Japan + degree: Completion of Intensive Japanese Program + year: June 2012 + +- institution: California State University, Northridge + degree: Bachelor's Degree of Computer Science with honors + year: June 2006 diff --git a/_data/executive-summary.yml b/_data/executive-summary.yml new file mode 100644 index 0000000..7ed6f54 --- /dev/null +++ b/_data/executive-summary.yml @@ -0,0 +1 @@ +executive_summary: Senior Developer Advocate with experience in driving strategic planning, content creation and community outreach. Proven track record in project management and solution architecture at Amazon. Skilled in building teams, influencing product roadmaps and improving customer experiences. \ No newline at end of file diff --git a/_data/side-projects.yml b/_data/side-projects.yml new file mode 100644 index 0000000..4663b89 --- /dev/null +++ b/_data/side-projects.yml @@ -0,0 +1,31 @@ +- type: position + company: Little Tokyo Kaiwa Club + location: Los Angeles, CA + title: Co-founder and Organizer + duration: March 2016 - July 2017 + technologies: meetup.com, ruby, ruby on rails, javascript, jquery + description: I Co-founded a Japanese-English language exchange group in Little Tokyo. I prepared Japanese and English lessons and taught the attendees how to speak Japanese and English. I also built a rails app to track attendance and other information. + +- title: Ad Poster + type: coding_project + link: https://github.com/SleepyDeveloper/ad_poster + technologies: Ruby, JSON, Selenium, Watir, Dotenv + description: Automatically posts advertisements for Kaiwa Club and other Japanese Meetup groups to a popular advertising site using Selenium and Watir. Ad content is configured via a json file. Adheres to 12-factor application principles by using dotenv to manage login credentials. + +- title: JMDict + type: coding_project + link: https://github.com/SleepyDeveloper/jmdict + technologies: Ruby, XML, JSON, Nokogiri, Trollop + description: A set of tools to aid my Japanese studies. Using the JMDict project's open source Multilingual Japanese Dictionary, I created a database and a set of tools to create flashcards and practice problems. Some of the code is available on github. + +- title: Glossary + type: coding_project + link: + technologies: Ruby, Ruby on Rails, Postgresql, Trollop + description: A rails app with a database based on the JMDict Project. Provides a gem with tools that automate looking up lists of vocabulary words for the Kanken. Generates TSV files to create flashcards for an iOS app that I use to study Kanji. + +- title: SleepyDeveloper Tutorials + type: coding_project + link: https://github.com/sleepydeveloper/tutorials + technologies: github, youtube, iMovie, quicktime, node.js, aws, lambda + description: A development focused tutorial channel on youtube.com. It's a one man operation. I create the tutorials, narration script, screen capture, video edits, annotations, etc. diff --git a/_data/tutorials.yml b/_data/tutorials.yml new file mode 100644 index 0000000..d0eb0c3 --- /dev/null +++ b/_data/tutorials.yml @@ -0,0 +1,15 @@ +- name: Designing for Conversation + url: https://web.archive.org/web/20190206132752/https://developer.amazon.com/ask-resources/guided/conversational-design-workshop/#/ + description: "Archived on Wayback Machine: Follow along as we dive into the design methods we recommend you use to develop engaging conversational voice user interfaces (VUI). In this course you'll follow the process we used to design “The Foodie” skill for Alexa — imagining and analyzing user interactions through a series of exercises aimed at exposing and designing around the nuances of human conversation." + +- name: Build an Engaging Alexa Skill + url: https://developer.amazon.com/en-US/docs/alexa/workshops/build-an-engaging-skill/get-started/index.html + description: Start building quickly with our beginner tutorial. You'll get hands-on, step-by-step experience creating your first custom Alexa skill. + +- name: How to Design for In-Skill Purchasing + url: https://developer.amazon.com/en-US/alexa/alexa-skills-kit/get-deeper/tutorials-code-samples/design-for-in-skill-purchasing + description: Learn best practices for selling premium content in your skill. + +- name: Build Multi-turn Skills with Alexa Conversations + url: https://developer.amazon.com/en-US/docs/alexa/workshops/build-multi-turn-skills/get-started/index.html + description: Learn how to build a skill using machine learning with Alexa Conversations. diff --git a/_data/video-works.yml b/_data/video-works.yml new file mode 100644 index 0000000..89b4ebc --- /dev/null +++ b/_data/video-works.yml @@ -0,0 +1,293 @@ +- title: "PyTorch Community Voices: Interview with Refik Anadol Studio (Full Video)" + url: https://www.youtube.com/watch?v=Fv9XW22us9E + thumbnail: https://i.ytimg.com/vi/Fv9XW22us9E/hqdefault.jpg + publication_date: 2022/11/14 + description: Art & AI/ML collaborate in creative ways, like how the Refik Anadol Studio is powered by PyTorch. Watch this full interview of Refik and Christian B. talking with Developer Advocates Suraj ​​Subramanian and Justin Jeffress about how the Studio uses PyTorch to turn data into pigments + platform: YouTube + +- title: "第15回Alexa道場:米国スキル開発最前線" + url: https://www.youtube.com/watch?v=Er4YpC0RkyA + thumbnail: https://i.ytimg.com/vi/Er4YpC0RkyA/hqdefault.jpg + publication_date: 2018/10/11 + description: 米国からエバンジェリストを招いて、米国で人気のスキルや最新の機能など、Alexaスキルの最新開発事情をお届けします。 + platform: YouTube + +- title: "AWS re:Invent 2019: How developers can build natural, extensible voice conversations (ALX201-R2)" + url: https://www.youtube.com/watch?v=zgFBfQF1Ijw + thumbnail: https://i.ytimg.com/vi/zgFBfQF1Ijw/hqdefault.jpg + publication_date: 2019/12/10 + description: The AI-driven dialog manager Alexa Conversations allows you to build Alexa skills that can gracefully handle nonlinear, unpredictable, human conversations. This session provides an overview of dialog management on Alexa and walks you through how to use Alexa Conversations to create flexible, multi-turn experiences for use cases like buying tickets, making recommendations, ordering transportation or food, and making reservations. + platform: YouTube + +- title: Interacting With a Simple Hello World Alexa Skill + url: https://www.youtube.com/watch?v=cakcsuzS2DY + thumbnail: https://i.ytimg.com/vi/cakcsuzS2DY/hqdefault.jpg + publication_date: 2019/05/14 + description: This video illustrates what happens when a user interacts with a simple Hello World Alexa skill. + platform: YouTube + +- title: Overfilling Fail + url: https://www.youtube.com/watch?v=Gr59BrDWnIE + thumbnail: https://i.ytimg.com/vi/Gr59BrDWnIE/hqdefault.jpg + publication_date: 2018/07/11 + description: This video illustrates what it looks like when one conversational partner fails to parse information provided all at once. + platform: YouTube + +- title: Underfilling Fail + url: https://www.youtube.com/watch?v=cn308bvNBq4 + thumbnail: https://i.ytimg.com/vi/cn308bvNBq4/hqdefault.jpg + publication_date: 2018/07/11 + description: This video illustrates what it looks like when one conversational partner fails to recognize they already have the answer they need from context. + platform: YouTube + +- title: Conditional Flexibility + url: https://www.youtube.com/watch?v=gBExTNrGgMQ + thumbnail: https://i.ytimg.com/vi/gBExTNrGgMQ/hqdefault.jpg + publication_date: 2018/07/11 + description: This video illustrates what it looks like when one conversational partner asks for information they technically already have. + platform: YouTube + +- title: Cognitive Load Fail + url: https://www.youtube.com/watch?v=8CMeYuPK8cM + thumbnail: https://i.ytimg.com/vi/8CMeYuPK8cM/hqdefault.jpg + publication_date: 2018/07/11 + description: This video illustrates what it looks like when one conversational partner expects too much of another. + platform: YouTube + +- title: Context Switching Fail + url: https://www.youtube.com/watch?v=pUdZhAri9Nk + thumbnail: https://i.ytimg.com/vi/pUdZhAri9Nk/hqdefault.jpg + publication_date: 2018/07/11 + description: This video illustrates what it looks like when one conversational partner fails to switch context between different intentions. + platform: YouTube + +- title: Advanced Conversational Design workshop with Justin Jeffress at VOICE18 + url: https://www.youtube.com/watch?v=UTOX8SSt72w + thumbnail: https://i.ytimg.com/vi/UTOX8SSt72w/hqdefault.jpg + publication_date: 2018/07/26 + description: This is a live cast of a workshop titled Advanced Conversational Design with Dialog Manager that was lead by Alexa Evangelist Justin Jeffress @SleepyDeveloper at the 2018 Voice Summit. + platform: YouTube + +- title: 想定よりも少ない情報を言われた場合の失敗例 + url: https://www.youtube.com/watch?v=fzppyy8Rmdw + thumbnail: https://i.ytimg.com/vi/fzppyy8Rmdw/hqdefault.jpg + publication_date: 2018/10/11 + description: このビデオでは、聞き手が要求している情報に対して、話し手が認識できなかった(必要な情報を言ってくれなかった)場合に起こる失敗例を実演しています。 + platform: YouTube + +- title: コンテキスト切り替えの失敗 + url: https://www.youtube.com/watch?v=xw9PfQ91OPU + thumbnail: https://i.ytimg.com/vi/xw9PfQ91OPU/hqdefault.jpg + publication_date: 2018/10/11 + description: このビデオでは、会話している二人の一方が、異なるインテントへのコンテキスト切り替えがうまくできていない様子を実演しています。 + platform: YouTube + +- title: 認知負荷が重すぎる失敗 + url: https://www.youtube.com/watch?v=0oYVrGx75Mg + thumbnail: https://i.ytimg.com/vi/0oYVrGx75Mg/hqdefault.jpg + publication_date: 2018/10/11 + description: このビデオでは、会話している二人の一方が多くの情報を求めすぎている様子を実演しています。 + platform: YouTube + +- title: 条件に応じた柔軟な対応の不足 + url: https://www.youtube.com/watch?v=Xb-CFHalh90 + thumbnail: https://i.ytimg.com/vi/Xb-CFHalh90/hqdefault.jpg + publication_date: 2018/10/11 + description: このビデオは、会話している二人の一方が、二人が既に持っているはずの情報を再び尋ねた場合、または既に得られた情報から導き出されるはずの情報を繰り返し聞き返した場合に起きる問題を実演しています。 + platform: YouTube + +- title: 想定よりも多くの情報を言われた場合の失敗例 + url: https://www.youtube.com/watch?v=zyeOmFfjQsk + thumbnail: https://i.ytimg.com/vi/zyeOmFfjQsk/hqdefault.jpg + publication_date: 2018/10/11 + description: このビデオでは、会話の相手が聞き手が想定するよりも多くの情報を一度に言われた場合に起こる失敗例を実演しています。 + platform: YouTube + +- title: 確認が少なすぎる失敗 + url: https://www.youtube.com/watch?v=p0KP8aveFLA + thumbnail: https://i.ytimg.com/vi/p0KP8aveFLA/hqdefault.jpg + publication_date: 2018/12/13 + description: このビデオでは、ユーザーから受け取った情報の確認が少なすぎるため、ユーザーに不安を抱かせる失敗例を実演しています。 + platform: YouTube + +- title: 前回の会話の内容を記憶していない失敗 + url: https://www.youtube.com/watch?v=52SUq0_1WhY + thumbnail: https://i.ytimg.com/vi/52SUq0_1WhY/hqdefault.jpg + publication_date: 2018/12/13 + description: 前回の会話の内容を記憶していないため、何度も同じことをユーザーに聞いてしまう失敗例を実演しています。 + platform: YouTube + +- title: 確認時に混乱してしまう失敗 + url: https://www.youtube.com/watch?v=cY3R1SpU_dM + thumbnail: https://i.ytimg.com/vi/cY3R1SpU_dM/hqdefault.jpg + publication_date: 2018/12/13 + description: 受け取った個別の情報は正しくても、確認時に情報を整理できず混乱してしまった失敗例を実演しています。 + platform: YouTube + +- title: 確認が多すぎる失敗 + url: https://www.youtube.com/watch?v=CWKIpuc-Itg + thumbnail: https://i.ytimg.com/vi/CWKIpuc-Itg/hqdefault.jpg + publication_date: 2018/12/13 + description: + platform: YouTube + +- title: ユーザーへの問いかけ方の失敗 + url: https://www.youtube.com/watch?v=Wt3oaS9j3gk + thumbnail: https://i.ytimg.com/vi/Wt3oaS9j3gk/hqdefault.jpg + publication_date: 2018/12/13 + description: このビデオでは、ユーザーに問いかける際の話し方の失敗例を示しています。このケースでは「和食、中華、洋食のどれにしますか?」と聞けば、「和食にします」と答えてくれるでしょう。 + platform: YouTube + +- title: "Designing In-skill Purchasing: Persistent Salesman" + url: https://www.youtube.com/watch?v=VNtNbrvg6UU + thumbnail: https://i.ytimg.com/vi/VNtNbrvg6UU/hqdefault.jpg + publication_date: 2019/09/03 + description: Justin, role-playing as Alexa, demonstrates what it sounds like when a skill delivers upsell messages a little too persistently. Can you count the number of times Justin tries to sell Alison something? + platform: YouTube + +- title: "Designing In-skill Purchasing: Strong value proposition" + url: https://www.youtube.com/watch?v=Qkhh7sfWj9Y + thumbnail: https://i.ytimg.com/vi/Qkhh7sfWj9Y/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates an upsell with a strong, clear value proposition. Justin gives Alison enough information about what her purchase includes without being too wordy. + platform: YouTube + +- title: "Designing In-skill Purchasing: DO NOT overwhelm with choices" + url: https://www.youtube.com/watch?v=Zcp9cOWooZM + thumbnail: https://i.ytimg.com/vi/Zcp9cOWooZM/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates what upsells might sound like when they attempt to offer too many purchases in one message. By the time Justin is done speaking, can you recall what the first in-skill purchase he offered Alison was? + platform: YouTube + +- title: "Designing In-skill Purchasing: DO keep it simple" + url: https://www.youtube.com/watch?v=JbB8lCKKa94 + thumbnail: https://i.ytimg.com/vi/JbB8lCKKa94/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates how simple and concise an in-skill upsell message can be when it offers only one product. + platform: YouTube + +- title: "Designing In-skill Purchasing: DO NOT bait and switch" + url: https://www.youtube.com/watch?v=CcjygNnVneQ + thumbnail: https://i.ytimg.com/vi/CcjygNnVneQ/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates how disappointing it is when a skill offers something to a customer, but then tells them they must pay for it after they express interest in it. Did you also think Alison would be getting more trivia right away when she said "yes"? + platform: YouTube + +- title: "Designing In-skill Purchasing: Upsells, DO sell one relevant product" + url: https://www.youtube.com/watch?v=Su4gyTle6P8 + thumbnail: https://i.ytimg.com/vi/Su4gyTle6P8/hqdefault.jpg + publication_date: 2019/09/04 + description: "Justin, role-playing as Alexa, demonstrates what happens when a skill offers one in-skill purchase that is of the most relevance to the customer at a given time. Alison just finished playing a sports-themed daily game with a great score: How likely is she to purchase more content related to sports?" + platform: YouTube + +- title: "Designing In-skill Purchasing: DO NOT leave landmines" + url: https://www.youtube.com/watch?v=y7U6h8K3jK8 + thumbnail: https://i.ytimg.com/vi/y7U6h8K3jK8/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates a "landmine experience" in a skill. Justin offers Alison a list of options, but Alison doesn't know which selections will result in an upsell message. + platform: YouTube + +- title: "Designing In-skill Purchasing: Upsells, DO NOT use threats or negative consequences" + url: https://www.youtube.com/watch?v=gmhqiqvuVOs + thumbnail: https://i.ytimg.com/vi/gmhqiqvuVOs/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates how poorly an upsell that uses threats or negative consequences is likely to be received by a listener. Justin threatens Alison with a drop in rank to sell a pack of hints. How likely are you to respond to such threats? + platform: YouTube + +- title: "Designing In-skill Purchasing: Handling transitions, A happy path" + url: https://www.youtube.com/watch?v=drU_E-uDcFI + thumbnail: https://i.ytimg.com/vi/drU_E-uDcFI/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates a seamless transition from in-skill upsell to Amazon purchase flow and back to the skill. + platform: YouTube + +- title: "Designing In-skill Purchasing: DO NOT make the customer dig for their purchases" + url: https://www.youtube.com/watch?v=OFCU-Sbh9zI + thumbnail: https://i.ytimg.com/vi/OFCU-Sbh9zI/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates a skill that makes the customer work too hard to hear about what they've purchased. What if Alison had purchased 20 packs? She'll be there all day listening to Justin list them. + platform: YouTube + +- title: "Designing In-skill Purchasing: DO make it easy to find purchases" + url: https://www.youtube.com/watch?v=nr5XZZoeUoQ + thumbnail: https://i.ytimg.com/vi/nr5XZZoeUoQ/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates a scenario where a skill offers the customer their most recent purchase first, and then offers several more options at a time when the customer declines. + platform: YouTube + +- title: "Designing In-skill Purchasing: DO NOT spend a consumable without permission" + url: https://www.youtube.com/watch?v=32y3ZazHNEU + thumbnail: https://i.ytimg.com/vi/32y3ZazHNEU/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates how frustrating it is when a skill spends a consumable item that the customer paid for, without asking permission. How likely is Alison to trust that her purchases will be saved for exactly when she wants to use them in the future? Do you think she'll want to buy hints again? + platform: YouTube + +- title: "Designing In-skill Purchasing: DO ask for permission to spend a consumable" + url: https://www.youtube.com/watch?v=WRwykcVlxRY + thumbnail: https://i.ytimg.com/vi/WRwykcVlxRY/hqdefault.jpg + publication_date: 2019/09/04 + description: Justin, role-playing as Alexa, demonstrates how a skill might collect permission from a customer to spend a consumable. Justin is transparent with Alison about how many free and paid hints Alison has left, and asks explicitly for permission to spend a hint when Alison asks about them. + platform: YouTube + +- title: "re:Invent 2019 - Design an Alexa skill with in-skill purchasing" + url: https://www.twitch.tv/videos/543329179?filter=all&sort=time + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/844ebf28a60e3e621eb1_amazonalexa_32111041705_7179970786//thumb/thumb543329179-240x180.jpg + publication_date: 2020/01/28 + description: Justin, role-playing as Alexa, demonstrates how a skill might collect permission from a customer to spend a consumable. Justin is transparent with Alison about how many free and paid hints Alison has left, and asks explicitly for permission to spend a hint when Alison asks about them. + platform: Twitch + +- title: "Highlight: Design an Alexa Skill with In-Skill Purchasing with Alison Atwell Justin Jeffress" + url: https://www.twitch.tv/videos/510733821?filter=all&sort=time + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/1a4ba5a9a501fc209e5a_amazonalexa_71783617877_2467301192//thumb/thumb510733821-240x180.jpg + publication_date: 2019/11/20 + description: + platform: Twitch + +- title: "Highlight: In-Skill Purchasing Design with Alison Atwell Justin Jeffress" + url: https://www.twitch.tv/videos/510731578?filter=all&sort=time + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/cb509dc0b1df04fae7db_amazonalexa_47707446673_2885116801//thumb/thumb510731578-240x180.jpg + publication_date: 2019/11/20 + description: + platform: Twitch + +- title: "Voice-first Design: My Cactus with Alison Atwell and Justin Jeffress Episode 7" + url: https://www.twitch.tv/videos/823268971?collection=S81yydlkRBY-Pw + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/b5c081e082f2c0dd2185_amazonalexa_40785565854_1606931962//thumb/thumb0-240x180.jpg + publication_date: 2020/12/02 + description: + platform: Twitch + +- title: "Voice-first Design: My Cactus with Alison Atwell and Justin Jeffress Episode 8" + url: https://www.twitch.tv/videos/825511166?collection=S81yydlkRBY-Pw + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/4013d4fd5a8113de180c_amazonalexa_40813592766_1607106555//thumb/thumb0-240x180.jpg + publication_date: 2020/12/04 + description: + platform: Twitch + +- title: "Voice-first Design: My Cactus with Alison Atwell and Justin Jeffress Episode 9" + url: https://www.twitch.tv/videos/831262255?collection=S81yydlkRBY-Pw + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/b15cf65dbdcde511af9f_amazonalexa_40885759006_1607536852//thumb/thumb0-240x180.jpg + publication_date: 2020/12/09 + description: + platform: Twitch + +- title: "Voice-first Design: My Cactus with Alison Atwell and Justin Jeffress Episode 10" + url: https://www.twitch.tv/videos/833688320?collection=S81yydlkRBY-Pw + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/5359259bdc81a80481af_amazonalexa_40915881630_1607709620//thumb/thumb0-240x180.jpg + publication_date: 2020/12/11 + description: + platform: Twitch + +- title: "Voice-first Design: My Cactus with Alison Atwell, Joe Muoio, and Justin Jeffress Episode 11" + url: https://www.twitch.tv/videos/839522451?collection=S81yydlkRBY-Pw + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/d9faffaf1dd1abb0a754_amazonalexa_40976263006_1608141541//thumb/thumb0-240x180.jpg + publication_date: 2020/12/16 + description: + platform: Twitch + +- title: "Voice-first Design: Let's Play My Cactus with Justin, Joe Muoio and Alison Episode 12" + url: https://www.twitch.tv/videos/841792511?collection=S81yydlkRBY-Pw + thumbnail: https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/67bb4324629207888e54_amazonalexa_40998323166_1608314459//thumb/thumb0-240x180.jpg + publication_date: 2020/12/18 + description: + platform: Twitch diff --git a/_data/work-experience.yml b/_data/work-experience.yml new file mode 100644 index 0000000..c0536a9 --- /dev/null +++ b/_data/work-experience.yml @@ -0,0 +1,118 @@ +- company: Meta + title: Senior Developer Advocate + location: Seattle, Washington + duration: July 2022 - June 2023 + description: + - Led a team of 2 developer advocates supporting PyTorch initiatives. + - Drove strategic planning, content creation, public speaking, community outreach, and demand generation. + - Tripled advocacy reach by equipping and partnering with external community organizers. + - "Reached developers at scale through PyTorch 2.0 launch initiatives: live-stream and on-demand." + - Collaborated with external partners to create, launch, and evaluate 2 workshops with an average 4.7/5 rating. + - Established a content pipeline, and marketing promotion plan for feature releases. + technologies: + +- company: Amazon + title: Technical Project Manger + location: Seattle, Washington + duration: January 2022 - June 2022 + description: + - Supported the Alexa Science Team's goal to pilot and launch flagship Alexa Skills with external partners. + - Worked closely with the Business Development team to identify 30 potential partners. + - Defined the scoring rubric to determine pitch prioritization and pitched 15 partners in one-month. + - Led pitch meetings and coordinated with marketing and legal to secure partners. + - Established a catalog of potential partners for future projects. Directed a two-person team responsible for creating flagship partner skills in-house. + - Defined requirements and updated stakeholders weekly on progress. + + technologies: + +- company: Amazon + title: Senior Solutions Architect + location: Seattle, Washington + duration: January 2021 - December 2021 + description: + - Worked with 3 video partners to integrate Alexa into TV sets. + - Helped partners remove bottlenecks, adopt new features, and improve customer experience. + - Identified the root cause of a major session timeout, worked with partner to fix it, reducing lag 90%. + - Shared partner feedback with the product team to influence priorities and roadmap. + - Streamlined certification testing, increasing throughput, productivity, while reducing product delays. + - Mentored and prepared 5 colleagues to deliver presentations for Alexa Live. + technologies: + +- company: Amazon + title: Senior Developer Advocate + location: Seattle, Washington + duration: July 2017 - December 2020 + description: + - Authored 30 blogs, 4 training courses, and a white paper, generating thousands of engagement minutes. + - Published 5 Alexa sample skill projects on GitHub earning 1000s of stars and forks. + - Recruited and led the team, behind the AWS Alexa Skill Builders training course. + - Hosted 20 hackathons, driving feature adoption and leading to the publication of 100s of innovative skills. + - Delivered 100 talks and workshops, onboarding over 150k developers. Used third-party tools to rank feature requests, leading to the option of 5 community-driven features. + - Mentored and educated two new hires and guided them through their first projects. + - Worked with global teams to establish a localization strategy increasing productivity 70%. + - Gave five presentations in Japanese at Alexa events in Tokyo and Osaka + technologies: + +- company: Zoe Media Group + title: Senior Software Developer + location: Los Angeles, California + duration: April 2017 - July 2017 + description: + - Unified four services under single sign-on, reducing confusion, cutting support requests and boosting engagement. + - Built automation tools to aggregate and report sales revenue to stakeholders. + - Integrated Amazon Pay across all e-commerce platforms, increasing revenue streams 3x. + - Fixed a subscription bug and collaborated with billing to recover revenue. + technologies: + +- company: Booktrope + title: Senior Web Architect + location: Los Angeles, California + duration: September 2013 - May 2016 + description: + - Led Booktrope's R&D, developing and testing 90% of the software. + - Interviewed and mentored new hires, and implemented pair programming for onboarding. + - Built a system to track book rankings, optimize cover design, marketing, and author recruitment. + - Developed pricing automation for eBooks, streamlining promotions and contractual pricing. + technologies: + +- company: CrossLanguage + title: Japanese-English Dictionary Manager + location: Tokyo, Japan + duration: September 2012-May 2013 + description: + - Communicated exclusively in Japanese as the sole American employee. + - Maintained an improved Japanese-English translation engine's rules. + - Automated translation tasks, boosting team efficiency through tool creation. + - Instructed colleagues on automation tools for better workflow. + technologies: + +- company: CrossLanguage + title: Japanese-English Dictionary Intern + location: Tokyo, Japan + duration: June 2012-August 2012 + description: + - Hired as an unpaid intern due to visa limits, completing the hiring process in half the time. + - Added 3,000+ words to the Japanese-English dictionary in record time. + - Built a web spider in 1.5 days, originally scheduled for two weeks. + technologies: + +- company: CrownPeak + title: Senior Developer + location: Los Angeles, CA + duration: March 2009-August 2011 + description: + - Led the new C# API development project. + - Created tools to analyze template code and maintain API documentation, enhancing workflow. + - Bridged communication between Engineering and Production for API enhancements. + - Educated Production to use the new API and made improvements based on feedback. + technologies: + +- company: CrownPeak + title: Associate Web Application Engineer + location: Los Angeles, CA + duration: September 2006-February 2009 + description: + - Managed client projects, solving CMS, SEO, Data Architecture, backend and front end issues. + - Developed a widely adopted AJAX event calendar. + - Owned API documentation, updating missing functions, improving internal docs alongside Engineering. + technologies: diff --git a/_includes/footer.html b/_includes/footer.html index 72239f1..dd0b7f0 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -14,17 +14,15 @@ diff --git a/_includes/header.html b/_includes/header.html index b3f86db..1eb45a1 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -12,12 +12,15 @@ -
- {% for my_page in site.pages %} - {% if my_page.title %} - {{ my_page.title }} + {% assign startsWith = '/ja-JP/'' %} + {% assign my_pages = site.pages | sort:"n" %} + {% for my_page in my_pages %} + {% assign checkArray = my_page.url | split:startsWith %} + {% if checkArray[0] == '' %} + {% continue %} {% endif %} + {{ my_page.title }} {% endfor %}
diff --git a/_includes/icon-gmail.html b/_includes/icon-gmail.html new file mode 100644 index 0000000..f0a4935 --- /dev/null +++ b/_includes/icon-gmail.html @@ -0,0 +1,2 @@ +{% include icon-gmail.svg %} +{{ site.email }} diff --git a/_includes/icon-gmail.svg b/_includes/icon-gmail.svg new file mode 100644 index 0000000..9db4188 --- /dev/null +++ b/_includes/icon-gmail.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/_includes/icon-linkedin.html b/_includes/icon-linkedin.html new file mode 100644 index 0000000..f07ba0d --- /dev/null +++ b/_includes/icon-linkedin.html @@ -0,0 +1,4 @@ + + + Justin Jeffress + \ No newline at end of file diff --git a/_includes/icon-pdf.html b/_includes/icon-pdf.html new file mode 100644 index 0000000..3165173 --- /dev/null +++ b/_includes/icon-pdf.html @@ -0,0 +1 @@ +Adobe PDF icon \ No newline at end of file diff --git a/_includes/icon-twitter.html b/_includes/icon-twitter.html deleted file mode 100644 index e623dbd..0000000 --- a/_includes/icon-twitter.html +++ /dev/null @@ -1 +0,0 @@ -{{ include.username }} diff --git a/_includes/icon-twitter.svg b/_includes/icon-twitter.svg deleted file mode 100644 index dcf660e..0000000 --- a/_includes/icon-twitter.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_includes/icon-x.html b/_includes/icon-x.html new file mode 100644 index 0000000..2ddcd40 --- /dev/null +++ b/_includes/icon-x.html @@ -0,0 +1 @@ +{% include icon-x.svg %}{{ include.username }} diff --git a/_includes/icon-x.svg b/_includes/icon-x.svg new file mode 100644 index 0000000..437e2bf --- /dev/null +++ b/_includes/icon-x.svg @@ -0,0 +1,3 @@ + + + diff --git a/_includes/profile.html b/_includes/profile.html new file mode 100644 index 0000000..1f69007 --- /dev/null +++ b/_includes/profile.html @@ -0,0 +1,44 @@ +{% assign startsWith = '/ja-JP/'' %} +{% assign checkArray = page.url | split:startsWith %} + +
+ +
+ +
+

+ {% include icon-gmail.html %} +

+

+ {% include icon-x.html %} sleepydeveloper + +

+

+ {% include icon-linkedin.html %} +

+ + {% if checkArray[0] != '' %} +

+ {% include icon-pdf.html %} + Download Resume +

+ {% else %} +

+ {% include icon-pdf.html %} + 履歴書 + +

+

+ {% include icon-pdf.html %} + 職務経歴書 +

+ {% endif %} + +
+ +{% if checkArray[0] != '' %} +🇯🇵日本語はこちら
+{% else %} +🇺🇸English +{% endif %} diff --git a/_includes/resume.html b/_includes/resume.html new file mode 100644 index 0000000..dc86614 --- /dev/null +++ b/_includes/resume.html @@ -0,0 +1,7 @@ +
+ {% include_relative _includes/profile.html %} + {% include_relative _resume/executive-summary.html executive_summary=site.data.executive-summary.executive_summary %} + {% include_relative _resume/work-experience.html work_experience = site.data.work-experience %} + {% include_relative _resume/technical-skills.html %} + {% include_relative _resume/education-and-accolades.html education_and_accolades = site.data.education-and-accolades %} +
diff --git a/_includes/side-project.html b/_includes/side-project.html new file mode 100644 index 0000000..e262b74 --- /dev/null +++ b/_includes/side-project.html @@ -0,0 +1,10 @@ +
  • + {{ include.title }} {% if include.link %} + (see on github) + {% else %} + (not yet released to github) + {% endif %} +
    + {{ include.description }} ({{ include.technologies }}) +
    +
  • diff --git a/_includes/work-experience.html b/_includes/work-experience.html new file mode 100644 index 0000000..904f996 --- /dev/null +++ b/_includes/work-experience.html @@ -0,0 +1,12 @@ +
  • + {{ include.work_experience.title }}, {{ include.work_experience.company }}, {{ include.work_experience.location }} +
    {{ include.work_experience.duration }}
    +
    +
      + {% for description in include.work_experience.description %} +
    • {{ description}}
    • + {% endfor %} +
    + ({{ include.work_experience.technologies }}) +
    +
  • diff --git a/_layouts/resume.html b/_layouts/resume.html new file mode 100644 index 0000000..92372b1 --- /dev/null +++ b/_layouts/resume.html @@ -0,0 +1,11 @@ + + + {% include head.html %} + +
    +
    + {{ content }} +
    +
    + + diff --git a/_posts/2017-02-28-hello-world-first-post.md b/_posts/2017-02-28-hello-world-first-post.md new file mode 100644 index 0000000..87820d2 --- /dev/null +++ b/_posts/2017-02-28-hello-world-first-post.md @@ -0,0 +1,30 @@ +--- +layout: post +title: "Hello World!" +date: 2017-02-28 09:00:00 -0800 +categories: sleepydeveloper +--- + +Hello everyone welcome to SleepyDeveloper! + +This my obligary Hello World (first post) using Jekyll. + +I came up with the name SleepyDeveloper back in 2008 when I published my first +iOS app, a simple tip calculator on the AppStore. + +Since I was working full time, I was losing sleep working on my side projects +hence the name SleepyDeveloper. I was delighted when the domain was available! + +Nine years later, I've decided to turn SleepyDeveloper into a developer focused +blog and place for [tutorials](https://github.com/sleepydeveloper/tutorials). + +While training people throughout my career and tutoring people in college, I +came to realize that teaching is a great way to enforce my own knowledge. + +I will be announcing my new tutorial videos here as well as posting about +development and technology. + + +Thanks, + +Justin diff --git a/_posts/2017-03-01-alexa-skills-kit-local-debugging.md b/_posts/2017-03-01-alexa-skills-kit-local-debugging.md new file mode 100644 index 0000000..4c29b9d --- /dev/null +++ b/_posts/2017-03-01-alexa-skills-kit-local-debugging.md @@ -0,0 +1,31 @@ +--- +layout: post +title: Alexa Skills Kit Local Debugging +date: 2017-03-01 00:00:00 -0800 +categories: tutorials alexa-skills-kit +--- + +Today I'm proud to announce my first set of video tutorials have been uploaded to +YouTube!!! I recently got into **Alexa Skills Kit** and got tired of uploading my +zipped source files to **Lambda** every time I wanted to iterate changes. I did a +search and found an article on how to set up debugging locally, but it was long, +disjointed and at times off-topic. + +I thought of a way to trim it down into a cohesive step 1 to done process. I +split it into four videos and narrate every step of the way. The videos are +included in a playlist on the +[SleepyDeveloper Tutorials Channel](https://www.youtube.com/channel/UCJhk5SbvNHvfzskDhtZf73g). + +**Click the Video thumbnail to watch**: +[Debugging Alexa Skills (AWS Lambda Code) Locally](https://www.youtube.com/watch?v=pKtSe-2HlZc&list=PLEQOwSD1-CDi_DC6UOntOexgHKjxndlL-) + +[![YouTube link for Alexa Skills Kit Local Debugging ](http://img.youtube.com/vi/pKtSe-2HlZc/0.jpg)](https://www.youtube.com/watch?v=pKtSe-2HlZc&list=PLEQOwSD1-CDi_DC6UOntOexgHKjxndlL-) + +Check the +[SleepyDeveloper Tutorials](https://github.com/sleepydeveloper/tutorials) +repository for the necessary code to add to your project. All future tutorials +will be added to this repository. + +I'm not sure how regularly I will upload videos, but I don't plan to stop here. +I have plenty of more ideas stashed away. If I have time, I would like to re-dub +the tutorials into Japanese. diff --git a/_posts/2017-03-08-visiting-old-friends.md b/_posts/2017-03-08-visiting-old-friends.md new file mode 100644 index 0000000..bb8bf83 --- /dev/null +++ b/_posts/2017-03-08-visiting-old-friends.md @@ -0,0 +1,32 @@ +--- +layout: post +title: Visiting Old Friends +date: 2017-03-08 19:30:00 -0800 +categories: misc +--- + +Today was bittersweet. I paid a visit to CrownPeak where I worked a month shy of +five years. It was my first job straight out of college. I learned so much from +a team of wonderfully skilled and nice people. It was a wonderful place to work. +They sold the company in winter 2015. On March 15th, the Los Angeles +office will close. Many of my colleagues from the Engineering Team opted not to +move to the new office out of state. I knew it was my last chance to see +everyone all at the same place before they move onto different things. + +Although I left over 5 years ago (time files!), it still felt like home. There +were a few new faces, but the core engineering team that raised me was still +there. A lot of the new faces were from CSUN my alma mater. While I was +employed at CrownPeak, I suggested that we participate in the CSUN Honor's Co-op +to hire fresh college graduates. While I was employed there, we hired two developers +through the program. I was happy to see that they continued to use the program +and it made me proud to be a CSUN graduate. + +It was great to catch up with everyone and to learn about the new projects +they had built over the time I was gone. I was happy to see that they had moved +from silverlight to angular.js for the front-end. + +Sadly, I didn't get to meet everyone that I had once worked with, since several +were out of state in the new office. + +I hope everyone at CrownPeak the best and may you all land on you feet and move on +to something great! diff --git a/_resume/contact-list.html b/_resume/contact-list.html new file mode 100644 index 0000000..a9e0f4a --- /dev/null +++ b/_resume/contact-list.html @@ -0,0 +1,17 @@ +
    + +
    +
    + +
    diff --git a/_resume/education-and-accolades.html b/_resume/education-and-accolades.html new file mode 100644 index 0000000..1f6e5f4 --- /dev/null +++ b/_resume/education-and-accolades.html @@ -0,0 +1,13 @@ +

    Education and Accolades

    +

    + diff --git a/_resume/executive-summary.html b/_resume/executive-summary.html new file mode 100644 index 0000000..5619792 --- /dev/null +++ b/_resume/executive-summary.html @@ -0,0 +1,2 @@ +

    Executive Summary

    +

    {{ include.executive_summary }}

    \ No newline at end of file diff --git a/_resume/side-projects.html b/_resume/side-projects.html new file mode 100644 index 0000000..a702e63 --- /dev/null +++ b/_resume/side-projects.html @@ -0,0 +1,12 @@ +

    Side Projects

    +

    + diff --git a/_resume/technical-skills.html b/_resume/technical-skills.html new file mode 100644 index 0000000..f848be3 --- /dev/null +++ b/_resume/technical-skills.html @@ -0,0 +1,11 @@ +

    Technical Skills

    +

    + diff --git a/_resume/work-experience.html b/_resume/work-experience.html new file mode 100644 index 0000000..6e2b994 --- /dev/null +++ b/_resume/work-experience.html @@ -0,0 +1,20 @@ +

    Experience

    +

    + diff --git a/_sass/_layout.scss b/_sass/_layout.scss index 7bc246a..1c6b504 100644 --- a/_sass/_layout.scss +++ b/_sass/_layout.scss @@ -27,6 +27,7 @@ .site-nav { float: right; line-height: 56px; + z-index: 10; .menu-icon { display: none; @@ -175,13 +176,24 @@ font-size: 20px; } -.post-list { +.post-list, .video-list { margin-left: 0; list-style: none; > li { margin-bottom: $spacing-unit; } + + img { + float:left; + margin:5px; + } +} + +.video-list { + > li { + height: 265px; + } } .post-meta { @@ -195,7 +207,6 @@ } - /** * Posts */ @@ -222,6 +233,22 @@ margin-top: 10px; } +.side-project +{ + .heading { + strong { + font-size: 24px; + } + } + .summary { + padding-top: 20px; + } + + .contents { + padding-top: 10px; + } +} + .post-content { margin-bottom: $spacing-unit; diff --git a/_tutorials/tutorial-list.html b/_tutorials/tutorial-list.html new file mode 100644 index 0000000..13478e5 --- /dev/null +++ b/_tutorials/tutorial-list.html @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/_works/blog-posts.html b/_works/blog-posts.html new file mode 100644 index 0000000..7bd1d63 --- /dev/null +++ b/_works/blog-posts.html @@ -0,0 +1,16 @@ +

    Blog Posts

    +

    + This list of blog posts I wrote during my time at Amazon Alexa is mostly complete. When we updated + blogging software, a few of my posts went missing from my + author index page. + I continue to update this page as I track the missing posts down. +

    +

    + \ No newline at end of file diff --git a/about.md b/about.md new file mode 100644 index 0000000..6a7c327 --- /dev/null +++ b/about.md @@ -0,0 +1,15 @@ +--- +layout: default +title: About +n: 5 +--- + +{% include_relative _includes/profile.html %} + +Hello! + +I'm a software developer with 17 years work experience. I've had the opportunity to work +at a startup - **Booktrope**, at **Zoe Media Group** - Hollywood fashion consultant and +reality TV star Rachel Zoe's company, and very well known and respected corporations +**Amazon** and **Meta**. I also spent two years in Japan! It was always my dream to live +in a foreign country. diff --git a/assets/justin-jeffress-resume-ja-JP.pdf b/assets/justin-jeffress-resume-ja-JP.pdf new file mode 100644 index 0000000..4b0aceb Binary files /dev/null and b/assets/justin-jeffress-resume-ja-JP.pdf differ diff --git a/assets/justin-jeffress-resume.pdf b/assets/justin-jeffress-resume.pdf new file mode 100644 index 0000000..5de7587 Binary files /dev/null and b/assets/justin-jeffress-resume.pdf differ diff --git a/assets/justin-jeffress-work-history-ja-JP.pdf b/assets/justin-jeffress-work-history-ja-JP.pdf new file mode 100644 index 0000000..03c2ed1 Binary files /dev/null and b/assets/justin-jeffress-work-history-ja-JP.pdf differ diff --git a/assets/linkedin.png b/assets/linkedin.png new file mode 100755 index 0000000..bac7633 Binary files /dev/null and b/assets/linkedin.png differ diff --git a/assets/profile.jpg b/assets/profile.jpg new file mode 100644 index 0000000..600d628 Binary files /dev/null and b/assets/profile.jpg differ diff --git a/blog_posts.html b/blog_posts.html new file mode 100644 index 0000000..4273da8 --- /dev/null +++ b/blog_posts.html @@ -0,0 +1,9 @@ +--- +layout: default +title: Blog Posts +n: 2 +--- +
    + {% include_relative _works/blog-posts.html blog_posts=site.data.blog-posts %} +
    + diff --git a/code-projects.html b/code-projects.html new file mode 100644 index 0000000..30a3fb8 --- /dev/null +++ b/code-projects.html @@ -0,0 +1,18 @@ +--- +layout: default +title: Code Projects +n: 4 +--- +

    Code Projects

    +

    +Below you will find the code projects I created during my tenure at Amazon and Meta. +

    +

    + \ No newline at end of file diff --git a/index.html b/index.html index 7658fb6..8ca29a6 100644 --- a/index.html +++ b/index.html @@ -2,357 +2,4 @@ layout: default --- -
    -

    Technical Skills

    -

    - -

    Experience

    -

    - - -

    Education

    -

    - - -

    Accolades

    -

    - - -

    Side Projects

    -

    - - -

    References

    -

    -

    - Email addresses have been obfuscated to prevent email harvesters from wreaking - havoc. -

    - -
    +{% include_relative _includes/resume.html %} diff --git a/ja-JP/resume.html b/ja-JP/resume.html new file mode 100644 index 0000000..d3a1c51 --- /dev/null +++ b/ja-JP/resume.html @@ -0,0 +1,53 @@ +--- +layout: default +title: Resume +n: 1 +--- + +
    + {% include profile.html %} + 職務経歴書
    + +

    Resume

    + + 令和7年5月15日
    +
    + 【基本情報】
    + 氏名:Justin Jeffress (ジャスティン・ジェフレス)
    + 生年月日:1983年11月07日(満41歳)
    + メール:justin.jeffress@gmail.com
    +
    + 【学歴】
    + 2001年8月 California State University, Northridge (カリフォルニア州立大学ノースリッジ) コンピュータサイエンス学部 入学
    + 2006年5月 同大学 Bachelor of Science in Computer Science (コンピュータサイエンス学士号) 取得、卒業
    + 2011年9月 Inter-University Center for Japanese Language Studies, Yokohama (アメリカ・カナダ大学連合日本研究センター、横浜、スタンフォード大学運営) 日本語プログラム 入学
    + 2012年6月 同センター 日本語プログラム 修了
    + 2023年9月 Puget Sound Bible Institute (ピュージェットサウンドバイブルインスティテュート) 聖書研究プログラム 入学
    + 2025年6月 同校 Bible Studies Degree (聖書研究学位) 取得予定
    +
    + 【職歴】
    + 2006年9月 CrownPeak (クラウンピーク) Associate Web Application Engineerとして入社(Client Services部)
    + 2009年3月 同社 Senior Developerとして異動(Engineering Team)
    + 2011年8月 同社 退社
    + 2012年6月 Cross Language (クロスランゲージ) インターンとして入社(開発部)
    + 2012年9月 同社 正社員として採用(ソフトウェアエンジニア、ワークビザ取得)
    + 2013年6月 同社 退社
    + 2013年9月 Booktrope (ブックトロープ) リードソフトウェアエンジニアとして入社
    + 2016年5月 同社 退社
    + 2017年4月 Zoe Media Group (ゾーイメディアグループ) シニアソフトウェアエンジニアとして入社(開発部)
    + 2017年7月 同社 退社
    + 2017年7月 Amazon (アマゾン) Alexa Skills Marketing シニアデベロッパー・アドボカシーとして入社(シアトル本社)
    + 2021年1月 同社 Alexa Smart Home シニアソリューションズアーキテクトへ職務変更
    + 2022年1月 同社 Alexa Science テクニカルプロジェクトマネージャーへ職務変更
    + 2022年6月 同社 退社
    + 2022年7月 Meta (メタ) リードソフトウェアエンジニアとして入社(オープンソースソフトウェアチーム)
    + 2023年6月 同社 退社
    + 以上
    +
    + 【資格】
    + 2016年11月 日本漢字能力検定3級 取得
    + 2022年10月 AWS Certified Alexa Skill Builder - Specialty (AWS認定Alexaスキルビルダー - スペシャリティ) 取得
    +
    + 【主なテクニカルスキル】
    + React, Next.js, NodeJS, Python, AWS (Lambda, S3, DynamoDB, EC2, API Gateway, CloudFormation), Alexa, JavaScript, SQL, PostgreSQL, MySQL
    +
    \ No newline at end of file diff --git a/ja-JP/work-history.html b/ja-JP/work-history.html new file mode 100644 index 0000000..f5a95e4 --- /dev/null +++ b/ja-JP/work-history.html @@ -0,0 +1,152 @@ +--- +layout: default +title: Work History +n: 1 +--- + +
    + {% include profile.html %} + 履歴書
    +

    Work History

    + + 国籍:米国
    +
    + 学歴:California State University, Northridge Bachelor of Science in Computer Science
    + Stanford Inter-University Center for Japanese Language Studies, Yokohama
    + Puget Sound Bible Institute 聖書研究学位
    +
    + 言語:英語-母国語レベル、日本語-ビジネスレベル
    +
    + Contact: justin.jeffress@gmail.com
    +
    + 【サマリー】
    + 私は、人の体験とテクノロジーが重なるところで、役に立つソフトウェアを作ることに情熱を持っています。日本語と日本文化への理解を活かして、新しい価値を生み出すことを目指しています。フロントエンドとバックエンドの開発、スケーラブルなシステム設計、プロダクトの管理など、幅広い経験があります。日々の生活をよりよくするようなソリューションをつくることが私の目標です。また、教えることやソフトウェアの導入を進めてきた経験から、文化や技術の違いをつなぐ役割も得意としています。ユーザーにとって意味のあるプロジェクトを通じて、日本がソフトウェアやテクノロジーの分野で世界をリードできるよう貢献したいと考えています。
    +
    + 【スキル】
    + Python, PyTorch, React, Next.js, Node.js, Ruby/Ruby on Rails, PHP/Laravel, C#/.Net, Swift/Objective-C, Bash, C++, AWS, Lamba, S3, DynamoDB, EC2, API Gateway, CloudWatch, IAM, CloudFormation, Heroku, HTML, CSS, WordPress, Selenium
    +
    + 【自己PR】
    + スタンフォード大学運営の日本語プログラムと日本での学習で培った日本語力と文化理解を活かし、技術と文化を融合したソリューション開発に貢献します。日本企業での勤務経験とAmazonでの日本語開発者支援を通じて、言語や文化の壁を越えたプロジェクト推進力を磨きました。ソフトウェア開発およびプロダクト管理の専門性を発揮し、貴社のグローバルな技術革新を支えます。
    +
    + 【職歴】
    + 2022年7月~2023年6月
    + Meta (米国本社、ソーシャルメディア・テクノロジー企業) + +
    + 2017年7月~2022年6月
    + Amazon (米国本社シアトル、クラウド・音声テクノロジー企業)
    + + シニアデベロッパー・アドボカシー(Alexa Skills Marketing、2017年7月~2020年12月) + + シニアソリューションズアーキテクト(Alexa Smart Home、2021年1月~2021年12月) + + + テクニカルプロジェクトマネージャー(Alexa Science、2022年1月~2022年6月) + + + 2017年4月~2017年7月
    + Zoe Media Group (米国本社、メディアテクノロジー企業)
    + シニアソフトウェアエンジニア(開発部) + + + 2013年9月~2016年5月
    + Booktrope (米国本社、出版業界向けテクノロジースタートアップ)
    + リードソフトウェアエンジニア + + + 2012年6月~2013年6月
    + クロスランゲージ (日本本社、言語処理テクノロジー企業)
    + インターン(2012年6月~2012年8月) + + ソフトウェアエンジニア(2012年9月~2013年6月) + + + 2006年9月~2011年8月
    + CrownPeak (米国本社、ウェブコンテンツ管理システム企業)
    + Associate Web Application Engineer(2006年9月~2009年、Client Services部 + + Senior Developer(2009年~2011年、Engineering Team) + + + 【学歴】
    + 2001年8月~2006年5月
    + California State University, Northridge
    + Bachelor of Science in Computer Science (コンピュータサイエンス学士号) 取得
    + Python, Java, C/C++ を学び、アルゴリズムとチーム開発で基盤を構築。
    +
    + 2011年9月~2012年6月
    + Inter-University Center for Japanese Language Studies, Yokohama
    + スタンフォード大学運営の日本語プログラムを修了。
    + ビジネスレベルの日本語力(読み書き・会話)を習得。現在、漢字能力検定準2級を準備中。
    +
    + 2023年9月~2025年6月(卒業予定)
    + Puget Sound Bible Institute
    + Bible Studies Degree (聖書研究学位) 取得予定。
    + 倫理的思考とコミュニティリーダーシップを培い、Developer Advocacy に活かす。
    +
    + 【資格】
    + 2016年11月 日本漢字能力検定3級:アメリカ人として合格率50%以下の試験を突破。日本語の漢字読解・記述能力を証明。
    + 2022年10月 AWS Certified Alexa Skill Builder - Specialty:音声技術の専門知識を証明。
    +
    \ No newline at end of file diff --git a/portfolio.html b/portfolio.html new file mode 100644 index 0000000..e69de29 diff --git a/resume.html b/resume.html new file mode 100644 index 0000000..fb49ec6 --- /dev/null +++ b/resume.html @@ -0,0 +1,7 @@ +--- +layout: default +title: Resume +n: 0 +--- + +{% include_relative _includes/resume.html %} diff --git a/tutorials.html b/tutorials.html new file mode 100644 index 0000000..f308d30 --- /dev/null +++ b/tutorials.html @@ -0,0 +1,12 @@ +--- +layout: default +title: Tutorials +n: 3 +--- +

    Tutorials

    +

    + Below are the tutorials I built during my tenure at Amazon. Designing for Conversation + was the first time I collaborated with an Instructional Designer. It was later localized into Japanese. +

    +

    +{% include_relative _tutorials/tutorial-list.html tutorials = site.data.tutorials %} \ No newline at end of file diff --git a/videos.html b/videos.html new file mode 100644 index 0000000..187d3f0 --- /dev/null +++ b/videos.html @@ -0,0 +1,25 @@ +--- +layout: default +title: Videos +n: 1 +--- +

    Videos

    +

    + Here's a sampling of video moments captured throughout my career. From quirky one-minute shorts + demonstrating what not to do to 1-hour long technical deep dives showing my versitility as a + storyteller, and educator. I wrote and directed the shorts that I don't appear in. I'm most proud + of my appearance on the Alexa Dojo, where + I was able to use my Japanese skills. +

    +

    + \ No newline at end of file