🐦 Twitter Post Details

Viewing enriched Twitter post

@AndrewYNg

New course: Spec-Driven Development with Coding Agents, built in partnership with @jetbrains, and taught by @paulweveritt. Vibe coding is fast, but often produces code that doesn't match what you asked for. This short course teaches you spec-driven development: write a detailed spec defining what to build, and work with your coding agent to implement it. Many of the best developers already build this way. A spec lets you control large code changes with a few words, preserve context across agent sessions, and stay in control as your project grows in complexity. Skills you'll gain: - Write a detailed specification to define your mission, tech stack, and roadmap, giving your agent the context it needs from the start - Plan, implement, and validate features in iterative loops using a spec as your agent's guide - Apply the same repeatable workflow to both new and legacy codebases - Package your workflow into a portable agent skill that works across agents and IDEs Join and write specs that keep your coding agent on track! https://t.co/hI4GwuvhtN

📊 Media Metadata

{
  "media": [
    {
      "url": "https://video.twimg.com/amplify_video/2044449609343528960/vid/avc1/1920x1080/d_OjMFuqae0xhdAO.mp4?tag=21",
      "type": "video"
    }
  ],
  "processed_at": "2026-04-15T16:21:42.004520",
  "pipeline_version": "2.0"
}

🔧 Raw API Response

{
  "type": "tweet",
  "id": "2044449830605582629",
  "url": "https://x.com/AndrewYNg/status/2044449830605582629",
  "twitterUrl": "https://twitter.com/AndrewYNg/status/2044449830605582629",
  "text": "New course: Spec-Driven Development with Coding Agents, built in partnership with @jetbrains, and taught by @paulweveritt.\n\nVibe coding is fast, but often produces code that doesn't match what you asked for. This short course teaches you spec-driven development: write a detailed spec defining what to build, and work with your coding agent to implement it. Many of the best developers already build this way.\n\nA spec lets you control large code changes with a few words, preserve context across agent sessions, and stay in control as your project grows in complexity.\n\nSkills you'll gain:\n- Write a detailed specification to define your mission, tech stack, and roadmap, giving your agent the context it needs from the start\n- Plan, implement, and validate features in iterative loops using a spec as your agent's guide\n- Apply the same repeatable workflow to both new and legacy codebases\n- Package your workflow into a portable agent skill that works across agents and IDEs\n\nJoin and write specs that keep your coding agent on track!\nhttps://t.co/hI4GwuvhtN",
  "source": "Twitter for iPhone",
  "retweetCount": 2,
  "replyCount": 4,
  "likeCount": 26,
  "quoteCount": 0,
  "viewCount": 1387,
  "createdAt": "Wed Apr 15 16:16:38 +0000 2026",
  "lang": "en",
  "bookmarkCount": 26,
  "isReply": false,
  "inReplyToId": null,
  "conversationId": "2044449830605582629",
  "displayTextRange": [
    0,
    279
  ],
  "inReplyToUserId": null,
  "inReplyToUsername": null,
  "author": {
    "type": "user",
    "userName": "AndrewYNg",
    "url": "https://x.com/AndrewYNg",
    "twitterUrl": "https://twitter.com/AndrewYNg",
    "id": "216939636",
    "name": "Andrew Ng",
    "isVerified": false,
    "isBlueVerified": true,
    "verifiedType": null,
    "profilePicture": "https://pbs.twimg.com/profile_images/733174243714682880/oyG30NEH_normal.jpg",
    "coverPicture": "https://pbs.twimg.com/profile_banners/216939636/1483126470",
    "description": "",
    "location": "Palo Alto, CA",
    "followers": 1459268,
    "following": 1067,
    "status": "",
    "canDm": false,
    "canMediaTag": true,
    "createdAt": "Thu Nov 18 03:39:11 +0000 2010",
    "entities": {
      "description": {
        "urls": []
      },
      "url": {}
    },
    "fastFollowersCount": 0,
    "favouritesCount": 1737,
    "hasCustomTimelines": true,
    "isTranslator": false,
    "mediaCount": 459,
    "statusesCount": 1993,
    "withheldInCountries": [],
    "affiliatesHighlightedLabel": {},
    "possiblySensitive": false,
    "pinnedTweetIds": [
      "2008956639894786402"
    ],
    "profile_bio": {
      "description": "Co-Founder of Coursera; Stanford CS adjunct faculty. Former head of Baidu AI Group/Google Brain. #ai #machinelearning, #deeplearning #MOOCs",
      "entities": {
        "description": {
          "hashtags": [
            {
              "indices": [
                97,
                100
              ],
              "text": "ai"
            },
            {
              "indices": [
                101,
                117
              ],
              "text": "machinelearning"
            },
            {
              "indices": [
                119,
                132
              ],
              "text": "deeplearning"
            },
            {
              "indices": [
                133,
                139
              ],
              "text": "MOOCs"
            }
          ],
          "symbols": [],
          "urls": [],
          "user_mentions": []
        },
        "url": {
          "urls": [
            {
              "display_url": "andrewng.org",
              "expanded_url": "http://www.andrewng.org",
              "indices": [
                0,
                23
              ],
              "url": "https://t.co/XidcMETENd"
            }
          ]
        }
      }
    },
    "isAutomated": false,
    "automatedBy": null
  },
  "extendedEntities": {
    "media": [
      {
        "additional_media_info": {
          "monetizable": true
        },
        "allow_download_status": {
          "allow_download": true
        },
        "display_url": "pic.twitter.com/M9zaNg2aTb",
        "expanded_url": "https://twitter.com/AndrewYNg/status/2044449830605582629/video/1",
        "ext_media_availability": {
          "status": "Available"
        },
        "id_str": "2044449609343528960",
        "indices": [
          280,
          303
        ],
        "media_key": "13_2044449609343528960",
        "media_results": {
          "id": "QXBpTWVkaWFSZXN1bHRzOgwABAoAARxfWBZ2G3AAAAA=",
          "result": {
            "__typename": "ApiMedia",
            "id": "QXBpTWVkaWE6DAAECgABHF9YFnYbcAAAAA==",
            "media_key": "13_2044449609343528960"
          }
        },
        "media_url_https": "https://pbs.twimg.com/amplify_video_thumb/2044449609343528960/img/xGVMtqHreRMNO5VT.jpg",
        "original_info": {
          "focus_rects": [],
          "height": 1080,
          "width": 1920
        },
        "sizes": {
          "large": {
            "h": 1080,
            "w": 1920
          }
        },
        "type": "video",
        "url": "https://t.co/M9zaNg2aTb",
        "video_info": {
          "aspect_ratio": [
            16,
            9
          ],
          "duration_millis": 171471,
          "variants": [
            {
              "content_type": "application/x-mpegURL",
              "url": "https://video.twimg.com/amplify_video/2044449609343528960/pl/lHDrCe7vr588Leb4.m3u8?tag=21"
            },
            {
              "bitrate": 256000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2044449609343528960/vid/avc1/480x270/zZxNTPQdjKhNx7Gi.mp4?tag=21"
            },
            {
              "bitrate": 832000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2044449609343528960/vid/avc1/640x360/FN9kpekmnW0Zg3hl.mp4?tag=21"
            },
            {
              "bitrate": 2176000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2044449609343528960/vid/avc1/1280x720/8z_zKypHPyQOqeeU.mp4?tag=21"
            },
            {
              "bitrate": 10368000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2044449609343528960/vid/avc1/1920x1080/d_OjMFuqae0xhdAO.mp4?tag=21"
            }
          ]
        }
      }
    ]
  },
  "card": null,
  "place": {},
  "entities": {
    "hashtags": [],
    "symbols": [],
    "timestamps": [],
    "urls": [
      {
        "display_url": "deeplearning.ai/short-courses/…",
        "expanded_url": "https://www.deeplearning.ai/short-courses/spec-driven-development",
        "indices": [
          1037,
          1060
        ],
        "url": "https://t.co/hI4GwuvhtN"
      }
    ],
    "user_mentions": [
      {
        "id_str": "14146389",
        "indices": [
          82,
          92
        ],
        "name": "JetBrains",
        "screen_name": "jetbrains"
      },
      {
        "id_str": "80106776",
        "indices": [
          108,
          121
        ],
        "name": "Paul Everitt | @pauleveritt@fosstodon.org",
        "screen_name": "paulweveritt"
      }
    ]
  },
  "quoted_tweet": null,
  "retweeted_tweet": null,
  "isLimitedReply": false,
  "communityInfo": null,
  "article": null
}