Skip to content

Commit 0267817

Browse files
Changes
Co-authored-by: ghostcodedynamics <295822717+ghostcodedynamics@users.noreply.github.com>
1 parent 7cc802c commit 0267817

1 file changed

Lines changed: 140 additions & 7 deletions

File tree

‎src/routes/careers.tsx‎

Lines changed: 140 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,148 @@
1-
import { ComingSoon } from "@/components/coming-soon";
1+
import { Code2, PenTool, ShieldCheck, GraduationCap, HeartHandshake, Clock } from "lucide-react";
2+
import { PageHero } from "@/components/section";
23
import { Seo } from "@/components/seo";
4+
import { Faq, FeatureGrid, ProgramCta, StatusNote } from "@/components/program-page";
5+
import { Reveal, SectionHeader } from "@/components/section";
6+
import { breadcrumbSchema, webPageSchema } from "@/lib/seo";
7+
8+
const title = "Careers - GhostCode Dynamics";
9+
const description =
10+
"Future roles for developers, designers and student collaborators at GhostCode Dynamics — a founder-led technology studio.";
11+
const path = "/careers";
12+
13+
const VALUES = [
14+
{
15+
icon: <HeartHandshake className="h-5 w-5" />,
16+
title: "Honest by default",
17+
desc: "We don't oversell to clients or to each other. Estimates, mistakes and limits get said out loud.",
18+
},
19+
{
20+
icon: <Code2 className="h-5 w-5" />,
21+
title: "Craft over volume",
22+
desc: "Fewer projects, done properly. Performance, accessibility and readable code are part of the job, not extras.",
23+
},
24+
{
25+
icon: <GraduationCap className="h-5 w-5" />,
26+
title: "Teach what you learn",
27+
desc: "Everyone here writes, mentors or shares. It's how a small studio compounds.",
28+
},
29+
{
30+
icon: <Clock className="h-5 w-5" />,
31+
title: "Async and flexible",
32+
desc: "Remote-first with sane hours. Students can work around classes; deep work beats presence.",
33+
},
34+
];
35+
36+
const ROLES = [
37+
{
38+
title: "Frontend Engineer (React / TypeScript)",
39+
type: "Future role · Remote",
40+
desc: "Build client sites and internal products with React, TypeScript and Tailwind. Strong eye for detail and motion.",
41+
},
42+
{
43+
title: "Product / UI Designer",
44+
type: "Future role · Remote",
45+
desc: "Own design systems, landing pages and brand work for client projects. Figma-fluent, comfortable in code-adjacent handoff.",
46+
},
47+
{
48+
title: "Security Research Collaborator",
49+
type: "Future role · Part-time",
50+
desc: "Help build GhostCode Labs write-ups and secure-coding material for students.",
51+
},
52+
{
53+
title: "Student Collaborator",
54+
type: "Open interest · Part-time",
55+
desc: "Work alongside the founder on real deliverables while you study. Mentored, credited, and paid where the project allows.",
56+
},
57+
];
58+
59+
const FAQS = [
60+
{
61+
q: "Are you hiring right now?",
62+
a: "There are no funded, open positions today. GhostCode Dynamics is early-stage and founder-led, so roles open as client work grows. Applying now puts you first in line.",
63+
},
64+
{
65+
q: "Do you take students with no experience?",
66+
a: "We take students with evidence of effort — a project, a repo, a write-up. Polish is not required; initiative is.",
67+
},
68+
{
69+
q: "Is the work paid?",
70+
a: "Collaborator work tied to client projects is paid. Learning-only programmes such as internships and the Academy are separate and clearly labelled.",
71+
},
72+
{
73+
q: "How do I apply?",
74+
a: "Send a short note with links to what you've built. One paragraph about why this studio, and we'll read all of it.",
75+
},
76+
];
377

478
export default function Page() {
579
return (
680
<>
7-
<Seo title={"Careers - GhostCode Dynamics"} description={"Future roles for developers} path={designers and student collaborators at GhostCode Dynamics."} robots="noindex, follow" />
8-
<ComingSoon
9-
module="Careers"
10-
title="Join the next phase."
11-
description="As GhostCode grows, we'll open roles for developers, designers and student collaborators who care about craft."
12-
/>
81+
<Seo
82+
title={title}
83+
description={description}
84+
path={path}
85+
schemas={[
86+
webPageSchema(title, description, path),
87+
breadcrumbSchema([
88+
{ name: "Home", path: "/" },
89+
{ name: "Careers", path },
90+
]),
91+
]}
92+
/>
93+
<PageHero
94+
eyebrow="Careers · Early stage"
95+
title="Join the next phase."
96+
description="GhostCode Dynamics is small and founder-led on purpose. As the studio grows, we'll open roles for developers, designers and student collaborators who care about craft."
97+
>
98+
<StatusNote>No funded openings today · Talent list open</StatusNote>
99+
</PageHero>
100+
101+
<FeatureGrid
102+
eyebrow="How we work"
103+
title="What you'd be signing up for"
104+
items={VALUES}
105+
columns={4}
106+
/>
107+
108+
<section className="relative border-t border-border/60 py-16 md:py-24">
109+
<div className="container-prose">
110+
<SectionHeader
111+
eyebrow="Roles"
112+
title="Roles we expect to open"
113+
description="These are honest signals of direction, not live vacancies. Register interest and you'll be contacted first when one becomes real."
114+
/>
115+
<ul className="mt-12 grid gap-4">
116+
{ROLES.map((role) => (
117+
<Reveal key={role.title}>
118+
<li className="flex flex-col gap-2 rounded-2xl border border-border bg-card/60 p-6 backdrop-blur transition hover:border-primary/40 sm:flex-row sm:items-center sm:justify-between">
119+
<div>
120+
<h3 className="font-display text-lg font-semibold tracking-tight text-foreground">
121+
{role.title}
122+
</h3>
123+
<p className="mt-2 max-w-2xl text-sm leading-relaxed text-muted-foreground">
124+
{role.desc}
125+
</p>
126+
</div>
127+
<span className="shrink-0 rounded-full border border-border bg-surface/60 px-3 py-1 font-mono text-[10px] uppercase tracking-[0.2em] text-muted-foreground">
128+
{role.type}
129+
</span>
130+
</li>
131+
</Reveal>
132+
))}
133+
</ul>
134+
</div>
135+
</section>
136+
137+
<Faq items={FAQS} />
138+
139+
<ProgramCta
140+
title="Introduce yourself early"
141+
description="Send your work, your GitHub and what you want to get better at. We keep a short list and we actually use it."
142+
primaryLabel="Register your interest"
143+
secondaryLabel="See internships"
144+
secondaryTo="/internships"
145+
/>
13146
</>
14147
);
15148
}

0 commit comments

Comments
 (0)