Transloadit is currently looking for an experienced front-end engineer to join our team and help out with the further development of Uppy, our still relatively new open source file uploader. Before we dive into the nuts and bolts of what Uppy is and what the job entails, we’d first like to tell you a bit more about our company.

For starters, we don't have many policies, but we have published some thoughts about hiring over at /jobs/. This more or less constitutes our philosophy when it comes to working for Transloadit. It will explain some of the choices that we make and could help you figure out if we would be a cultural match.

Transloadit (and open source)

Transloadit is made up from a small but globally distributed team of passionate engineers and Robots 🤖🤖, who are trying to change the way the world does its file uploading & encoding. Our founders met through open source in 2007, and built a service for this that is now loved by thousands of developers at a whole range of companies, from the smallest startups to the largest enterprises.

Our founders shared a dream to bootstrap a sustainable business around releasing open source software, and that is exactly what we've been consistently doing for over nine years.

We're the company that has been running Node.js in production the longest. As such, we had to invent a few wheels along the way - wheels that we shared to put the world in motion, so to speak. Most notable of these are: node-mysql, node-formidable, and node-retry. These modules have since become industry standards for dealing with MySQL, file uploads, and networked/unreliable systems. We have also contributed a lot to Node.js itself

Another notable Transloadit project is 'tus'. tus is on course to truly change the way we upload our files by providing an easy and reliable way to add resumable uploading to almost any service. To begin with, we carefully crafted a protocol with help from engineers at Google and HTTP/1.1, and are now building implementations of that protocol in all programming languages. This is to ensure that developers, regardless of their proficiency, will have no trouble at all in adding resumability to their uploads, no matter what product they are building. Vimeo has already announced they will be adopting tus for all their video uploads and we are confident that more will soon follow!

Uppy Hero

Uppy

Our latest open source project is called 'Uppy'. Uppy is a next-gen JavaScript file uploader for web browsers and mobile apps. Here are some of our design goals for the (further) development of Uppy:

  • A gorgeous user interface
  • Resumable file uploads done right, thanks to tus
  • Support picking files from sources like: Webcam, Dropbox, Facebook, bypassing the user's device where possible, syncing between servers directly
  • ES6 JavaScript
  • Support for React (Native)
  • Free for the world, forever (as in beer 🍺, pizza 🍕, and liberty 🗽)
  • Works great with Transloadit's encoding platform, works great without (just roll your own Apache/etc backend)

The Job

Uppy is gaining some serious traction now and we need help with overcoming some of the more trickier challenges. With that in mind, we are looking for an freelancer and front-end engineer who can free up a few hours a day each week to work on this open source project.

Our ideal candidate is experienced front-end and interested in making Uppy the best file uploader in the world. You will be expected to envision and implement new features, interact with the community on GitHub, and assist us with various tasks and dilemmas, such as:

  • Should we stick to Yo-yo and template strings or switch to Preact and JSX?
  • What is the optimal way to provide a React and React Native component/wrapper around our library?
  • How do we implement CSS-in-JS in such a way that it's friendly for developers (i.e. possibly keeping non-random class names)?
  • Image preview generation is taking too long, especially when you add a few large images at the same time. Should we speed it up via parallelizing, Webworkers, Pica library?
  • Making Websocket connection more robust, ensure message delivery. Maybe check out Logux.
  • Help configure Webpack (classic task).
  • CSS transitions are working in Chrome and Safari, but not in Firefox. We could use some help with debugging.
  • Review our user-facing and internal APIs, refactor, suggest improvements and prevent technical debt.

React experience is required for this job. Besides that, it would be nice if you are familiar (played around) with libraries such as Virtual-dom, Preact, Yo-yo, Choo, Nanocompoment or Deku.

This job is for approximately 15 hours a week.

Pay

Bootstrapping and being big on open source by choice has a downside as well: Transloadit won't be able to match some VC-backed Bay Area firms when it comes to salary. We do, however, strive to pay everybody involved handsomely, and not having VCs or targets to obey allows us to optimize for other goals such as employee happiness. Not only does working for Transloadit have a few nice perks, we also strive for our team members to excel and build reputations for themselves that will last and propel them beyond our involvement. Since most of our code is released as open source, and these projects are bringing considerable change to the way things are done in the tech world, you'll have plenty opportunity for that.

We can spend USD 50 an hour on this part-time position, meaning up to ~3000 USD per month. You can read about our reasons for disclosing this in /jobs/.

It would be easiest if you could invoice us.

Remote, off-time, and expectations

Our stances on these matters can be found in /jobs/. In short: you can work from anywhere in the world. Our virtual office is powered by Slack. Take off-time as you see fit, all we ask is that you give us the heads-up and don't set expectations higher than you can meet. We are looking for people that are kind, resourceful and curious. Transloadit is low on management, and you'll be expected to lean forward and see for yourself how you might contribute.

How to apply

If you are interested, please send:

  • Basic info (name, age, interests, website if you have one)
  • GitHub account / Portfolio
  • Relevant experience and your three-sentence motivation

to hello@transloadit.com 😄

We hope to hear from you soon!

» Thanks for your interest, but this vacancy has been filled.