Skip to content

Commit 336074b

Browse files
authored
Merge branch 'main' into mason/seo-geo-recipes-troubleshooting
2 parents e38f4ba + 76b837f commit 336074b

16 files changed

+258
-115
lines changed

browsers/create-a-browser.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Use our SDK to create a browser:
1919

2020
<CreateBrowserSnippet />
2121

22-
## 2. Connect to the browser with the Chrome DevTools Protocol
22+
## 2. Connect over CDP
2323

2424
Then, you can connect to the browser with any Chrome DevTools Protocol framework, such as Playwright or Puppeteer.
2525

careers/customer-engineer.mdx

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: "Customer Engineer"
3+
---
4+
5+
- 🌆 **Location: SF**
6+
- 💰 **Salary: &#36;150,000 - &#36;225,000 + 0.35 - 0.75&#37;+ equity**
7+
- 💻 **Skills: Typescript, Python, SDKs, CLIs, Open Source Software, DevRel, Customer Engineering**
8+
9+
## About Kernel
10+
11+
We're building *the* developer platform that lets AI agents use real applications, starting with browsers. Our edge is an infrastructure platform that's extensible, observable, and built for scale from day one. We've shipped foundational tech, landed paying customers, and are well-funded while still in stealth.
12+
13+
Our **serverless platform** handles the hard stuff: autoscaling reliable browser infrastructure, observability, and the messy details of web interaction so developers can focus on what their agents do, not how they do it. **Kernel makes AI tangible, practical, and powerful** — allowing developers to deploy agents that can truly interact with the digital world.
14+
15+
**If you're interested in building critical infrastructure for the next generation of AI applications, we'd love to chat.** One line of code deploys any web agent to our cloud. The rest is up to you.
16+
17+
## About the role
18+
19+
As a **Founding Customer Engineer** at Kernel, you'll be part builder, part solutions engineer, and fully embedded with our customers' engineering teams.
20+
21+
This is a **hands-on engineering role**: you'll spend **~50% of your time coding** open source tools, customer integrations, and the rest helping developers succeed. You'll be the [Alex Albert](https://x.com/alexalbert__) of Kernel, pushing the AI industry forward by showing what is possible.
22+
23+
## What you'll do
24+
25+
- Support **enterprise customers** with hands-on solutions engineering
26+
- Engage with our **community** on GitHub, Slack, and Twitter, answering questions and amplifying cool projects
27+
- Contribute to Kernel's **technical blog**, developing content that educates, inspires, and grows developer adoption
28+
- Build **OSS tools, libraries, demos, and integrations** that make Kernel's devEx more powerful and easier to use
29+
- Influence Kernel's **culture, product, and direction** as a founding team member
30+
31+
## What we're looking for
32+
33+
- **You ship**: tools, projects, ideas—anything that pushes the ecosystem forward
34+
- **You code (and vibe code)**: strong engineering background who cares about great devEx (our inspirations: Modal, Supabase, PlanetScale)
35+
- **You get developers**: you know what excites them, what annoys them, and how to speak their language
36+
- **You want impact**: you're energized by small, high impact teams and want to build something that delights software engineers
37+
38+
## What you can expect as a Kernel
39+
40+
- **Industry-competitive salary**
41+
- **Above market equity**
42+
- Premium **medical + dental coverage** + dependent coverage
43+
- Small, trusting team of **senior + staff engineers**
44+
- Default async—**minimal bureaucracy**, only two meetings a week
45+
- **$1k / mo budget** for LLM usage fees #vibecheck
46+
- **Daily lunches** on us
47+
- **Unlimited PTO**
48+
- 401k + company match
49+
- Relocation assistance
50+
51+
## Hiring process
52+
53+
We have a simple process focused on real world collaboration and jointly getting to know each other:
54+
55+
1. 30 minute **intro calls** with each of Kernel's co-founders (1 hour total)
56+
2. Half-day on-site (virtual or in-person) working with our team and co-founders on relevant challenges.
57+
3. **Offer!**
58+
59+
## How to apply
60+
61+
Add Catherine on [LinkedIn](https://www.linkedin.com/in/juecd/) and include:
62+
63+
1. Your resumé
64+
2. Past projects, work, and GitHub
65+
66+
We can't wait to hear from you!

careers/devrel-engineer.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "DevRel Engineer"
33
---
44

55
- 🌆 **Location: SF**
6-
- 💰 **Salary: &#36;150,000 - &#36;235,000 + 0.35 - 0.75&#37;+ equity**
6+
- 💰 **Salary: &#36;150,000 - &#36;225,000 + 0.35 - 0.75&#37;+ equity**
77
- 💻 **Skills: Typescript, Python, SDKs, CLIs, Open Source Software, DevRel**
88

99
## About Kernel

careers/intro.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ Our **serverless platform** handles the hard stuff: autoscaling reliable browser
1616
- [Founding Backend Engineer](/careers/backend-engineer)
1717
- [Software Engineer - New Grad](/careers/engineer-new-grad)
1818
- [Founding DevRel Engineer](/careers/devrel-engineer)
19+
- [Founding Customer Engineer](/careers/customer-engineer)
1920
- [Founding Technical Content Marketer](/careers/technical-content-marketer)

docs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@
7272
"pages": [
7373
"proxies/overview",
7474
"proxies/custom",
75-
"proxies/mobile",
7675
"proxies/residential",
7776
"proxies/isp",
7877
"proxies/datacenter"
@@ -150,6 +149,7 @@
150149
"careers/backend-engineer",
151150
"careers/engineer-new-grad",
152151
"careers/devrel-engineer",
152+
"careers/customer-engineer",
153153
"careers/technical-content-marketer"
154154
]
155155
}

introduction.mdx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ title: "Introduction"
33
description: "Browsers-as-a-service API for web agents, automations, and more"
44
---
55

6-
Kernel is a developer platform that provides Crazy Fast Browser Infrastructure for browser automations and web agents. Our API and MCP server allow you to instantly launch browsers in the cloud without managing infrastructure.
6+
Kernel is a developer platform that provides Crazy Fast Browsers-as-a-Service for browser automations and web agents. Our API and MCP server allow you to instantly launch browsers in the cloud without managing infrastructure.
77

8-
## kernel.browsers.create()
8+
## Connect over CDP
99

10-
If you are already familiar with browser vendors, you can immediately start using our browsers with `kernel.browsers.create()`. We return a CDP url that you can connect any Playwright or Puppeteer automation to.
10+
If you are already familiar with browser vendors, you can immediately start using our browsers with `kernel.browsers.create()`. We return a **CDP url** that you can connect any Playwright or Puppeteer automation to.
1111

1212
<Info>
1313
Install the Kernel SDK with `npm install @onkernel/sdk` or `uv pip install kernel`
@@ -17,14 +17,14 @@ Install the Kernel SDK with `npm install @onkernel/sdk` or `uv pip install kerne
1717

1818
```typescript Typescript/Javascript
1919
import { Kernel } from '@onkernel/sdk';
20-
const kernel = new Kernel();
20+
const kernel = new Kernel({api_key: 'your_api_key'});
2121
const kernelBrowser = await kernel.browsers.create();
2222
const browser = await chromium.connectOverCDP(kernelBrowser.cdp_ws_url);
2323
```
2424

2525
```python Python
26-
import kernel
27-
client = Kernel()
26+
from kernel import Kernel
27+
client = Kernel(api_key='your_api_key')
2828
kernel_browser = client.browsers.create()
2929
browser = await chromium.connectOverCDP(kernel_browser.cdp_ws_url)
3030
```

proxies/custom.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const kernel = new Kernel();
2121
const proxy = await kernel.proxies.create({
2222
type: 'custom',
2323
name: 'my-private-proxy',
24+
protocol: 'https',
2425
config: {
2526
host: 'proxy.example.com',
2627
port: 443,
@@ -41,6 +42,7 @@ client = kernel.Kernel()
4142
proxy = client.proxies.create(
4243
type='custom',
4344
name='my-private-proxy',
45+
protocol='https',
4446
config={
4547
'host': 'proxy.example.com',
4648
'port': 443,

proxies/mobile.mdx

Lines changed: 0 additions & 86 deletions
This file was deleted.

proxies/overview.mdx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,14 @@ Kernel proxies enable you to route browser traffic through different types of pr
1010

1111
## Proxy Types
1212

13-
Kernel supports five types of proxies, ranked by quality (from best to worst):
13+
Kernel supports four types of proxies:
1414

15-
0. [**Custom**](/proxies/custom) - Your own proxy servers
16-
1. [**Mobile**](/proxies/mobile) - Traffic routed through mobile carrier networks
17-
2. [**Residential**](/proxies/residential) - Traffic routed through residential ISP connections
18-
3. [**ISP**](/proxies/isp) - Traffic routed through ISP data centers
19-
4. [**Datacenter**](/proxies/datacenter) - Traffic routed through commercial data centers
15+
1. [**Datacenter**](/proxies/datacenter) - Traffic routed through commercial data centers
16+
2. [**ISP**](/proxies/isp) - Traffic routed through data centers, using residential IP addresses leased from from internet service providers
17+
3. [**Residential**](/proxies/residential) - Traffic routed through real residential IP addresses
18+
4. [**Custom**](/proxies/custom) - Your own proxy servers
19+
20+
Datacenter has the fastest speed, while residential is least detectable. ISP is a balance between the two options, with less-flexible geotargeting. Kernel recommends to use the first option in the list that works for your use case.
2021

2122
## 1. Create a proxy
2223

proxies/residential.mdx

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,10 @@ const kernel = new Kernel();
1616

1717
const proxy = await kernel.proxies.create({
1818
type: 'residential',
19-
name: 'my-california-residential',
19+
name: 'my-la-residential',
2020
config: {
2121
country: 'US',
22-
city: 'sanfrancisco',
23-
zip: '94102',
24-
os: 'windows'
22+
city: 'los_angeles'
2523
}
2624
});
2725

@@ -36,12 +34,10 @@ client = kernel.Kernel()
3634

3735
proxy = client.proxies.create(
3836
type='residential',
39-
name='my-california-residential',
37+
name='my-la-residential',
4038
config={
4139
'country': 'US',
42-
'city': 'sanfrancisco',
43-
'zip': '94102',
44-
'os': 'windows'
40+
'city': 'los_angeles'
4541
}
4642
)
4743

@@ -54,9 +50,8 @@ browser = client.browsers.create(
5450

5551
## Configuration Parameters
5652

57-
- **`country`** - ISO 3166 country code
58-
- **`state`** - Two-letter state code. Only supported for US and Australia. Cannot be used with `city`
59-
- **`city`** - City name (lowercase, no spaces, e.g., `sanfrancisco`, `newyork`). Required if `zip` is provided
60-
- **`zip`** - US ZIP code (5 digits). Requires `city` to be provided
61-
- **`os`** - Operating system: `windows`, `macos`, or `android`
62-
- **`asn`** - Autonomous System Number. Mutually exclusive with geo-location targeting
53+
- **`country`** - ISO 3166 country code. Must be provided when providing other targeting options.
54+
- **`state`** - Two-letter state code. Only supported for US.
55+
- **`city`** - City name (lowercase, no spaces, e.g., `sanfrancisco`, `newyork`).
56+
- **`zip`** - US ZIP code (5 digits). Conflicts with city and state.
57+
- **`asn`** - Autonomous System Number. Conflicts with city and state.

0 commit comments

Comments
 (0)