190 lines
6.9 KiB
Markdown
190 lines
6.9 KiB
Markdown
title: Jobs, Hacks and Bounties
|
|
---
|
|
subtitle: Doing stuff with or at ungleich
|
|
---
|
|
image: /u/image/cards/jobs.jpg
|
|
---
|
|
description1:
|
|
|
|
## Introduction
|
|
|
|
You might know, ungleich means "not equal" or "different" in
|
|
English. So working for, with or at ungleich is usually a bit
|
|
different from working for other companies. We practice a high degree of
|
|
remote working and our team consists of a lot of international
|
|
members from a variety of cultures.
|
|
|
|
So instead of the classical "job openings", we have three different
|
|
sections of how to get started with ungleich.
|
|
|
|
## Hacks
|
|
|
|
Hacks are easy to do, easy to learn tasks that help you understand
|
|
the way we work and the technology stacks we use. These are easy
|
|
things to do at home or anywhere you are. You can join the
|
|
[open chat room "Hacking & Learning"](/u/projects/open-chat/) for
|
|
asking questions.
|
|
|
|
### Hack 1: Get IPv6
|
|
|
|
For most stuff we do, you will need IPv6. Head over to the
|
|
[IPv6 VPN](/u/products/ipv6-vpn/) to get yourself started. Note:
|
|
the VPN is for free if you have a VM with us.
|
|
|
|
### Hack 2: Deploy ubookmark
|
|
|
|
[ubookmark](/u/projects/ubookmark/) is a simple Django app.
|
|
Deploy it on your local machine (it
|
|
is IPv6 reachable, isn't it?) and send us a shout when it's reachable
|
|
using HTTPS. If you need a domain name for your letsencrypt
|
|
certificate, checkout [has-a.name](https://has-a.name).
|
|
|
|
### Hack 3: IPv6 cat
|
|
|
|
Create a micro django project that does the following:
|
|
|
|
* If you are visiting via IPv4, it will show a static page saying "Sorry, only reachable by IPv6"
|
|
* If you are visiting it via IPv6, it will show a friendly cat picture
|
|
* No other features required, design up to you
|
|
|
|
### Hack 4: Mini Marketplace
|
|
|
|
This project is designed to check your skills as a Django developer.
|
|
Create a django project that provides the following features:
|
|
|
|
* User login + registration
|
|
* A logged in user can create items to sell
|
|
* An item to sell has a name, description and can have 1-5 pictures
|
|
attached, and obviously a price
|
|
* There should be one page with all items that are able to be sold
|
|
(can be seen without login)
|
|
* There should be one page with all items that have been sold
|
|
* A logged in user can buy an item from another user
|
|
* Users should be able to write messages to each other in a reasonable
|
|
way (not to anyone, think about what makes sense)
|
|
* You do not need to implement real world payment services
|
|
|
|
### Hack 5: Mini Marketplace with Matrix communication
|
|
|
|
* Based on hack 4
|
|
* However instead of using your internal messaging, you are going to
|
|
use the Matrix protocol
|
|
* Whenever users want to talk to each other, create a matrix room for
|
|
them
|
|
* For each article that is being sold, create a matrix room in which
|
|
users can discuss the item
|
|
|
|
|
|
## Jobs
|
|
|
|
We are currently looking for three new engineers to join us:
|
|
|
|
* Senior DevOps (K8S, cdist, Alpine Linux) Engineer (20-100% role)
|
|
* Senior Developer (Python, Django) (20-100% role)
|
|
|
|
|
|
|
|
## Bounties
|
|
|
|
At ungleich we heavily depend on and contribute [Open Source
|
|
Software](/u/projects/opensource). Sometimes (often?) we have a lot of
|
|
ideas we would like to implement in Open Source Software, but daily
|
|
tasks prevent us from implementing them.
|
|
|
|
We at ungleich have created a bounty program that offers
|
|
money for fixing/hacking Open Source Software.
|
|
|
|
|
|
### Bounty 1: eboard updates
|
|
|
|
[eboard](https://www.bergo.eng.br/eboard/) is a classical FICS client
|
|
for playing chess on the Internet. However, it did not have some
|
|
updates for some time, so we offer the following bounties:
|
|
|
|
* Add eboard to Alpine Linux packages (__30 CHF__)
|
|
* Bounty paid when it's in __apk add__ able from either edge/testing/community
|
|
* Add alsa support to eboard upstream (__50 CHF__)
|
|
* Enable beeping on move of the opponent without the OSS emulation
|
|
* Bounty successful when a new eboard release was made with it
|
|
* Add IPv6 support to eboard (__50 CHF__)
|
|
* FICS is basically using a telnet protocol
|
|
* Eboard does not work in NAT64 scenarios, because it does not have IPv6 support
|
|
** Bounty successful when a new eboard release was made with it
|
|
|
|
### Bounty 3: Enable IPv6 only in the Linux kernel
|
|
|
|
As you might remember, we created
|
|
[a challenge to disable
|
|
IPv4](https://ungleich.ch/en-us/cms/blog/2019/01/09/die-ipv4-die/) in
|
|
your operating system. It turns out that as of 2020-05-01, the only
|
|
operating system that truly can turn off IPv4, is FreeBSD.
|
|
|
|
If you are into hacking the Linux kernel, we offer a __300 CHF__
|
|
bounty to disable IPv4 in the Linux kernel. The bounty includes:
|
|
|
|
* Create a patch against Linux mainline that completely disables IPv4
|
|
* Ensure that make menuconfig/config can turn IPv4 off
|
|
* Preparing the patch so that it can be included
|
|
* Submission to LKML
|
|
* Polishing patch so that it can be accepted
|
|
* Patch is included in the Linux kernel source git repo
|
|
* Show a short proof of concept that there is truly no more IPv4
|
|
|
|
### Bounty 4: Enable IPv6 only in the OpenBSD kernel
|
|
|
|
Very similar to bounty 3, we offer another __300 CHF__ bounty, if you
|
|
can patch OpenBSD to fully disable IPv4. Requirements for collecting
|
|
the bounty:
|
|
|
|
* Create the necessary kernel patch
|
|
* Get it included into the OpenBSD source tree
|
|
* Show a short proof of concept that there is truly no more IPv4
|
|
|
|
### Bounty 5: Add VXLAN support to netbox
|
|
|
|
At ungleich we love
|
|
[netbox](https://netbox.readthedocs.io/en/stable/). However at the
|
|
moment it only supports VLANs and not VXLANs. How amazing would it be,
|
|
if it also supported VXLANs? The bounty for adding this upstream is
|
|
__50 CHF__.
|
|
|
|
### Bounty 5: Allow wireguard to automatically switch the underlying IP version
|
|
|
|
If you establish a VPN connection with wireguard, it resolves the
|
|
hostname in your configuration and remembers that IP address.
|
|
|
|
This is problematic, because if you connect to the VPN server in an
|
|
IPv6 only network and then later switch to an IPv4 only network,
|
|
wireguard will never reconnect. The same problem appears if you switch
|
|
the other way round.
|
|
|
|
We offer a __150 CHF__ bounty for the person who successfully
|
|
patches/integrates/releases something (it can be a daemon, a patch)
|
|
open source that allows seamless transition between the different IP
|
|
networks.
|
|
|
|
On the wireguard mailing list it was discussed whether a peer can have
|
|
multiple IP addresses. This could be a proper solution, as it also
|
|
addresses the case when a VPN server has multiple IPv6 or IPv4
|
|
addresses.
|
|
|
|
## Historic Bounties
|
|
|
|
### Bounty 2: Alpine Linux installable in IPv6 only networks
|
|
|
|
Alpine Linux currently does not start rdnssd in the installer nor does
|
|
it have the ndisc package installed.
|
|
|
|
The installer in particular needs to assign itself IPv6 addresses
|
|
(SLAAC should already work), needs to accept DNS servers and search
|
|
suffix from router advertisements (requires rdnssd running) and
|
|
wget/curl need to have IPv6 support to retrieve files via IPv6.
|
|
|
|
Present a short video that successfully shows the updated upstream
|
|
installer working in an IPv6 only network to install Alpine
|
|
Linux. Bounty is __100 CHF__.
|
|
|
|
```
|
|
Solution: Alpine Linux now ships with dhcpcd enabling IPv6 address
|
|
acquisition as well as name resolution.
|
|
```
|