Herkese merhaba, ben Okan.
Aralık 2019 tarihinden bu yana iyzico’da technical support engineer olarak çalışıyorum. Bu blog yazımda özellikle hangi konuya odaklanmak istediğimi düşünürken benim için en iyi başlangıcın hazır bir birikimle iyzico’da çalıştığım projelerden bahsetmek olduğuna karar verdim. Diğer yandan hem iyzico içinde farklı departmanlarda çalışan hem de başka firmalarda çalışan arkadaşlarımın zaman zaman ne tür projelerde çalıştığım yönünde sorduğu sorular bu anlamda bana motivasyon sağladı. Bu yazıyla birlikte tüm sorularına çok daha detaylı bir cevap verme fırsatı bulacağım çünkü yaptığım işin mutfağı bir noktada multidisipliner bir yapıda olduğu için kısaca açıklaması çok da kolay olamıyordu.
iyzico’da çalışmaya başlamdan önce toplamda 3 yıl boyunca yazılım mühendisi olarak çalıştım. Bu pozisyona başvuru sürecimde, kişisel deneyim ve teknik becerilerim konusunda genel bir öz değerlendirme yaparak, mevcut durumu ve gelecekte almak istediğim sorumlulukları gözden geçirme fırsatı buldum. iyzico’da açılan “Technical Support Engineer” pozisyonunun çok iyi düzeyde teknik bilgi sahibi olmanın yanı sıra iletişim yönü güçlü ve bu konuda yetenekli kişilere yönelik olduğunu biliyordum. Bu konuda kendime güveniyordum; özellikle iletişim konusunda kendimi daha aktif olarak geliştirmek ve profesyonel hayatımda bu yönümü daha fazla kullanmak istiyordum. Bu açıdan baktığımda iyzico benim için iyi bir seçim ve başlangıç oldu.
Technical support engineer rolünün çok yönlü bir bakış açısı ve sorumlulukları olan bir kavram olduğuna değinmiştim. Bu cümlenin altını çizmek istiyorum çünkü bu rolün her firmadaki karşılığı ve sorumlulukları farklı olabiliyor. İş yapış şeklindeki genel ve özel başlıklar da haliyle değişebiliyor. Ben bu yazıda iyzico’daki karşılığını ve “payment” kategorisinde hangi konularda ve ne türde işler yaptığımızı anlatmaya çalışacağım.
Bir technical support engineer, payment’ın tüm yaşam döngüsünü hem teknik alanda hem de business alanındaki karşılığı ile öğrenmelidir. iyzico gibi 7/24 hizmet veren ve son derece önemli birçok güvenlik protokolüne sahip ödeme alt yapıları sunan bir şirket için “payment yaşam döngüsü” dikkat gerektiren bir konu. Öyle ki acil durum müdahalesi gereken olası durumlar veya problemler için anında sorunu tespit edip, en etkili çözümü bulabilmenin yolu yine döngünün kendisinden geliyor. Yani payment süreçlerini, en iyi şekilde kavramak ve anlamak yaptığımız işin olmazsa olmazı diyebiliriz. Dolayısıyla sadece yazılımda detaycı ve dikkatli olmak yeterli değil aynı zamanda analiz edebilme ve iletişim kurabilme kaslarınızın da gelişmiş olması gerekli. Yaptığımız işin çoğunda yazılım ve diğer iş birimleri arasındaki trafik oluşturuyor (diğer iş birimleri= operasyon, first – second level support, entegrasyon, key account). Bu noktada en sık operasyon ve key account ekipleri ile bu iş sirkülasyonunu yaşıyoruz. iyzico müşterileri, dahili olarak kullandığımız uygulamalardan kaynaklanabilecek olası sorunlarını bize Kanban Board üzerinden bildiriyorlar. İçerdeki ekip olarak biz de ağırlıklı olarak Java kullanıyoruz. Ek olarak kullandığımız ilişkisel veritabanı (relational database) var. Yine genellikle kullandığımız “log tracing” aracı ise hataları izlediğimiz yer oluyor ki burası çeşitli arama türlerine sahip bir uygulama olduğu için çok iyi çalışıyor. Hatayı bulmayı kolaylaştıran ve detaylara kolayca girip inceleyebileceğiniz bir görev yapısına sahip olmasından dolayı bu aracı bilmek, öğrenmek ve kullanmak bir yazılım mühendisi için oldukça önemli. Elbette içinde bulunduğumuz ekosistem içindeki çok başarılı firmalar da bu araçları kullanıyor.
Yine “log tracing” ile ilgili exception’ı bulduktan sonra çıkan kodu okumak gerekiyor. Bu işlemle ilgili işleri yapmak çok daha kolay bir hale geliyor çünkü kod bölümünde hataya neden olan yeri bulup duruma göre kolayca düzeltebiliyoruz. Bu noktada çıkabilecek ek sorunlar olduğu durumda ise ilgili yazılım ekibi ile iletişime geçip, durum analizleri için gerekli hazırlıkları ve iletişimleri kuruyoruz.
Mesleğimizde birçok yazılımcı aslında bug olmadığı halde açılan task’lerle karşı karşıya kalmıştır. Bu noktada önemli olan bu durumu karşı tarafa en iyi şekilde anlatmak ve etkili bir iletişim yöntemi ile bu konuyu bug task’i olarak açılmaması gerektiğini anlamalarını sağlamaktır. Bu konunun gerçekten çok önemli bir detay olduğunu düşünüyorum. Bu açıdan yazılım ve iş ekipleri arasındaki iletişimin dengesini kurmak her iki taraf için de oldukça önemli. Technical support engineer, aslında tam da bu süreç iyileştirmelerine en doğrudan ve olumlu bir şekilde katkıda bulunma potansiyeli olan bir rolde çalıştığının farkındadır. İş sürecinde en sık karşılaşılan aksaklıkları ve sorunları gözlemler, bilir ve bunların çözülmesi için geliştirilmesi gereken alanları bildiği için yazılım ekipleri ile koordineli çalışarak süreci iyileştirir. İş paydaşlarına bu anlamda katkıda bulunur.
Genel olarak technical support engineer rolünü anlatmaya çalıştığım bu yazı ile bu alanda aklında soruları olan herkese umarım bir cevap verebilmişimdir. Okuduğunuz için çok teşekkürler.