is looking for you

Illustration characters Icons on left side of the header Icons on right side of the header

What is Promote?

Promote is a platform for learning transfer. You can read about what that really means on our website, but the gist of it is that we help turn theoretical knowledge into practical changes in the workplace. You can check out how various companies have leveraged Promote to improve their workforce by looking at these cases.

Most of our users experience Promote through the Ruby on Rails application where the actual learning takes place, perhaps accessing it from our mobile app. But there is much more going on under the hood:

  • distributed, privacy-centred, microservices architecture;
  • a centralised authentication system using OAuth2
  • several dashboard applications using Sinatra backed by an Elastic Search index
  • a push notification service used by our iOS and Android applications

Promote is decentralised, and each client gets their own instance. All applications communicate using event-based notifications underpinned by ZeroMQ messaging and REST-like APIs.

Ruby is our go-to language and as users of open source, we like to contribute as well.

Our new team

We are looking for both junior and senior software engineers for the team we are in the process of setting up in Stockholm. This team will work with the rest of the company to make the Promote experience better for our clients and their learners, as well as making it more efficient, both in technical and financial terms. As developers, we have got a big influence on how the platform evolves.

Promote is a global product, with users in 30 countries and translated into 21 languages. This reflects on our team and though development will be directed from Stockholm, this team will be backed by the talented developers, designers and sysadmins at our tech partner Avidity's office in Porto Alegre, Brazil.

We are looking for developers who are experienced or interested in some of the following areas:

  • building sustainable user experiences in modern CSS, HTML and JS
  • working with Ruby or similar scripting languages to help us expand Promote's set of applications
  • web development in other technologies, but willing to move on and to learn our stack
  • contributing to and enhancing daily agile processes, leaving a footprint on the team
  • continuous delivery, perhaps knows Ansible and Linux, and can help out in our operations team

What you will be doing

Depending on your expertise and interest, here are some of the challenges we will be tackling in the near future

  • video streaming support, CDN
  • a new event driven billing system
  • an enhanced native app experience
  • an overhaul of the interface where training programs are built and maintained
  • a shift to continuous deployment
  • APIs for integration with 3rd party products

Of course nobody exactly knows what the future has in store. Perhaps you have an idea worth pursuing?

Getting things done

We understand that a development process is dependent of the developers taking part in it, and will change over time. We have a few best-practices we follow when we work:

  • the code we write should be covered by automated tests (unit and integration)
  • our code is peer reviewed using Github's pull request flow
  • we avoid working individually and instead cooperate on features
  • by working in small steps we can adjust the scope and feature as we progress, all the time coordinating with colleagues from other parts of the business

Apply now

If you want to be a part of this new team, get in touch with us now via our email and we'll schedule a chat over some coffee at our central Stockholm office so we can get to know each other. If you're elsewhere in the world, we'll schedule a video call and have a chat that way.

Our stack

Alright, so if you are interested in the classic list of technologies and tools we use, here it is in no particular order:

  • Ruby (for the production applications)
  • Java (for the Android app)
  • Swift (for the iOS app)
  • HTML, SASS, CSS, JavaScript
  • PostgreSQL (all data persistence)
  • ElasticSearch (indexing and searching)
  • Redis (key-value temporary storage)
  • Ruby on Rails, Sinatra, Grape (web frameworks)
  • ZeroMQ (inter-application messaging)
  • Debian (production environment)
  • Ansible + Python (provisioning)
  • Bash (production tools)
  • Github (source code and workflow tool)
  • Pivotal Tracker (issue tracker)
  • Flowdock (inter team communication)
  • Jenkins (continuous integration)