| import Work from "@/components/work"; |
| |
| const summary = ` |
| I'm a 20, going on 21, year old developer who's been programming since I was 11. I started with Python and have since taken my skills to both NodeJS and Rust. |
| I'm eager to make your acquaintance and put my skills to use in a collaborative environment. |
| ` |
| |
| export default function Home() { |
| return ( |
| <main className={`flex min-h-screen ${process.env.PRODUCTION ? "w-full lg:w-1/2" : "w-full"} flex-col items-center p-2 w-full`}> |
| <div id="info" className="grid grid-cols-3 grid-rows-1 h-fit gap-2 my-2 justify-between w-full"> |
| <div className="flex flex-col text-sm"> |
| <h1 className="text-sm">Delaware, USA</h1> |
| <a href="mailto:coded@clicks.codes"><p>coded@clicks.codes</p></a> |
| </div> |
| <h1 className="text-2xl">Samuel Shuert</h1> |
| <div className="flex flex-col text-sm text-right"> |
| <a href="https://linkedin.com/in/samuelshuert"><p className="underline">linkedin.com/in/samuelshuert</p></a> |
| <a href="https://github.com/TheCodedProf"><p className="underline">github.com/TheCodedProf</p></a> |
| <a href="https://git.clicks.codes/q/owner:coded"><p className="underline">git.clicks.codes/q/owner:coded</p></a> |
| <a href="https://app.codecrafters.io/users/TheCodedProf"><p className="underline">app.codecrafters.io/users/TheCodedProf</p></a> |
| </div> |
| </div> |
| |
| <h1 className="self-start text-xl">Summary</h1> |
| <hr className="w-full border-t border-t-black mb-2"/> |
| |
| <p className="text-sm mb-8 pl-4 text-left w-full"> |
| {summary} |
| </p> |
| |
| <h1 className="self-start text-xl">Work Experience</h1> |
| <hr className="w-full border-t border-t-black"/> |
| |
| <div id="experience" className="flex flex-col h-fit gap-8 my-2 w-full mb-16"> |
| |
| <Work jobTitle={"Developer"} area={"Infrastructure"} projectName={"Clicks Nix"} dateFrom={"Aug 2022"} dateTo={"Current"} obsolete={false} > |
| <li> |
| Nix configuration for Clicks servers. |
| </li> |
| <li> |
| Responsible for general mainenance and major updates, depends on current needs. |
| </li> |
| <li> |
| Written in Nix |
| </li> |
| </Work> |
| |
| <Work jobTitle={"Developer"} area={"Backend"} projectName={"Nucleus"} dateFrom={"Sep 2020"} dateTo={"Sep 2023"} obsolete={false}> |
| <li>Nucleus (Feb 2023 - Sep 2023)</li> |
| <ul className="ml-8 mt-2 list-disc text-sm mb-4"> |
| <li> |
| Discord moderation bot. Rewritten with TypeScript. |
| </li> |
| <li> |
| I was responsible for database read/write and slash command registration. |
| </li> |
| <li> |
| Used Node.JS (w/ TypeScript), discord.js and MongoDB |
| </li> |
| </ul> |
| <li>Remote Server Management (RSM) Version 2 (Jan 2021 - Jan 2022)</li> |
| <ul className="ml-8 mt-2 list-disc text-sm mb-4"> |
| <li> |
| Discord moderation bot. Additional features including NSFW image detection and checking for malware. |
| </li> |
| <li> |
| I was responsible for the guild settings flow, tesseract flow and clamav flow. |
| </li> |
| <li> |
| Used Python, discord.py and JSON |
| </li> |
| </ul> |
| <li>Remote Server Management (RSM) Version 1 (Sep 2020 - Jan 2021)</li> |
| <ul className="ml-8 mt-2 list-disc text-sm"> |
| <li> |
| Discord moderation bot. Featuring readable UI and extra moderation features Discord does not have like tempbans. |
| </li> |
| <li> |
| I was responsible for the guild settings flow. |
| </li> |
| <li> |
| Used Python, discord.py and JSON |
| </li> |
| </ul> |
| </Work> |
| |
| <Work jobTitle={"Developer"} area={"Backend"} projectName={"Innuendo"} dateFrom={"Jul 2020"} dateTo={"Current"} obsolete={false}> |
| <li>Innuendo (Dec 2023 - Current)</li> |
| <ul className="ml-8 mt-2 list-disc text-sm"> |
| <li> |
| Cardboard Against Humankind remade in Rust |
| </li> |
| <li> |
| I'm the main developer for this project, in charge of coordinating other people the main game loop code. |
| </li> |
| <li> |
| Uses Rust, Serenity-rs + Poise, and Postgres |
| </li> |
| </ul> |
| <li>Cardboard Against Humankind (Jul 2020 - Sep 2021)</li> |
| <ul className="ml-8 mt-2 list-disc text-sm"> |
| <li> |
| A Cards Against Humanity discord bot. Was invited to 2000+ servers and had ~400 congruent games at peak times. |
| </li> |
| <li> |
| I was responsible for writing the game loop and discord interactions. |
| </li> |
| <li> |
| Used Python, discord.py and JSON |
| </li> |
| </ul> |
| </Work> |
| |
| <Work jobTitle={"Lead Developer"} area={"Full Stack"} projectName={"Infinite Stories"} dateFrom={"Oct 2021"} dateTo={"Jun 2022"} obsolete={true} > |
| <li> |
| Website that allowed writers to publish excerpts from their books online to get feedback |
| </li> |
| <li> |
| I was responsible for full website design, component creation, read/write to supabase, |
| </li> |
| <li> |
| Used Next.JS for web development and Supabase for storage |
| </li> |
| </Work> |
| </div> |
| |
| <h1 className="self-start text-xl">Certifications</h1> |
| <hr className="w-full border-t border-t-black"/> |
| |
| <div id="skills" className="flex flex-col h-fit gap-2 my-2 w-full mb-16"> |
| <p className="text-sm"><strong>CodeCrafters: </strong>HTTP Server (Rust)</p> |
| </div> |
| |
| <h1 className="self-start text-xl">Skills</h1> |
| <hr className="w-full border-t border-t-black"/> |
| |
| <div id="skills" className="flex flex-col h-fit gap-2 my-2 w-full"> |
| <p className="text-sm"><strong>Languages: </strong>TypeScript, JavaScript, Rust, Nix, Python</p> |
| <p className="text-sm"><strong>Tools: </strong>MongoDB, Postgres, Supabase, Next.JS, Vercel, Git, Gerrit, GitHub, Google Cloud, Cloudflare (DNS, Workers, Zero Trust, cloudflared), AWS, Nix</p> |
| </div> |
| </main> |
| ); |
| } |