Are you an expert in the inner workings of the FTP protocol or SFTP protocol? Would building a server that achieves perfect compatibility with the RFC while still managing to support buggy clients make you smile?
If so, we’d like you to learn about Files.com!
Files.com is one of the largest providers of commercial FTP and SFTP server hosting in the world. Our service was originally launched as BrickFTP, and even though we’ve grown beyond FTP in our service offerings, we have thousands of businesses that rely on our services 24/7 for reliable FTP and SFTP server hosting.
Our FTP and SFTP server code is primarily written in Java and leverages open source code from the Apache foundation (that we have considerably extended).
We’re looking for a rare unicorn who knows FTP and/or SFTP at a protocol level and knows Java to help us modernize our FTP and SFTP server code and implement many new exciting features.
About the Role
As an FTP or SFTP server developer at Files.com, you’ll take ownership of our FTP and SFTP server code, helping us keep it modern, fast, and maintainable, while implementing exciting new features.
These codebases are currently written in Java, and we want applicants to be comfortable in Java, but we are also interested in rewriting these in more modern languages such as Go or Elixir, especially if we can leverage existing FTP or SFTP libraries.
In this role, you’ll work on the following things and more:
Keeping our SSH and TLS cryptography up to date, including integrating new ciphers and curating the list of approved ciphers for maximum security.
Ensuring that our FTP and SFTP server products are maximally compatible with the wide range of client software in the wild (even the buggy software).
Optimizing our FTP and SFTP servers for speed and throughput so our customers get the fastest server experience possible.
Integrating new features such as client-side encryption.
5+ years of directly applicable experience.
Deep understanding of the FTP and/or SFTP protocols at the protocol level. Having written an FTP or SFTP client or server in the past would be a strong indicator of this.
Strong Computer Science background and understanding of algorithms and data structures.
History developing and supporting actual applications that have seen production usage with a large userbase.
Complete understanding of how to write secure code and an awareness of common web application security vulnerabilities.
Solid experience with Java, ideally the new features in Java 8 and Java 10.