রবিবার, ৩ এপ্রিল, ২০২২

My software engineering interview experience with Enosis Solutions

আমি Enosis Solutions এর recruitment এর ব্যাপারে জানতে পারি আমার ডিপার্টমেন্টের এক সিনিয়র বড় ভাইয়ের থেকে। আমাদের ক্লাস থেকে যারা সেখানে Software Engineer পদে আবেদন করতে ইচ্ছুক তাদের name, e-mail, contact info ইত্যাদি Enosis Solutions এর HR উনার মাধ্যমে সংগ্রহ করেন। 


অতঃপর HR থেকে আমাকে একটি mail করা হয় এবং রিপ্লাই হিসেবে আমাকে CV পাঠাতে বলা হয়। আমার CV আগেই তৈরি ছিলো। আমি একবার check করে কিছু জিনিস update করে CV পাঠিয়ে দেই। 


HR call করে আমাকে interview এর প্রথম প্রোগ্রামিং সেশনের ব্যাপারে জানান এবং আমাকে নির্ধারিত সময়ের ৫মিনিট আগে থেকেই সেখানে উপস্থিত থাকতে বলেন। পাশাপাশি তিনি এ ব্যাপারে বিস্তারিত একটি mail ও পাঠান। উনি জানান যে প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসেবে আমি শুধু C# ব্যবহার করতে পারবো, যদি syntax ব্যবহারে কোন complication face করা লাগে, সেক্ষেত্রে interviewer আমাকে সহয়তা করবেন। সেশনের দৈর্ঘ্য হবে ১৫ মিনিট এবং এটি অনলাইনে হবে। 


কথামত আমি ৫ মিনিট আগে থেকেই মিটিং এ জয়েন দিয়ে থাকি। Interviewer ও নির্ধারিত সময়ের আগেই চলে আসেন। ছোট করে greetings এর পর তিনি আমাকে স্ক্রিন শেয়ার করতে বলেন, ফেস ক্যাম আগে থেকেই অন ছিলো। এরপর তিনি আমাকে একটি IDE এর লিঙ্ক দেন, যেখানে আমাকে solution code লিখতে হতো। এরপর তিনি আমাকে প্রথম প্রব্লেমের লিঙ্ক দেন ও সেটি explain করে দেন। প্রব্লেমটি ছোট implementation type ছিলো, কিন্তু প্রথম দেখায় আমি optimal কিছু চিন্তা করতে পারিনি। এক মুহূর্তের জন্য মনে হয়েছিলো আমি হয়তো solve করতে পারবো না। কিন্তু কিছুক্ষণ চিন্তা করার পর optimal solution বের করতে পারি। প্রথমটা solve করতে আমার ১০ মিনিটের মতো লেগে যায়। এরপর interviewer আমাকে দ্বিতীয় প্রব্লেমটি দেন। এটি আগেরটির তুলনায় সহজ ছিলো। তাই খুব বেশি কিছু চিন্তা না করেই আমি কোড করে ফেলি। Interviewer আমাকে program রান করে দেখতে বলেন। রান করার পর দেখা গেল কোডে প্রিন্ট করার জন্য যে লুপ ঘুরাচ্ছিলাম সেটি একবার কম ঘুরছিলো। Interviewer আমাকে debug করার সুযোগ দেয়। আমি দ্রুত debug করে আবার রান করি, এবার সঠিক আউটপুট দেখাচ্ছিল। তিনি কোডের ফাইলটি জমা নেন এবং interview সমাপ্ত হয়। 


পরদিন বিকেলে HR আমাকে কল করে জানায় যে আমি পরের ধাপের জন্য নির্বাচিত হয়েছি। এবারের ধাপটি ১:৩০ ঘন্টার প্রোগ্রামিং সেশন। এবারও আমাকে C# এ কোড লিখতে হবে। এই ধাপে অনলাইনে স্ক্রিন কন্ট্রোলের মাধ্যমে interviewer এর PC তে code লিখা লাগে। আমাকে দুটি প্রব্লেম দেওয়া হয় সল্ভ করার জন্য। দুর্ভাগ্যবশত দুটি প্রব্লেমেই আমার statement পড়ে প্রব্লেম বুঝতে অনেক সময় লেগে যায়। 


প্রথম প্রব্লেমটির ইনপুট ফরম্যাট আমি ভুল বুঝে কোড করি। পরে interviewer সেটি বুঝতে পারে এবং প্রব্লেমটি আরেকবার সহজ করে ব্যাখ্যা করেন। প্রব্লেমটি বুঝার সাথেসাথে আমি ঝটপট কোড লিখে ফেলি এবং সেটি সঠিক আউটপুট দেখাচ্ছিল। Interviewer আউটপুট সামান্য পরিবর্তন করে সেটি generate করতে বলেন। আমি কোডে খুব সামান্য modification করেই সেটি করে ফেলি।  


দ্বিতীয় প্রব্লেমের আমি কোড লিখার আগে নিজের সল্যুশন আইডিয়া interviewer এর সাথে শেয়ার করি। কারণ আগের প্রব্লেমে ভুল সল্যুশন implement করতে গিয়ে অনেক সময় নষ্ট হয়েছিলো। তবে এবারও আমার ঝামেলা কম পোহাতে হয় না। ইনপুট class এর object হিসেবে থাকায় আমার মাথায় শুধু object oriented programming approach আসছিলো। Interviewer আমার ভুলটা আলোচনার মাধ্যমে ধরিয়ে দেন এবং ছোট করে একটি hint দিয়ে দেন যে data structure ব্যবহার করতে হতে পারে। কথাটা শুনার সাথে সাথে আমার ব্রেইনে প্রথম যে আইডিয়াটা হিট করে সেটাই correct solution ছিলো। এবারো প্রব্লেম বুঝতে দেরি, কিন্তু কোড করতে দেরি হয় না। একবার রান করেই সঠিক আউটপুট generate করতে পারি।


এই দুটি প্রব্লেমের পর interviewer আরও একটি প্রব্লেম আমাকে মুখে মুখে জিজ্ঞাসা করেন। এটি গ্রাফ সম্পর্কিত একটি classical সমস্যা ছিলো। এ ধরনের সমস্যা আমার সমাধানের পূর্ব অভিজ্ঞতা থাকায় আমি সহজেই সল্যুশন আইডিয়া উনাকে ব্যখ্যা করতে সক্ষম হই। তবে এই প্রব্লেমের difficulty আগের দুটির তুলানায় অনেক high ছিলো। 


Interview শেষে আমি উনার থেকে feedback চাই আমার performance এর ব্যাপারে। উনি খুব উৎসাহের সাথেই feedback দিলেন। বললেন, আমি প্রব্লেমগুলোর সল্যুশন খুব জটিল করে চিন্তা করছিলাম। টাইম ম্যানেজমেন্টের ব্যাপারেও improve করার পরামর্শ দিলেন। আসলে প্রতিটি প্রব্লেমের জন্য ২৫ মিনিট করে বরাদ্দ ছিল, কিন্তু উভয় প্রব্লেমের ক্ষেত্রেই আধা ঘন্টা উপরে সময় লেগেছিলো। Interview শেষ করার পর আমি মোটামুটি শিউর ছিলাম যে জব অফার পাবো, কারণ আমি প্রব্লেম সবগুলোই সল্ভ করতে পেরেছি, হোক না একটু দেরিতে :( . তবে আফসোস একটাই প্রব্লেম বুঝতে দেরি না করলে performance আরও অনেক ভাল হত। 


এক সপ্তাহের মধ্যেই আমাকে HR থেকে কল করা হয়। তিনি আমার academic কার্যকলাপ, উচ্চতর শিক্ষার পরিকল্পনা, ঢাকায় কোথায় জব করছি ও থাকছি, expected salary ইত্যাদি সম্পর্কে জানতে চান। এরপরের এক সপ্তাহের মধ্যে আমি জব অফার পাই। আমি ফেব্রুয়ারি ১, ২০২২ থেকে Enosis Solutions এ জয়েন করি। 


কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন