about summary refs log tree commit diff
path: root/content/works.md
blob: a0b21f154c9ac3ce3c8f74c34d127dd85f0be1da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
---
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).

[cv]: /cv/

## Expectation

### 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]: /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 <strong>semantic <abbr>HTML</abbr></strong>, 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
<abbr title="Amazon Web Services">AWS</abbr>.  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