Bitcoin yazılımcılığı, son yıllarda yazılım departmanlarında kariyer hedefleyen kişilerin yöneldiği popüler bir alan oldu. Bitcoin yazılımcılığı alanında kariyer hedefleyen kişilerin merak ettiği soruları BtcTurk Teknoloji Departmanı yanıtladı. Bitcoin yazılımcılığı hakkında tüm detayları bu yazıda bulabilirsiniz.
ANA BAŞLIKLAR
1) Bitcoin yazılımcısı olmak ne anlama gelir?
Bitcoin ekosistemi yazılımcısı olmak için üniversitelerin hangi bölümleri tercih edilmelidir?
Bitcoin, blokzinciri teknolojisini kullanır. Bitcoin yazılımcısı olmak aslında blokzinciri yazılımcısı olmak anlamına da gelmektedir. Bitcoin yazılımcıları kriptografi yani şifreleme yöntemlerinde uzmanlaşmış kişilerdir.
Bitcoin yazılımcıları, Bitcoin’in çekirdek yazılımını (Bitcoin Core) geliştirmeye katkıda bulunup blokzincirinin geliştirilmesinde öneriler sunarlar.
Bitcoin yazılımcısı olmak için üniversitelerin Bilgisayar Mühendisliği, Yazılım Mühendisliği, Matematik Mühendisliği, Endüstri Mühendisliği, Elektrik ve Elektronik Mühendisliği gibi bölümleri tercih edilebilir.
Aynı zamanda, büyük oranda yazılım geliştirme kapsamı olan bölümlerden mezun kişiler de Bitcoin yazılımcısı olmaya odaklanarak bu alanda ilerleyebilir.
İlgili bölümlerde alınacak eğitime ek olarak, Bitcoin hakkında bilgi sahibi olmak ve Bitcoin blokzincirine dair araştırmalar yaparak kendini bu alanda geliştirmek, Bitcoin yazılımcılığı için önemli kriterlerdir.
2) Bitcoin ekosistemi yazılımcısı olmak için hangi programlama dillerini bilmek gerekir?
Bitcoin yazılımcısı olmak için temel programlama dillerine hakim olmak gerekmektedir.
Net, C++, Python, Java, Solidity gibi programlama dillerini bilmek Bitcoin ve blokzinciri geliştiricileri için önemli artılardandır.
Blokzinciri yazılımda en sık kullanılan programlama dili C++’dır. C++, Bitcoin core’un da yazıldığı dildir.3) Her yazılım geliştirici Bitcoin için geliştirme önerisi sunabilir mi?
Bir yazılım geliştiricisinin, Bitcoin blokzincirine yönelik geliştirme önerisi sunması için bir yere bağlı kalmasına veya bir sertifikaya sahip olmasına gerek yoktur.
Bitcoin Geliştirme Önerisi anlamına gelen Bitcoin Improvement Proposal kelimelerinin kısaltması olarak kullanılan BIP süreci ile her yazılım geliştiricisi, Bitcoin ve blokzinciri için geliştirme önerisi sunabilir.
BIP, Bitcoin ağında gerçekleşecek yükseltme, iyileştirme ve geliştirme fikirlerinin yer aldığı, bu fikirlerin tartışıldığı süreci ifade eder.
Bu sürece Bitcoin topluluğundaki herkes katılım gösterebilir.
Bununla birlikte, BIP’lerin kabul edilmesi için, sunan kişinin detaylı ve kapsamlı bir teklif ile gelmesi önemli bir unsurdur.
BIP yazma süreci, genellikle, forumlar ve sosyal medya gibi etkileşim alanlarında başlar.
Ardından BIP’in sunulması, editör onayından geçmesi, madencilerin %95’i tarafından onaylanması ve onaylandıktan sonra yükseltmelerin gerçekleştirilmesi aşamalarından oluşur.
Topluluğun onayına sunulan geliştirme önerileri uygun bulunduğu takdirde Bitcoin Kod Kütüphanesi’nde yayınlanır. Değişiklik önerileri geliştiriciler tarafından değerlendirilir, tartışılır ve kabul edilen öneriler topluluğa sunulur.
4) Bitcoin yazılımcısı olan kişiler nerelerde çalışabilir?
Bitcoin ve blokzincirine odaklanmış yazılım geliştiriciler, Bitcoin ve kriptopara alım satım platformlarında, Fintech sektöründe, DeFi uygulamalarında, NFT platformlarında, gaming yani oyun geliştirici şirketlerde ve blokzinciri tabanlı bir ürün ve hizmet sağlayan bankacılık faaliyeti gösteren bir şirkette çalışabilirler.
Bir kuruma bağlı kalmak istemeyen Bitcoin yazılım geliştiricileri ise mutlaka bir yerde çalışmak zorunda değillerdir. Serbest olarak çalışmayı tercih eden yazılımcılar, Bitcoin blokzinciri için bireysel olarak geliştirme önerileri hazırlayıp topluluğun onayına sunabilirler.
Bitcoin yazılımının geliştirilmesi için yazılımcıları destekleyen ve bunu gerçekleştirirken kar amacı gütmeyen kuruluşlar da bulunmaktadır. Bu kuruluşlardan birisi BtcTurk’ün de desteklediği, Bitcoin ağını, araştırma ve geliştirme ile güçlendiren yazılım geliştiricilere finansman, eğitim ve mentörlük sağlayan bir organizasyon olan Brink’tir.
Bunun yanı sıra Liquid Network ve Lightining Network gibi katman 2 protokolleri de Bitcoin’in günlük yaşamdaki kullanımını güçlendirip genişletmektedir. Bunun gibi projeler ve topluluklar da yine Bitcoin yazılımına odaklanmak isteyen geliştiriciler için birer fırsat olabilir.
5) Bitcoin alım satım platformlarında yazılım veya teknoloji departmanları hangi rollerden oluşur ve neler yaparlar?
Bitcoin ve kriptopara alım satım platformlarında yazılım ekibinin görev dağılımları; şirketin kendi dinamiği, verdiği hizmet ve organizasyonel yapısına göre değişebilir.
Konuları, çalışma alanları gereği alt ekiplere ayrılan yazılım geliştiricilerin en önemli görevlerinden birisi alım satım platformlarının sürekliliğini sağlayarak 7/24 çalışmasına devam etmesini sağlamaktır.
Bitcoin alım satım platformlarındaki yazılım departmanları; kurumun Baş Teknoloji Sorumlusu (CTO)’ya bağlı olarak çalışan ekiplerce oluşur. Bu ekipler içerisinde; Yazılım Mühendisleri, Product Owner, Ürün Yöneticisi (Product Manager), Test Mühendisleri, İş Analisti (Business Analyst), UX Designer, UI Designer, DevSecOps Mühendisleri, Veritabanı Yöneticisi (Data Base Admin), BI Geliştiricisi, Sistem Mühendisleri, Reliability Mühendisleri, Bilgi Güvenliği, Blokzinciri Geliştiricisi, iOS Geliştiricisi, Android Geliştiricisi gibi uzmanlar bulunur.
BtcTurk Yazılım Departmanı’nda, alanında uzman birçok kişi farklı konularda görev almaktadır. BtcTurk Yazılım Ekibi içerisinde; Cüzdan (Wallet) Ekibi, Blokzinciri (Blockchain) Entegrasyon Ekibi, Veritabanı Ekibi, Ön Yüz Geliştirme (Front End) Ekibi, Bankacılık ve Ödeme Entegrasyonu Ekibi, DevOps Ekibi, Güvenilirlik (Reliability) Ekibi, Ürün ve Deneyim Ekibi, Trading Ekibi, Mobil Ekip, Birinci Seviye (First Level) Destek Ekibi, Test ve Otomasyon Ekibi gibi alt ekipler bulunur.
Yazılım departmanlarında çalışan kişilerin görevleri;
Yazılım Mühendisleri: Uygulamaların, tasarımı ve mimarisini oluşturur, farklı teknolojiler kullanarak kodlamalar yapar, talepler doğrultusunda geliştirmeleri sağlarlar.
Product Owner: Ürünün vizyonuna göre oluşan ihtiyaçların analizlerini yapıp gelen talepleri önceliklendirerek yazılım ekiplerine aktarımını sağlar ve ürünün güncelliğini korur.
Product Manager: Ürünün fikir aşamasından, pazarlama ve satış sonrası hedeflenen başarıya ulaştığı noktaya kadar tüm ürün yaşam döngüsünü yönetir, bu doğrultuda iş birimleri ve teknoloji ekibi ile yakın temasta çalışır.
Test Mühendisleri: Bir proje fikir, tasarım, geliştirme, test gibi birçok farklı aşamadan geçtikten sonra müşteriler ile buluşur. Test mühendisi de bu aşamaların hepsinde aktif şekilde rol oynar, farklı test teknikleri ve otomasyon yöntemleri ile projenin istenildiği kalitede müşterilere ulaştığını doğrular.
İş Analisti (Business Analyst): İş analisti, kurumların iş süreçlerini değerlendirerek gereksinimleri belirler, ihtiyaçlara yönelik iyileştirilmelerin yapılması için iş akışlarında çözümler sunar, iş birimleri ile teknoloji ekipleri arasında köprü görevindedir.
UX Designer: Kullanıcı deneyim tasarımı, yazılım kullanıcı deneyiminde yaşayacağı etkileşim üzerine çalışmalar yapar.
UI Designer: Kullanıcı arayüz tasarımı, uygulamaların kullanıcıya açılan ekranlardaki görsel tasarımları kapsar, kullanıcının görsel deneyimine odaklanır.
DevSecOps Mühendisi: Yazılım geliştirme yaşam döngüsünün ilk tasarımdan entegrasyon, test, devreye alma ve yazılım teslimine kadar tüm aşamaları otomatikleştirirken uygulamaların altyapı güvenliği ve bütünlüğünü sağlar.
Database Admin: Veritabanı sistemlerinin sorunsuz, verimli ve hatasız şekilde çalışmasını sağlar.
Veri Mühendisi: Verileri süreçlerde kullanacak şekilde anlamlı hale getirir, analiz eder ve raporlar.
BI Geliştiricisi: Şirketlerin alacağı stratejik kararlarda belirleyici olacak tüm verileri inceler, yorumlar ve aksiyon planlarında çözümler sunarlar.
Sistem Mühendisi: Sunucu, depolama altyapısının hatasız ve kesintisiz hizmet verebilmesi amacıyla bu sistemlerin kurulum, işletme ve geliştirme çalışmalarında rol alır.
Reliability Mühendisi: Uygulama geliştirme ekipleri ile operasyon ekipleri arasında bir köprü görevi görerek geliştirme ekibinin yeni yazılım veya özellikleri mümkün olan en kısa süre üretim ortamına geçmesini sağlarken otomasyon süreçlerini artırırlar.
Bilgi Güvenliği: 7/24 yazılımları inceler, güvenlik kurallarına uygun şekilde işleyişin sağlanmasını kontrol eder, güvenlik açıklarını denetler, bulgulara göre iyileştirici aksiyonlar alır.
Blokzinciri Geliştiricisi (Blockchain Developer): Blokzinciri sisteminin güvenliğini ve mimarisini tasarlayarak protokollerin dizaynı üzerine geliştirmeler yaparlar.
iOS Geliştiricisi: iOS işletim sistemli cihazlar için mobil uygulama geliştirirler.
Android Geliştiricisi: Android işletim sistemli cihazlar için mobil uygulama geliştirirler.
Tech HR: Teknoloji ekibine dedike çalışır, yazılım jargonu deneyimi ile aktif işe alım süreçlerinde bulunurken, çalışan ve organizasyonların ihtiyaçları doğrultusunda pozitif deneyimler sağlayacak aksiyonlar alır.
6) Bitcoin alım satım platformlarında yazılım veya teknoloji departmanları ve yazılım geliştiriciler kimlerle çalışır?
Bitcoin ve kriptopara alım satım platformlarında sistemin daha iyi bir şekilde ilerlemesi için yazılım ekipleri kurum içerisinde bulunan birçok departmanla uyumlu olarak çalışmaktadır.
Bu ekipler içerisinde; içerisinde Product Owner, analistler ve tasarımcıların bulunduğu Ürün Yönetimi ve Deneyim Tasarımı Ekibi, Test Mühendisleri, Veri Tabanı Yöneticileri, DevOps Ekipleri, BI Ekipleri, Bilgi Güvenliği Ekipleri gibi uzman ekipler bulunur.
BtcTurk Yazılım Ekibi de daha iyi bir kullanıcı deneyimi yaşatmak için bu ekiplerle sürekli dirsek teması halindedir. BtcTurk Yazılım Ekibi, kendi iş planını belirlenmiş önceliklere göre kendisi yapmaktadır.
BtcTurk Yazılım Geliştirme Müdürü Onur Salkaya Bitcoin yazılımcılığına dair sorulara cevap veriyor.