Hi,
We have 2 software engineer positions open on the RabbitMQ team at Pivotal. Besides posting a Jobvite
link [1] with details, I'd like to explain some of the things we work on, how much Erlang experience is required,
and how the team works, in hope to encourage you to apply ;)
Please take a look at [1] first.
## Location
RabbitMQ team is completely distributed at the moment. You can work from Pivotal's London office
near Old St. roundabout or your home (European timezones are preferred). Note that while we'd like
to be able to hire folks in all countries, in some cases it won't be possible.
## What We Do
RabbitMQ has a bunch of projects: the server, a dozen of plugins, about as many client libraries (we maintain
some and try to help with others if time permits). We are part of the Cloud Platform group at Pivotal and
Cloud Foundry integration is another thing we are involved in.
Then there are ecosystem projects that build on top
(from Spring AMQP and EasyNetQ to RabbitMQ Chef cookbook, OpenStack, Spring XD, Logstash, et cetera). They
also get some attention from us.
We write our own docs, do our own QA, support our users and customers on this list and internal Pivotal resources.
As such, you will generally be working on more than one codebase on any given week, with a fair share of flexibility
to choose tasks that seem important or simply interesting. Not all of them involve Erlang. Some codebases
are relatively young, others are 6-8 years old.
## How We Do It
Our team is small: 3 engineers, 1 developer advocate that does some engineering.
Expect all the awesome and less-than-awesome aspects of working on a small team.
We communicate over email and Slack, use distributed version control and a simple QA and merging process.
There are plans to move to GitHub this year, so that may get even more straightforward.
No micromanagement or complicated processes pushed on you: talk to the users daily, debug or design things,
write code and tests, pass
QA/code review, move on to the next thing. There is product input and administrative assistance from our manager
but the process is very hands-off in general.
Most of the time (but not always: support and bugs obviously take priority), you get to choose what to work on.
Remember that with great power comes great responsibility.
Other teams at Pivotal may use different processes, e.g. Cloud Foundry folks only use Git and pair program 100% of the time.
Be ready to adjust a bit when interacting with them.
## How Much Erlang Experience is Required
As stated earlier, not every codebase we touch is in Erlang, and not every Erlang codebase is fairly large
and hardcore. In the last year alone, I've personally touched
* Java
* C#
* Erlang
* Ruby
* Clojure
* Shell script
* JavaScript
* Python
* Go
* Groovy
* Haskell
in some capacity. So, while having commercial Erlang experience is a major plus,
having some functional programming experience and strong interest in Erlang and distributed systems
can compensate.
## Who Should not Apply
It should be said that some folks may find it challenging working on our team. People who
* Have a Rock Star Ninja or Brogrammer attitude
* Need a lot of supervision
* Don't like debugging intricate problems
* Never were exposed to concurrent programming
* Hate doing user support
* Don't have a decent understanding of networking programming (from how to use sockets to debugging with Wireshark to relevant OS concepts)
will likely struggle on this team. Also note that we have 8 year old repositories and Windows stuff to support,
so be prepared to face utterly "uncool" technologies.
1.
http://hire.jobvite.com/m?3aUz0hwp
--
MK
Staff Software Engineer, Pivotal/RabbitMQ