My accomplishments in the last 10 years, which make me stand out, are mostly:
- starting two widely adopted open-source projects:
- applying my academic-trained rigor and discipline:
- looking for technological leverages for the underdog (small team, startups, etc)
- formalizing a repeatable framework for growing an engineer professionally
- expanding my career through networking and being active in the communities:
- sharing as much as I can on my blog: ariya.io (regularly updated, 30K visits/month)
- delivering ~10 tech talks/year at various developer events and conferences
At this stage, an ideal role for me will be something that touches three aspects: practical system architecture, technical leadership, and knowledge sharing.
Things I will consider strongly
I have gone through the process of growing a team (up to 50 software engineers). While doing that, I discovered some systematic steps to elevate each engineer to the next level (described in my QConSF talk: Making a Bigger Impact), whether to become a respected team lead or as a thriving engineering manager. I will have a blast repeating that experience.
I truly enjoy the journey of building a product from the ground-up. For my previous employment (at Shape Security), I joined the company when there was no product, no customer, no revenue. After 4+ years being there leading its engineering team and participating heavily in its architecture design, the annual revenue per software engineer finally reached a 7-figure number (USD). When that target was achieved, I decided that I want a new, different chapter in my career. If I have a chance to experience it once more, that will be very fascinating.
In a start-up environment, placing a careful bet on a certain technology is mandatory, to be used as a leverage against the usual BigCos. During my time working for two start-ups, I had a lot fun campaigning and evangelizing particular system designs, often before they became popular, from Chromium as the basis for web app run-time to the use of Docker container for process isolation. Lately I furiously push for as much managed services possible, thereby reducing the high cost of site operation. I am passionately rooting for the underdog, while systematically looking for technological leverages here and there.
For the last few years, I grow an obsession towards distributed system. As part of my work, I studied various system designs which would permit the operation of a planetary-scale Reverse-Proxy-as-a-Service. I believe that "every distributed system’s problem can be solved with another reverse proxy". I would love to further my study on this subject.
In the spirit of knowledge sharing, I’ve already continuously put my thought out there, both in written form (selected collections) and occasional public speaking. I’ve been also involved in open-source communities, both while doing my own projects (PhantomJS, the first headless web browser and Esprima, one of the most popular Node.js module with 70M downloads/month) as well as helping others in the past (Qt, KDE, WebKit).
Things I will not be interested in
I do not plan to work in the fields where the domain expertise is something that I do not currently posses, nor do I plan to acquire in the near future: Identity and Access Management (IAM), Blockchain, Cryptocurrency, end-point security, malware protection, healthcare, financial technology (Fintech), game consoles, wearable, Internet-of-Things (IoT), and the related fields.
I doubt that I have a good understanding of consumer business, thereby hampering my success if I would have worked on e.g. a B2C or C2C e-commerce system.
I am not the right person to build a front-end UI with Angular/React/Vue. My knowledge of JavaScript is about its language, not the use of JavaScript for web applications. Think of it, it is very rare that a linguist periodically writes some Op-eds for The New York Times. Likewise, while I dabbled with Node.js/Python/PHP/Java EE, it is not sufficiently deep to let me build or scale a back-end application.
My knowledge of Android and iOS is at the superficial level, nothing beyond the usual tutorials and toy applications. Hence, I will not be qualified to design and develop native mobile apps.
For the foreseeable future, I settle in the South Bay (of the San Francisco Bay Area). Occassional travel is never a problem, but I have some family commitments which prevent me from being away for far too long. As for any relocation, unless the opportunity is very absolutely extremely compelling and earth-shattering, I do not plan to have a conversation with my family about moving to a different city, state, or country.