Overview

We are looking for an expert client-side Javascript developer to help build a new-generation ReactJS/Redux single-page web application.

Our devs don’t spend their days working on simple websites or hacking checkout pages. We work on fully-fledged products used by real customers like Microsoft, P&G, 1&1, Xerox, Panasonic, Valve Software and more. The products we make actually have an impact on thousands of people. We think that’s pretty cool.

Briefly: What is DeskPRO?
DeskPRO is a multi-channel helpdesk platform that we deploy as a downloadable package and also run as a SaaS service.

DeskPRO includes a number of apps covering various functionality like email and ticketing, real-time chat, self-help publishing and task management. With your help, we can deliver even more features like Twitter/Facebook integration, voice, forms, and asset tracking.

What is the stack?

Here are the tools and libraries we’re using at the moment:

  • ES2016 via Babel
  • We’re using webpack to package everything together for the browser
  • We’re using SCSS with Bourbon/Neat
  • Here are some libraries we’re using: ReactJS, Redux, ImmutableJS, reselect, react-router, flux-standard-actions
  • Here are some tools we’re using: webpack, babel, uglify, node-sass, eslint, jest, flow
  • Here are some technologies we’re using or are planning to use: Websockets, notifications, localStorage, IndexedDB, SVGs,
  • Web Workers, desktop apps with Electron
  • You will consume our backend services over simple HTTP APIs or websockets.

What is the work like? What are the challenges?
DeskPRO is a very big product. We call it a “platform”. The upside of this means that there’s always work to do, and that work covers so many different areas. You’ll never get bored because there’s always something new to work on.

The Platform: DeskPRO is the central hub for a lot of companies and we want to integrate with many third-party tools. We already have some integrations, and we need more: Salesforce, Twilio, Mailgun, JIRA, Twitter, Facebook… We need to focus a lot on the APIs we make available and we need to make the platform developer-friendly. Everything from robust APIs to great documentation is vital.

Messaging: DeskPRO is very real-time. The UI needs to update as events happen: New messages are added, fields and values change, notifications pop up, etc. We have invented a messaging framework that works over websockets or AJAX polling as a fallback.

Flexible: DeskPRO is customisable. Many features can be tweaked and tuned. This can be as simple as changing words and phrases, to adding completely new functionality like installing a the JIRA app.

Developers and Apps: We cater to external developers by offering a fully-fledged API and “app” system. This lets customers build custom apps that run right within DeskPRO itself. We want to expand on this much more in 2016 which requires us to create new Javascript developer frameworks and plugin systems.
And a new effort in 2016 is contributing back to the open-source community. DeskPRO is full of really great code that we want the world to see and use.

Technically speaking, the biggest challenge with DeskPRO’s front-end is its scale. There are many “moving parts”. There is a lot of information on the screen, and a lot of complicated relationships. For example, we have to think about how to load data efficiently, how to store object relationships, how to make sure we update components when data is updated in real-time. We have to worry about memory usage and garbage collection and how the app will perform if it’s left open in a browser for 30 days straight. We have to think about what APIs we expose to developers and how custom “apps” are run and how they display.

What’s the team like?

  • Our company was founded and is managed by developers who wrote the original software the company was built upon. Everyone in the company “gets it”.
  • Everyone in the company has a voice. We’re super transparent and we always want your input about anything from features to company policy.
  • We are a small team of mostly developers.

What will you do?

  • You will help build the DeskPRO platform and product.
  • You will help make architectural decisions (and implement them!).
  • You will help create development tools and frameworks and drive development processes.
  • You will help direct other developers and contractors: giving advice, doing code reviews, etc.

REQUIREMENTS

  • Very strong experience developing single-page web apps with Javascript. You should know the ins-and-outs of Javascript and web browsers. Everything from layout thrashing to the nuances of prototypal inheritance.
  • Very strong experience with a modern framework. We ourselves use ReactJS with Redux, but if you’ve used something else (AngularJS, Ember, Backbone, etc) and are willing to learn, that is okay too.
  • You should be used to reverse-engineering third-party code. We often need to modify/extend frameworks or add features to third-party libraries.
  • You should have a strong understanding of software architecture with opinions on “the right way” to do things.
  • You should have made a custom framework for yourself or have a good idea of how frameworks are put together and their unique requirements. – Remember, DeskPRO is a platform and half the work is making the platform robust enough so it can support a wide range of features and apps written by us or by third-parties.
  • You should be a fast learner. We often venture into unknown territory and we’ll expect you to learn fast and be ready to offer advice and opinions quickly. Some of this comes down to Google-fu and experience-driven intuition.
  • You should be a “do-er”. We move quickly. We ship updates to customers very quickly (sometimes daily!), and you will be expected to keep up.
  • You should love the colour green. We’re putting a big focus on delivering well-tested software.
  • You will probably have a github account or equivalent that demonstrates your ability to work on complicated projects or some other way to validate your expertise.

BENEFITS

  • Competitive salary based upon experience.
  • Career progression. There is room to grow into many different types of roles.
  • Opportunity to experiment with many different technologies.
  • A mixture of autonomy over your role and real responsibilities to the team and business.
  • Varied work. The DeskPRO product is large with lots of modules and technologies.
  • Friendly team and work environment at our offices in Fulham Green.Easy to get to, pubs and restaurants nearby.
  • Unlimited coffee, tea and soda.
  • Everyone gets free gym membership.
  • We want you to work comfortably and we’ll get you a great workstation: Macbook Pro or Linux/Windows equivalent and as many monitors you want, and anything else you might need.
  • Developers get access to Safari Books which is an up-to-date digital library of thousands of technical books from publishers such as O’Reilly, Manning, Microsoft, Packt, Addison-Wesley and more.
  • We love it when developers have weekend pet-projects and we’re happy to help sort out a proper hosting environment to get your projects online.
  • We’re happy to send our devs to conferences and training days.

Tagged as: Java, reactjs, redux, web-app