सेवा के बारे में
अनुवादितमैं OCaml में तेज और सही सिस्टम बनाता हूँ और इस भाषा को लोड के तहत महत्वपूर्ण चीजों के लिए सटीक रूप से चुनता हूँ: सख्त स्थैतिक टाइपिंग, व्यापक पैटर्न मिलान, और C के करीब प्रदर्शन। जब कंपाइलर मेरे कोड को स्वीकार करता है, तो पूरी श्रेणी की त्रुटियाँ पहले से ही समाप्त हो जाती हैं, और जो लॉजिक उपयोगकर्ताओं तक पहुँचता है वह वही है जो मैंने वास्तव में सोचा था, न कि आशावादी धारणाओं का संग्रह। मैं कंपाइलरों और भाषा उपकरणों, वित्तीय इंजनों पर काम करता हूँ जहाँ गोलाई की त्रुटियाँ अस्वीकार्य हैं, और बैकएंड जो तब भी जीवित रहना चाहिए जब उनके चारों ओर सब कुछ बदलता है।
मैं अधिकांश कार्यों को इस तरह से करता हूँ कि अमान्य स्थितियाँ व्यक्त नहीं की जा सकें। मैं समस्या के डोमेन को भिन्न प्रकारों और रिकॉर्ड के साथ मॉडल करता हूँ ताकि डेटा संरचना स्वयं नियमों को लागू करे, और पैटर्न मिलान प्रत्येक मामले को कवर करे जो कंपाइलर को ज्ञात है। यह आदत अस्पष्ट आवश्यकताओं को एक डिज़ाइन में बदल देती है जहाँ गलतियाँ करना कठिन होता है, और जैसे-जैसे सुविधाओं की संख्या बढ़ती है, कोड को ईमानदार बनाए रखती है। मैं प्रदर्शन को भी गंभीरता से लेता हूँ: पूर्वानुमानित मेमोरी आवंटन, घनी डेटा संरचनाएँ, और अनुकूलन से पहले प्रोफाइलिंग ताकि संख्याएँ वहाँ सुधारें जहाँ उन्हें मापा जाता है, न कि जहाँ यह बस धीमा लगता है।
आपको पठनीय और अच्छी तरह से प्रलेखित मॉड्यूल मिलते हैं, एक परीक्षण सेट जो ठीक उसी जटिल पथों का परीक्षण करता है, और एक निर्माण जो एक सहयोगी बिना एक सप्ताह की जनजातीय ज्ञान के बिना शुरू कर सकता है। मैं मौजूदा C कोड के साथ इंटरफेस करने, एक सेवा को एक बड़े स्टैक में एम्बेड करने, या एक खाली रिपॉजिटरी से एक प्रोजेक्ट को शुरू करने में सहज हूँ। उस बाधा का नाम बताएं जो आपको चिंतित करती है, और मैं पहले उसके चारों ओर सिस्टम डिज़ाइन करूंगा।
— कंपाइलर, पार्सर, डोमेन-विशिष्ट भाषाएँ, और स्थैतिक विश्लेषण
— कम-लेटेंसी वित्तीय और ट्रेडिंग बैकएंड
— प्रकारों और पुनर्गठन के माध्यम से डोमेन मॉडलिंग
— C के साथ इंटरफेसिंग, प्रोफाइलिंग, और ट्यूनिंग
मैं अधिकांश कार्यों को इस तरह से करता हूँ कि अमान्य स्थितियाँ व्यक्त नहीं की जा सकें। मैं समस्या के डोमेन को भिन्न प्रकारों और रिकॉर्ड के साथ मॉडल करता हूँ ताकि डेटा संरचना स्वयं नियमों को लागू करे, और पैटर्न मिलान प्रत्येक मामले को कवर करे जो कंपाइलर को ज्ञात है। यह आदत अस्पष्ट आवश्यकताओं को एक डिज़ाइन में बदल देती है जहाँ गलतियाँ करना कठिन होता है, और जैसे-जैसे सुविधाओं की संख्या बढ़ती है, कोड को ईमानदार बनाए रखती है। मैं प्रदर्शन को भी गंभीरता से लेता हूँ: पूर्वानुमानित मेमोरी आवंटन, घनी डेटा संरचनाएँ, और अनुकूलन से पहले प्रोफाइलिंग ताकि संख्याएँ वहाँ सुधारें जहाँ उन्हें मापा जाता है, न कि जहाँ यह बस धीमा लगता है।
आपको पठनीय और अच्छी तरह से प्रलेखित मॉड्यूल मिलते हैं, एक परीक्षण सेट जो ठीक उसी जटिल पथों का परीक्षण करता है, और एक निर्माण जो एक सहयोगी बिना एक सप्ताह की जनजातीय ज्ञान के बिना शुरू कर सकता है। मैं मौजूदा C कोड के साथ इंटरफेस करने, एक सेवा को एक बड़े स्टैक में एम्बेड करने, या एक खाली रिपॉजिटरी से एक प्रोजेक्ट को शुरू करने में सहज हूँ। उस बाधा का नाम बताएं जो आपको चिंतित करती है, और मैं पहले उसके चारों ओर सिस्टम डिज़ाइन करूंगा।
— कंपाइलर, पार्सर, डोमेन-विशिष्ट भाषाएँ, और स्थैतिक विश्लेषण
— कम-लेटेंसी वित्तीय और ट्रेडिंग बैकएंड
— प्रकारों और पुनर्गठन के माध्यम से डोमेन मॉडलिंग
— C के साथ इंटरफेसिंग, प्रोफाइलिंग, और ट्यूनिंग