---
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