Jobs, Hacks and Bounties

Doing stuff with or at ungleich

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" for asking questions.

Hack 1: Get IPv6

For most stuff we do, you will need IPv6. Head over to the IPv6 VPN to get yourself started. Note: the VPN is for free if you have a VM with us.

Hack 2: Deploy ubookmark

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.

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