Startup Engineering

Brought by: Coursera

Overview

Spiritual sequel to Peter Thiel's CS183 course on startups. Bridges the gap between academic computer science and production software engineering. Fast-paced introduction to key tools and techniques (command line, dotfiles, text editor, distributed version control, debugging, testing, documentation, reading code, deployments), featuring guest appearances by senior engineers from successful startups and large-scale academic projects. Over the course of the class, students will build a command line application, expose it as a web service, and then link other students' applications and services together to build an HTML5 mobile app. General principles are illustrated through modern Javascript and the latest web technologies, including Node, Backbone, Coffeescript, Bootstrap, Git, and Github. 

Syllabus

The syllabus is optimized to enable students to iterate on their final projects as soon as possible, with technical material in the first half of the class and entrepreneurial considerations in the second half.

  • Introduction and Quickstart
  • Tools: VMs, IAAS/PAAS, Unix Command Line, Text Editors, DCVS
  • Frontend: HTML/CSS/JS, Wireframing, Market Research
  • Backend: SSJS, Databases, Frameworks, Data Pipelines
  • APIs: Client-side templating, HTTP, SOA/REST/JSON, API as BizDev
  • Devops: Testing, Deployment, CI, Monitoring, Performance
  • Dev Scaling: DRY, Reading/Reviewing/Documenting Code, Parallelizing
  • Founding: Conception, Composition, Capitalization
  • Business Scaling: Promotion, CAC/LTV/Funnel, Regulation, Accounting
  • Summary and Demo Week

Taught by

Balaji S. Srinivasan and Vijay Pande

Startup Engineering
Go to course

Startup Engineering

Brought by: Coursera

  • Coursera
  • Free
  • English
  • Certificate Available
  • Certain days
  • All
  • N/A
8.1.2PHP Version237msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (147ms)
    • Application (88.96ms)
    • 1 x Booting (62.15%)
      147.00ms
      1 x Application (37.62%)
      88.96ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed5.1ms
      • select * from `courses` where `slug_en` = 'startup-engineering' limit 1
        3.66ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. startup-engineering
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-02-22 21:49:16' where `id` = 1169
        260μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-02-22 21:49:16
        • 1. 1169
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (10)
        210μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        240μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (5) and `institutions`.`deleted_at` is null
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 1162 limit 1
        390μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 1162
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        2QaDlnNJzFjSjo3Pmgv692M7Q4EpWmMinCt9OY0r
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/startup-engineering" ]
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/startup-engineering
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "priority" => array:1 [ 0 => "u=0, i" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-connecting-ip" => array:1 [ 0 => "13.58.74.190" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "13.58.74.190" ] "cf-ray" => array:1 [ 0 => "91622f61cd7d62a5-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_PRIORITY" => "u=0, i" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_CONNECTING_IP" => "13.58.74.190" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "13.58.74.190" "HTTP_CF_RAY" => "91622f61cd7d62a5-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "13508" "REMOTE_ADDR" => "172.70.178.119" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/startup-engineering" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1740260956.7015 "REQUEST_TIME" => 1740260956 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sat, 22 Feb 2025 21:49:16 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InVMUWpOT1ZNYlpFQ3VpR3N3REZveHc9PSIsInZhbHVlIjoiZnV3TmNtUkcvWkRuTTFueXR5Skp0VXIyN3ZWMFA4dEc0NHBveU5lVmxEUEU4ZWR6U2N5QVRZNXFqTmFlcnFOWE5DMXhZOGtXQ3VPUW9BaUJxcyt4eDVUTGJaQk4vb2lubWgvVWhEUnJiREJ0ZGFKeVhxRXd1MW5SaEVBMjF0bW8iLCJtYWMiOiIwZjYxMjBiYjQxOWZjODg0NWY2ZDg0ZTY2NTFlODE2ZDJjYThjNGQxMTMzYjA5MDJjOWE1YjJkMGM4M2RlOWYxIiwidGFnIjoiIn0%3D; expires=Sat, 22 Feb 2025 23:49:16 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6InVMUWpOT1ZNYlpFQ3VpR3N3REZveHc9PSIsInZhbHVlIjoiZnV3TmNtUkcvWkRuTTFueXR5Skp0VXIyN3ZWMFA4dEc0NHBveU5lVmxEUEU4ZWR6U2N5QVRZNXFqTmFlcnFOWE5DMXhZO" 1 => "laravel_session=eyJpdiI6Ii9OV0VsOUc0KzE0ekVxWW5RSy91ckE9PSIsInZhbHVlIjoiYkxDK0cxRnVndUdOb21HcWN6MS9zSFhDVC9RcE92ckxRczk1OTJjcWdWOVJZM2RTNFgzN2Nta1FtMlM0cWFtalVwLzViTXM3a0JjY1NEaGZCSnNuQ09lNld2ZE5ub21VN29IczVQT3pvbG9FSkFXalRwaGwzQlhPUmxVQjEzbmsiLCJtYWMiOiJlZjUyYWUzNTgyODk1NGFkYjA3NTY0YWE4Y2U0OGVmZTY1N2E3YWViNjM1NDczYTRmOTljMDEwM2I1MGE2ZmNiIiwidGFnIjoiIn0%3D; expires=Sat, 22 Feb 2025 23:49:16 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Ii9OV0VsOUc0KzE0ekVxWW5RSy91ckE9PSIsInZhbHVlIjoiYkxDK0cxRnVndUdOb21HcWN6MS9zSFhDVC9RcE92ckxRczk1OTJjcWdWOVJZM2RTNFgzN2Nta1FtMlM0cWFtalVw" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6InVMUWpOT1ZNYlpFQ3VpR3N3REZveHc9PSIsInZhbHVlIjoiZnV3TmNtUkcvWkRuTTFueXR5Skp0VXIyN3ZWMFA4dEc0NHBveU5lVmxEUEU4ZWR6U2N5QVRZNXFqTmFlcnFOWE5DMXhZOGtXQ3VPUW9BaUJxcyt4eDVUTGJaQk4vb2lubWgvVWhEUnJiREJ0ZGFKeVhxRXd1MW5SaEVBMjF0bW8iLCJtYWMiOiIwZjYxMjBiYjQxOWZjODg0NWY2ZDg0ZTY2NTFlODE2ZDJjYThjNGQxMTMzYjA5MDJjOWE1YjJkMGM4M2RlOWYxIiwidGFnIjoiIn0%3D; expires=Sat, 22-Feb-2025 23:49:16 GMT; path=/XSRF-TOKEN=eyJpdiI6InVMUWpOT1ZNYlpFQ3VpR3N3REZveHc9PSIsInZhbHVlIjoiZnV3TmNtUkcvWkRuTTFueXR5Skp0VXIyN3ZWMFA4dEc0NHBveU5lVmxEUEU4ZWR6U2N5QVRZNXFqTmFlcnFOWE5DMXhZO" 1 => "laravel_session=eyJpdiI6Ii9OV0VsOUc0KzE0ekVxWW5RSy91ckE9PSIsInZhbHVlIjoiYkxDK0cxRnVndUdOb21HcWN6MS9zSFhDVC9RcE92ckxRczk1OTJjcWdWOVJZM2RTNFgzN2Nta1FtMlM0cWFtalVwLzViTXM3a0JjY1NEaGZCSnNuQ09lNld2ZE5ub21VN29IczVQT3pvbG9FSkFXalRwaGwzQlhPUmxVQjEzbmsiLCJtYWMiOiJlZjUyYWUzNTgyODk1NGFkYjA3NTY0YWE4Y2U0OGVmZTY1N2E3YWViNjM1NDczYTRmOTljMDEwM2I1MGE2ZmNiIiwidGFnIjoiIn0%3D; expires=Sat, 22-Feb-2025 23:49:16 GMT; path=/; httponlylaravel_session=eyJpdiI6Ii9OV0VsOUc0KzE0ekVxWW5RSy91ckE9PSIsInZhbHVlIjoiYkxDK0cxRnVndUdOb21HcWN6MS9zSFhDVC9RcE92ckxRczk1OTJjcWdWOVJZM2RTNFgzN2Nta1FtMlM0cWFtalVw" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "2QaDlnNJzFjSjo3Pmgv692M7Q4EpWmMinCt9OY0r" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/startup-engineering" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]