solo builder & freelance dev
“i am the standup, the sprint, and the retrospective. it's efficient.”
nice to meet you. i make websites, weird little bots, and the occasional thing i can't explain at parties.
“i write code that works. the first time is a fluke. the fifth time is skill.”— me, probably at 2am
hi, i'm shahid. i build things for the web, write bots for telegram, and occasionally have long quiet arguments with c++ that nobody wins. i've been at this long enough to know which stack overflow answers to trust and which to screenshot as warnings. i work fast, i actually reply to messages, and i've squashed an embarrassing number of bugs.
also: tea, lots of it. probably right now.
no corporate buzzwords. just what i did, where i did it, and what it taught me.
“i am the standup, the sprint, and the retrospective. it's efficient.”
“learned that 'quick fix' and 'technical debt' are the same thing with different pr descriptions.”
“built a bot to automate my job. then realized the bot had better uptime than me.”
“spent a year arguing with c++ compilers. won occasionally. grew stronger.”
no portfolio cards. no screenshots. just the actual work — described honestly.
react frontends and full-stack apps. i care about speed, accessibility, and not making users want to close the tab.
bots that automate, respond, and occasionally develop personalities of their own. python + telegram bot api.
python and shell scripts that do the boring parts so you don't have to. probably runs on a cron job.
c++ and c# for when performance actually matters and you want to feel the consequences of your choices.
i turn designs into pixel-accurate react components with tailwind. if the design is wrong, i'll tell you.
typescript types, git workflows, linting configs, ci setup. the stuff nobody wants to do but everyone needs.
shipped in three days what we'd been arguing about for three months. mildly annoying. very impressive.
the bot replied so fast i assumed it was sentient. then it made a pun. confirmed sentient.
he commented his code. voluntarily. i almost cried.
fixed in 12 minutes what a stack overflow thread couldn't fix in 8 years.
hover any pill — every one has an opinion.
Yes, this actually works. Kind of.
// shahid.js — handle with careconst shahid = {name: "Shahid",skills: ["JS", "TS", "Python", "C++", "React", "Bots"],teaLevel: 100, // critical resourcebugs: 0, // (this is a lie)available: true};function drinkTea() {shahid.teaLevel += 50;shahid.productivity *= 1.8;return "much better";}function fixBug(bug) {if (Math.random() > 0.5) {return "fixed! (created 2 new bugs though)";}return "have you tried turning it off and on again?";}async function deployToProduction() {console.log("running tests...");await sleep(400); // prayer-based testingconsole.log("tests: skipped (we live dangerously)");console.log("deploying... 🚀");return "deployed. fingers crossed.";}// maindrinkTea();deployToProduction();console.log("shahid.available:", shahid.available);
// no semicolons were harmed in the making of this widget
i read every message. reply time is somewhere between “right now” and “after tea”.
shahid · made by hand · powered by tea