ByteHeavy
ByteHeavy
استودیوی برنامهنویسی فریلنس
ما وباپلیکیشن، ربات دیسکورد، پلاگین بازی و سیستمهای بکاند سفارشی طراحی، توسعه و تحویل میدیم. هر پروژه با یک توافق مکتوب اسکوپ شروع میشه که دقیقاً مشخص میکنه چی ساخته میشه، هزینهش چقدره و چه زمانی تحویل داده میشه — نه وعده شفاهی، نه تغییر شرایط بعد از شروع کار. توسعه در قالب مایلستونهای مشخص و با گزارش وضعیت هفتگی پیش میره، تا همیشه دقیقاً بدونید پروژه کجا ایستاده. صرفنظر از اندازه پروژه، هر مشتری همون اولویت و همون زمان پاسخگویی رو میگیره: هیچ سطح خدماتی، هیچ آپگرید پولی برای جدی گرفته شدن، و هیچ هزینه غافلگیرکنندهای بعد از شروع کار وجود نداره. وقتی پروژه تحویل داده میشه، یک دوره پشتیبانی مشخص هم همراهشه، تا لانچ نقطهای نباشه که ارتباط قطع میشه.

// بدون طبقهبندی مشتری — رفتار یکسان برای همه
function priorityFor(client: Client) {
return "standard"; // always. no tiers.
}ما هیچ سطح VIP، اشتراک اولویتدار یا افزونه «جلوی صف» نمیفروشیم. مشتریای که یک سایت پنجصفحهای سفارش میده و مشتریای که یک بکاند چندسرویسی کامل سفارش میده، زمان پاسخگویی یکسان، کیفیت کد یکسان و صداقت یکسانی درباره اسکوپ و ریسک دریافت میکنن. این یک ترفند تبلیغاتی نیست — تحقیقات درباره عدالت رفتاری بهطور مداوم نشون میده که رفتار ناهماهنگ با مشتریها، سریعتر از تقریباً هر چیز دیگهای اعتماد رو از بین میبره. پس ما اصلاً گزینهای برای «بهتر رفتار کردن با یک نفر نسبت به بقیه» ارائه نمیدیم، چون معتقدیم ثبات، خودش قویترین ضمانت کیفیته که میتونیم بدیم.
آژانس معمولی
بایتهوی
به عدد
+۲۰
زبان و فریمورک که فعالانه باهاشون کار میکنیم
۰
سطح مشتری — نه صف VIP، نه صف عادی
۱۰۰٪
پروژهها با یک توافق اسکوپ مکتوب شروع میشن
2FA
هر حساب با احراز هویت دو مرحلهای TOTP امن میشه
روش کار ما
هر پروژه از همین چرخه رد میشه: نوشتن، دیباگ، تحویل. الان زنده ببینیدش.
▍ ما وبسایت و وباپلیکیشن رو از ابتدا تا انتها میسازیم — از اولین وایرفریم تا یک دیپلوی پروداکشنی که واقعاً آنلاین میمونه. یعنی فرانتاندی که روی یک گوشی متوسط با اینترنت ضعیف هم سریع لود میشه، بکاندی که با افزایش ناگهانی ترافیک از پا نمیافته، و کدی که توسعهدهنده بعدی — یا خود شما، شش ماه بعد — واقعاً میتونه بفهمتش. پیشفرض ما Next.js و TypeScript هست، ولی استک همیشه از محدودیتهای واقعی پروژه پیروی میکنه، نه از منطقه راحتی ما. هر دیپلوی شامل کارهای عملیاتیایه که خیلی از آژانسها اختیاری در نظرش میگیرن: مانیتورینگ، بکاپگیری، روال مشخص برای بازیابی، و هدرهای امنیتی که از همون انتشار اول درست تنظیم شدن، نه بعد از یک حادثه. هدف سایتیه که بین جلسات پیگیری خودش سرپا میمونه، نه سایتی که نیاز داره ما همیشه آمادهباش باشیم.
export async function createOrder(input: OrderInput) {
const scope = await agreeScope(input);
return db.orders.create({ data: scope });
}بیشتر مشکلاتی که بهنظر «کند شدن» یا «خراب شدن توی پروداکشن» میان، در واقع مشکل معماری بکاند هستن. ما API و سیستمهای بکاند رو با قرارداد صریح، مدیریت خطای منطقی، و ویژگیهای بار که قبل از لانچ تست شدن (نه بعدش کشف بشن) طراحی میکنیم. چه یک REST API برای اپ موبایل باشه، چه پردازشگر webhook برای اتصال به یک سرویس دیگه، چه بکاند پشت سیستم اقتصاد یک ربات دیسکورد — میسازیمش تا به بهترین شکل ممکن «خستهکننده» باشه: قابلپیشبینی، مستندشده، و سخت برای خراب شدن. محدودسازی نرخ درخواست، اعتبارسنجی ورودی و بررسی دسترسی از همون طراحی اولیه بخشی از کار هستن، نه یک تیکت که بعد از اولین گزارش حادثه اضافه بشه.
func main() {
srv := api.New(cfg)
log.Fatal(srv.ListenAndServe())
}یک ربات دیسکورد که فقط چند دستور اسلش اجرا میکنه، کار سختی نیست. ولی رباتی که یک اقتصاد زنده داخل سرور رو مدیریت میکنه، هزاران پیام در روز رو مدیریت میکنه، و حتی وقتی خود دیسکورد قطعی داره هم آنلاین میمونه، یک قطعه واقعی مهندسی بکاند با ظاهر چته. ما هردوش رو میسازیم — از یک ربات ابزاری ساده تا یک سیستم کامل مدیریت سرور با پنل ادمین، دیتابیس و قوانین اتوماسیون خودش — دقیقاً به اندازهای که کامیونیتی شما واقعاً نیاز داره، نه چیزی که فقط توی یک پیچ فروش خوب بهنظر برسه. هر ربات با در نظر گرفتن محدودیتهای نرخ و تغییرات API دیسکورد ساخته میشه، تا با هر آپدیت پلتفرم همچنان کار کنه، نه اینکه دفعه بعدی که دیسکورد یک آپدیت میده، بیسروصدا خراب بشه.
bot.on("interactionCreate", async (i) => {
if (i.commandName === "ticket") await openTicket(i);
});توسعه سرور ماینکرفت یک تخصصیه که بیشتر آژانسهای «ما سایت هم میسازیم» فقط وانمود میکنن بلدنش. ما نه. ما گیممود سفارشی، مجموعه پلاگین و سیستمهای سمت سرور رو با همون انضباط مهندسی هر بکاند دیگهای مینویسیم: پروفایلشده از نظر تاثیر روی TPS، تستشده زیر بار واقعی بازیکن، و طراحیشده که یک ریاستارت سرور دیتابیس بازیکنها رو خراب نکنه. اگه تا حالا یک پلاگین بهآرومی دیتابیس اقتصادتون رو خراب کرده، دقیقاً میدونید چرا این انضباط مهمه. واقعیتهای اداره یک کامیونیتی زنده رو هم در نظر میگیریم — ابزار مخصوص استاف، تعامل با آنتیچیت، و مسیر بازگشت امن وقتی یک آپدیت پلاگین طبق انتظار رفتار نمیکنه.
@EventHandler
public void onJoin(PlayerJoinEvent e) {
economy.ensureAccount(e.getPlayer());
}هر مشکلی توی قالب «سایت» یا «ربات» جا نمیشه. گاهی چیزی که یک کسبوکار واقعاً نیاز داره، ابزاری داخلیه که سه ساعت کار دستی روی اکسل رو در روز اتوماسیون میکنه، اسکریپتی که با پنج API مختلف صحبت میکنه و نتایج رو باهم تطبیق میده، یا یک اپ دسکتاپ کوچیک برای یک فرآیندیه که هیچکس دیگهای براش نرمافزار نساخته. اینجا جاییه که بخش زیادی از جالبترین کارهامون اتفاق میافته — پروژههایی که برای یک ابزار SaaS آماده، خیلی خاصان. این پروژهها هم دقیقاً مثل هر پروژه دیگهای اسکوپ میشن: تعریف مکتوب اینکه ابزار باید چیکار کنه، چه کسی ازش استفاده میکنه، و بعد از تحویل چطور نگهداری میشه.
def main() -> None:
job = load_job(config)
run_pipeline(job)هر کسبوکار خدماتی یک سری محدودیت داره. اکثرشون تا بعد از امضای قرارداد این محدودیتها رو بلند نمیگن. ما ترجیح میدیم از قبل بگیم چه کاری رو انجام نمیدیم، تا چند هفته وسط پروژه غافلگیر نشید.
بگید چی میسازید و واقعاً چه چیزی درباره وضعیت فعلیتون اذیتتون میکنه — یک گفتگوی رایگان و بدون تعهد، معمولاً از طریق چت یا یک تماس کوتاه. بدون فرم طولانی، بدون فشار فروش. اگه ما گزینه مناسبی برای نیاز شما نباشیم، اونم بهتون میگیم.
قبل از نوشته شدن حتی یک خط کد قابلصورتحساب، کل همکاری رو مکتوب میکنیم: چی ساخته میشه، چی صراحتاً بیرون از اسکوپه، قیمت، و زمانبندی تحویل. این سند چیزیه که بعداً از هردومون محافظت میکنه — نمایش حقوقی نیست، تنها منبع واحد حقیقت برای کل پروژهست.
کار به ۴ تا ۶ مرحله مشخص تقسیم میشه، هرکدوم با یک خروجی مشخص که واقعاً میتونید ببینید و تستش کنید. به مرحله بعدی نمیریم مگه اینکه مرحله فعلی رو تایید کرده باشید — یعنی هیچوقت بیشتر از چند هفته از تایید اینکه پروژه هنوز در مسیر درستیه فاصله ندارید.
بدون اینکه بپرسید، هر هفته یک گزارش وضعیت میگیرید — حتی هفتههایی که گزارش فقط «همهچیز طبق برنامهست، مانعی نیست» باشه. سکوت یکی از بزرگترین منابع اضطراب مشتری توی کار فریلنسریه، و کاملاً قابلاجتنابه.
وقتی آخرین مرحله تایید شد، تحویل کامل رو میگیرید — کد، مستندات، دسترسی دیپلوی — بههمراه یک دوره مشخص پشتیبانی رایگان برای مشکلات کوچیک اجتنابناپذیری که فقط وقتی کاربر واقعی باهاش کار میکنه معلوم میشن.
تیم ما بر بیش از ۲۰ تکنولوژی مسلط است، از جمله Rust، C++، C#، Java، JavaScript، TypeScript، Python، Go، PHP، Kotlin، SQL، Lua، Zig و موارد دیگر.
همین الان بگید چی نیاز دارید، با زبان ساده — بدون فرم چندصفحهای، بدون اجبار به رزرو تماس. اگه لازم باشه سوال تکمیلی میپرسیم، و قدم بعدی همیشه یک توافق مکتوب اسکوپه، قبل از شروع هر کار قابلصورتحساب.