--- title: Works language: en translationKey: works disable_feed: true --- Consider this my informal portfolio. My projects can be found on [GitHub](https://github.com/Huy-Ngo/) and [sourcehut](https://sr.ht/~huyngo/). For a more formal one, see my [CV in web format][cv] (printable as PDF). ## Expectations Unless you're able to provide me a full-time employment with required benefits, any contractual works must be [free software][free-sw]. I accept payment and donation on [liberapay][liberapay]. You can also send me money on [patreon][patreon] ~~and [PayPal](https://paypal.me/huynnd)~~. My PayPal account is currently locked. If you want to pay in another way, such as bank transfer or cash, please contact me via Matrix or email. [free-sw]: https://www.gnu.org/philosophy/free-sw.html [liberapay]: https://liberapay.com/huy.ngo/ [patreon]: https://www.patreon.com/__huy_ngo__ [cv]: /cv/ ### Things I can offer - I mostly work with Python, though I have dabbled with various others. - I can write, with decreasing level of confidence: - web services or full web apps - libraries - other kinds of user-space software - I get familiar relatively quick with new technology, enough to get small patch done in one or two weeks. - I can get quickly familiar with the business logic and can have suggestions on the software usability ### Things I would like to see I would expect a contract granting me healthcare and labour protections and no overtime. Other than that, these are nice things to have: - well-documented codebase and installation instruction - company hardware - fully [remote work][remote] with occasional hanging out onsite - letting me work for slightly less than full-time (e.g. 4 days per week) [remote]: /en/posts/2022-10-15-remote-work/ ### Things I'm not interested in I would likely refuse the offer if it's about: - tracking people for analytics, whether online or offline - cryptocurrencies, NFTs, blockchains... - "serverless", "cloud-native" software (an actually serverless program where alternatives are traditionally server-based, such as SQLite, might interest me) I also find the following repulsive: - regular hour-long meetings - contacting me outside working hours - JavaScript-heavy, inaccessible front-end - network blocking as measures of "security" - work that are based on oppression of others - work that are based on deception - intentionally volatile software ## Skills My strongest suit is **web development** on backend side. I have the most experience in **Python**, though I have written web servers in **Node.js** and **Go** as well. While preferring backend development, I am certain of my basic knowledge in semantic HTML, as well as basic styling. In web development with Python, I am most familiar with **Flask** and **Django** as framework. I have also tried **Quart** (Flask's async cousin) and **FastAPI** for a short while. While being no master, I have written **systemd** services for some of my software. While I mostly work in web for its ease of deployment and availability across platforms, I have also experimented in other areas, such as working on a [3D sound processing library][palace]. I dare not say I know git, but it's my primary version control system. I have also experimented with mercurial and subversion for a short time, but I never managed to work with throwing a tarball around---maybe with an one-time exception when I hacked[^0] a browser extension with my friends in an afternoon. I can work in Vietnamese and English. ## Education - Bachelor: University of Science and Technology of Hanoi, 2018-2021 ## Works ### Free software I support free software by writing it and contribute to some projects within my ability. I write code: - [Acanban][acanban], a project management system - [Wikt CLI][wikt-cli] is a CLI Wiktionary client using its API. - [Discord meme bot][meme-bot], a meme bot for Discord - [Palace][palace], a 3D audio library - [ex.tra][extra], a DICT server [palace]: https://sr.ht/~cnx/palace/ [acanban]: https://github.com/Huy-Ngo/acanban [wikt-cli]: https://git.sr.ht/~huyngo/wikt-cli [meme-bot]: https://github.com/dinhanhx/discord-meme-bot [extra]: https://git.sr.ht/~huyngo/ex.tra I package stuff: - I co-maintained [IPWHL (floating cheeses)][ipwhl], a singly-versioned Python binary distributions - I added a community package [badwolf][badwolf] on openSUSE - I packaged [honk][honk] on NixOS [ipwhl]: https://sr.ht/~cnx/ipwhl [badwolf]: https://software.opensuse.org/package/badwolf [honk]: https://humungus.tedunangst.com/r/honk I help with localization: - Vietnamese translation for [badwolf][badwolf] - Vietnamese translation for [Loop Habit Tracker][loop] - Vietnamese translation for [Binary Eye][bin-eye] [loop]: https://github.com/iSoron/uhabits [bin-eye]: https://github.com/markusfisch/BinaryEye I contribute code/fix bugs: - Scribe redirect for [libredirect][libredirect] - Fix some bugs for [Akkoma FE][akko-fe] [libredirect]: https://github.com/libredirect/browser_extension [akko-fe]: https://akkoma.dev/AkkomaGang/akkoma-fe ### Employment I have worked on webmail during my internship at [BizflyCloud][bizfly]. During the job, I have shown my skills with **Flask** and learned about ElasticSearch. Since 2021, I have been employed by [CMC Global][cmc], an outsource company. During my time here, I have been working with **Django** and AWS. While having no prior experience with these technology, I had quickly familiarize myself with them and became a key member in my team. [bizfly]: https://bizflycloud.vn/ [cmc]: https://cmcglobal.com.vn/ [^0]: [jargon][hack-jargon]: [very common] 1. n. Originally, a quick job that produces what is needed, but not well. 2. n. An incredibly good, and perhaps very time-consuming, piece of work that produces exactly what is needed. [hack-jargon]: http://catb.org/jargon/html/H/hack.html