on master help sign in
Add apprenticeships page (#1328)

* add better apprenticeship lead text, hide bounties until complete * ensure open grants shown by default * use larger cta * add signup form

commitec1e494d9a9b55e9974273fdaf19715e847e4eb7 authorJosh Lehman <josh@urbit.org> dateThu 10 Feb 2022, 11:39 (5 years ago) parentd57b287
3 files changed+72−22
content/apprenticeships.md+52−3 pages/grants.js+19−18 pages/grants/[slug].js+1−1
content/apprenticeships.md+52−3
@@ -1,8 +1,57 @@
11+++
2−title = "Apply for an Apprenticeship"
3−date = "2021-11-25"
2+title = "Become an Apprentice"
3+date = "2022-01-27"
44weight = 1
55description = "Everything you need to know about applying for an apprenticeship"
66+++
77
8−WIP
8+Apprenticeships are practical learning opportunities for new Urbit developers
9+provided by experienced members of the Urbit development community. As an
10+apprentice, you'll have the opportunity to:
11+
12+- Learn from an expert Urbit engineer
13+- Make real contributions to the project, and
14+- Earn address space for learning
15+
16+Becoming an apprentice is easily one of the best ways to level up your skills,
17+and perhaps even land a job.
18+
19+## Get started
20+
21+Apprenticeships are for those that are new to Urbit development (or an area of
22+it), but not new to programming. Nearly all apprenticeships involve some degree
23+of Hoon work, so you should make sure that you've completed [Hoon
24+School](/docs/hoon/hoon-school/intro) and the [Gall
25+Guide](/docs/userspace/gall-guide/intro) prior to signing up.
26+
27+There are two ways to sign up for an apprenticeship:
28+
29+1. [Apply for an open apprenticeship](/grants?program=apprenticeship&open=true&wip=false&completed=false)
30+2. [Sign up to be matched to a mentor](https://airtable.com/shrUZQpHqRtudHhAx)
31+
32+Apprenticeships are sometimes posted on the site to be claimed, but more often
33+than not they emerge out of a conversation between a mentor and an apprentice.
34+This is because mentors are generally busy engineering, and while they know many
35+things that need to be done, getting those ideas into writing is difficult.
36+
37+When you [sign up to be matched](https://airtable.com/shrUZQpHqRtudHhAx), the Urbit Foundation will review your
38+application, pass it around to available mentors, and more often than not a call
39+will get scheduled and an apprenticeship started.
40+
41+## How it works
42+
43+Once a mentor has written up an apprenticeship, approved an apprentice, and all
44+parties have signed a contract with the Urbit Foundation, work can proceed.
45+
46+Mentors and apprentices work together by having weekly pairing sessions and
47+maintaining an open line of communication over Urbit. It's expected that mentors
48+put at least two hours per week into supporting their apprentice.
49+
50+When a mentor has signed off on the apprentice's work, the mentor will notify
51+the Urbit Foundation of completion and the apprentice will invoice the UF for
52+payment.
53+
54+## Funding
55+
56+Apprenticeships pay a flat $8,000 in WSTR to the apprentice, and $2,000 WSTR to
57+the mentor.
pages/grants.js+19−18
@@ -74,7 +74,8 @@ export default function Grants({
7474 const router = useRouter();
7575 const [activeTags, setTags] = useState([]);
7676 const [activeTypes, setTypes] = useState(types);
77− const includeOpen = router.query.open === "true";
77+ const includeOpen =
78+ router.query.open === undefined || router.query.open === "true";
7879 const includeCompleted = router.query.completed === "true";
7980 const programFilter = router.query.program;
8081 const post = {
@@ -82,7 +83,8 @@ export default function Grants({
8283 description: "Contribute to the Urbit project while earning address space.",
8384 };
8485
85− let includeInProgress = router.query.wip === "true";
86+ let includeInProgress =
87+ router.query.wip === undefined || router.query.wip === "true";
8688
8789 if (
8890 router.query.open === undefined &&
@@ -220,27 +222,26 @@ export default function Grants({
220222 </button>
221223 </Link>
222224
223− <p className="mb-4">
224− <b>Bounties</b> are contracts for work from trusted partners in
225− our ecosystem. The Urbit Foundation matches contributors with
226− projects, verifies the integrity of the poster, and will often
227− chip in on the funding.
228− </p>
229− <Link href="/grants/bounties">
230− <button className="button-sm bg-yellow-300 text-black mb-8">
231− Post a Bounty
232− </button>
233− </Link>
225+ {/* <p className="mb-4"> */}
226+ {/* <b>Bounties</b> are contracts for work from trusted partners in */}
227+ {/* our ecosystem. The Urbit Foundation matches contributors with */}
228+ {/* projects often chip in on the funding. */}
229+ {/* </p> */}
230+ {/* <Link href="/grants/bounties"> */}
231+ {/* <button className="button-sm bg-yellow-300 text-black mb-8"> */}
232+ {/* Post a Bounty */}
233+ {/* </button> */}
234+ {/* </Link> */}
234235
235236 <p className="mb-4">
236− <b>Apprenticeships</b> are opportunities to receive mentorship
237− from an experienced Urbit developer. These don't pay as well,
238− but are generally the best way to land a full-time job in Urbit
239− development
237+ <b>Apprenticeships</b> are practical learning opportunities for
238+ new Urbit developers provided by members of the Urbit community.
239+ They're one of the best ways to level up your skills, and often
240+ lead to full-time jobs.
240241 </p>
241242 <Link href="/grants/apprenticeships">
242243 <button className="button-sm bg-green-400 text-white">
243− Apply for an Apprenticeship
244+ Become an Apprentice
244245 </button>
245246 </Link>
246247 </div>
pages/grants/[slug].js+1−1
@@ -75,7 +75,7 @@ export default function Grant({ post, markdown, search }) {
7575 </Section>
7676 {canApply && (
7777 <a
78− className="bg-green-400 text-white badge-sm"
78+ className="bg-green-400 text-white button-lg"
7979 href={post?.extra?.work_request_link}
8080 target="_blank"
8181 >