about summary refs log tree commit diff
path: root/content/works.md
blob: 73c91f3fcfe54d0c4ee2d524f9a0d1a24906af05 (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
---
title: Works
language: en
translationKey: works
disable_feed: true
---

I am a web backend developer, though I'm open to experiment in other fields as
well.  You can look at my project on:

- [GitHub](https://github.com/Huy-Ngo/)
- [Disroot Git](https://git.disroot.org/huyngo)
- [source hut](https://sr.ht/~huyngo/)

See my CV in PDF format [here][cv].

# Education

- Bachelor: University of Science and Technology of Hanoi, 2018-2021

# Free Software work

## Web apps

### Acanban

[Acanban][acanban] is an in-development academic-oriented project management
system.

So far, we have implemented only basic project collaboration features. There is
much work to be done in the future.

## Libraries

### Palace

[Palace][palace] is a 3D audio library in Python.  It is a wrapper around
OpenAL for Python, expecting to provide developers with modern and intuitive
utilities for audio processing.

## Chat bots

### Discord meme bot

[Meme bot][discord-meme-bot] is a meme bot for discord using Reddit API.

## Game

### Axuy

I added face culling and added texture to the 3D shooting game [axuy][axuy] by
[McSinyx][cnx].

![axuy](axuy.png)

The game uses [palace](#palace) for 3D audio by the way.

## Packaging

### Floating cheeses

> The [interplanetary wheels][ipwhl] (or floating cheeses) are platform-unique,
> singly-versioned Python binary distributions backed by IPFS for security and
> reproducibility.

I occasionally participated in packaging for this distribution.

### dictd

I am [packaging](alpine-dictd) [dictd][dictd] for Alpine Linux. It is
unfortunately not done yet.

## Miscellaneous

- [YAltaCV], a Python script that generate AltaCV-themed CV from YAML data
- [cov-news][cov], a scraper for COVID-19 related news 
- [Wikt CLI][wikt-cli] is a CLI Wiktionary client using its API.
- [GenWord][genword] a word generator on Android, alternative to
  [its JS equivalent][gen]
- [IPA keyboard layout][ipa] for FlorisBoard
- [One-character PR][publiccode] for Public Code standard

# Non-free software work

Not all of us can afford the luxury of being able to work full-time as free
software developer.  I still appreciate my time working in a non-free software
company for the knowledge and experience I gained from there.

## Internship

During my internship at VCCorp, I have worked with several problems related to
mail, namely:

- disposable mail service
- mail tracking[^1]

[cv]: https://raw.githubusercontent.com/Huy-Ngo/my-cv/master/huy-cv.pdf
[palace]: https://git.sr.ht/~cnx/palace
[acanban]: https://github.com/Huy-Ngo/acanban
[YAltaCV]: https://github.com/Huy-Ngo/YAltaCV
[discord-meme-bot]: https://github.com/Huy-Ngo/discord-meme-bot
[wikt-cli]: https://git.sr.ht/~huyngo/wikt-cli
[genword]: https://git.sr.ht/~huyngo/GenWord
[cov]: https://github.com/Huy-Ngo/cov-news
[gen]: www.zompist.com/gen.html
[ipwhl]: https://sr.ht/~cnx/ipwhl/

[alpine-dictd]: https://lists.alpinelinux.org/~alpine/aports/%3C20210504151538.25378-1-huyngo%40disroot.org%3E#%3C20210505015044.lqjmzxevnqwdggux@linux.local%3E
[dictd]: https://sourceforge.net/projects/dict/files/
[axuy]: https://sr.ht/~cnx/axuy/
[cnx]: https://cnx.srht.site/
[ipa]: https://github.com/florisboard/florisboard/pull/560
[publiccode]: https://github.com/publiccodenet/standard/pull/439#issuecomment-774983961


[^1]: I feel guilty working with a privacy-invading feature, but given the
  context that it is business email, it probably does not matter much.