FP Complete is a software engineering firm that helps sophisticated companies develop cutting-edge analytics & modeling software for biology, finance, Internet of Things, and other advanced data projects. We emphasize functional programing (mainly in Haskell) and distributed, cloud-based devops (AWS and other clouds).
Founded in 2012, we are a modern and lightweight company of about 20 people. Many of our team are veterans and innovators from Microsoft, Intel, Google, several PhD programs, and several prominent open-source projects. We work in distributed, work-from-home style, so we hire people who can work with fairly little supervision, who are very smart, and who are great communicators. Most of us are in North America and Western Europe.
Our clients are category innovators: startups to Fortune 500 firms, putting information to work. Together we build new software-driven systems for powerful data handling, data analysis, proprietary applications, and online operations.
Our team, the level of autonomy and growth you get, and our work-from-anywhere management style are extraordinary. Very smart, no-nonsense people love working at FP Complete.
To continue growing we are currently hiring 3 software engineers. You may strongly fit any of the 3 profiles listed below, and we are also open to a blend of two different descriptions.
SKILL SET 1: strong at Haskell programming, and will architect and develop server-based infrastructure and data-modeling code, and possibly Web UI code as well.
SKILL SET 2: strong at devops and cloud Linux sysadmin, and will create and maintain systems for multi-machine computations and for advanced engineering collaboration.
SKILL SET 3: strong at customer problem analysis and solution design, including writing proposals and specifications, and will play a major role in working with our customers (and their bosses and regulators) and winning new customers for the company.
You will do many of these tasks, depending on your skills:
Configure and administer cloud servers running Linux
Develop components and applications in Haskell
Analyze customer needs and write documents describing the problem and the proposed solution
Assess requirements and pick the best server software to meet each need, including when to develop new software or when to use off-the-shelf software or cloud services
Install and test Haskell software and libraries
Install and test non-Haskell software and cloud services
Develop, test, deploy, and administer Haskell-based web services
Routine website maintenance and administration
Collaborate with distributed colleagues via online collaboration tools, email, chat, and voice
Document technical work so that new colleagues can understand it
You should have these skills:
Experience programming at a professional level either in Haskell, or in multiple other languages with a desire to learn more.
Ability to design solutions based on expressed user needs, including asking questions to make sure you understand the real requirements
Ability to write working, maintainable programs, including infrastructure code (system management, data management, libraries) and application code
Ability to express your designs in human-readable documents
Ability to work for multiple days without close supervision
Experience working in a team environment with online collaboration tools such Atlassian, GitHub, JIRA, etc.
Absolute honesty and integrity
Strong written and spoken English
As we have many opportunities, these additional skills are also valued:
Experience managing Linux servers (user account management, security, networks, services)
Familiarity with a Haskell web framework like Yesod, Snap, or Happstack
Experience managing a nontrivial public website with complex features
Expertise in security
Expertise with replicated (multi server) environments
Experience managing virtual machines (VMware, etc.) or cloud machines (AWS, etc.)
Familiarity with Apache, Apache extensions, and PHP
Experience developing or maintaining code in Python, Ruby, C, C++, and/or Java
Experience as either an engineering team lead or manager
HOW TO APPLY
Send your resume and any comments to email@example.com where a real human being from our engineering team will read your email.