Senior Frontend Engineer (m/f)
The people of SumUp have brought the best way to accept card payments to 15 countries so far, but we won’t stop there. Headquartered in London, SumUp's major offices are in Berlin, Sofia and São Paulo. The Berlin office alone comprises more than 100 people from 24 countries. We recently launched a brand new contactless device, which makes paying by card easier than ever before.
Why work with us?
SumUp could be interesting for you as an engineer in part because we cover so many platforms: we have physical hardware (made right here in Berlin), our own proprietary payment processing platform, mobile apps on iOS and Android, SDKs and APIs supporting third-party integration, and of course (the main star, in this team's humble opinion) a merchant-facing web app.
What we're looking for
This position is frontend heavy in its day-to-day responsibilities, but requires a thorough knowledge of the full stack to operate efficiently.
You'll fit in perfectly to our team if:
- You not only love coding, but also take the time to reflect on the benefits and drawbacks of your tools, be they frameworks, languages, or processes.
- You strive for clean code, but also know how to make your "shortcuts" easy to delete in a crunch.
- You know what to test, why to test it, and how to write flexible tests that won't break with minor changes.
- You're comfortable with Linux and know how to get things done on the command line, including on remote servers.
- You have experience with or interest in Functional Programming techniques.
- You're not afraid to use Google or ask for help when something is beyond your grasp.
- You care about user interaction, usability, and of course – making the interface beautiful.
- In general, technology excites you and you strive to learn something on a daily basis!
Our tech stack and projects
Dashboard: A modern Angular 1.6 application helping merchants keep track of their revenue and manage their accounts. Our core features include sales analytics, a transaction overview, and account management. We've started writing new components in React, and plan to open source a React UI library that bridges our merchant-facing apps and our website.
Our codebase uses a modern component approach and pure services supported by Jasmine unit tests. Apart from that, we heavily use libraries like Moment.js and d3, and rely on Webpack for our build and npm scripts for our dev tasks. Naturally, our codebase is in ES6.
Website: Our website uses Jekyll and is served by a Node server (using Koa, the spiritual successor to Express) that's largely powered by a headless CMS (which we don't maintain, win!).
Right now we're migrating the website to render from isomorphic react components, so our marketing and sales teams can build their own pages entirely from components, without a developer.
On our roadmap: We're always looking at what's happening in the ever-changing web development space. We're currently investigating how we can make our web app offline-first, switching our test runner from Karma to Jest, and implementing a library-agnostic caching solution to further decouple our code from the framework.
The backend that powers SumUp is a constellation of microservices, mostly written in Ruby but with an increasing number powered by Node. If you're interested in the nitty gritty of the complex domain of card payments, there's space for you to expand your responsibilities to the backend.
Your impact at SumUp
You'll shape some of the core experiences of our merchants: from their first impression on our website, to the web-based features that make them loyal to our platform.
In the first few weeks, you'll dive into the code and learn how to create clean, composable components in our codebase. You'll use this knowledge to start developing and refining features. You'll learn how we write tests, how we manage application state, and how we keep performance tip-top. You'll also pitch in on our Jekyll site to enable sales and marketing to reach hundreds of thousands of visitors every month.
In the first three months, you'll develop major features that impact our merchant base. You'll work closely with product and design departments to build features that are maintainable, usable, and beautiful. You'll help us re-think problems we've solved before in a different way as requirements evolve. You'll also leave your mark on the SumUp web experience by conducting A/B tests on the Jeykll site as well as during onboarding in the web app.
In one year, you'll have a wealth of knowledge about our complex problem domain, as well as its implications in the interface and in the backend – and how to manage it in a clean way. You'll have launched numerous features on the Dashboard, as well as contributed to side projects and initiatives that gave you an opportunity to diversify your skills and learn something new.
- 3+ years development experience
- Computer Science fundamentals (e.g., data structures, data transformation, function composition, etc.)
- Strong foundation in Linux (command line expertise in Git is a must)
- Experience building a non-trivial Single Page Application (SPA) (Angular or React preferable)
- Proficient using the debugger and the REPL
- Ability to implement design specs precisely with CSS
- Ability to communicate fluently about technical topics in English
A strong candidate will also have:
- 5+ years development experience
- Exposure to working with Node. Nginx is an added bonus.
- Experience implementing SPAs using a component-based architecture
- Implemented a REST API him/herself in the past
- Comfort with relational databases such as Postgres
More reasons to work at SumUp
- Dedicated budget for attending conferences. Last year we went to the AngularJS conference in London, and this year the frontend team is going to JSConf EU.
- Weekly Lunch and Learn session, where the local dev team exchanges technical ideas over company-sponsored lunch.
- We do at least one off-site every year, where the tech teams from Berlin, Sofia, and São Paulo gather to hack together. In the past we've gone to Bulgaria and Greece.
- Our lean processes allow us to ship new features and functionality on a weekly basis.
- Infrequent regular meetings – most days you'll do a standup and get to work.
- We have a close, welcoming, and international community; we get together regularly for brunches, cocktail nights, football, and yoga.
- All the startup swag you expect: kicker table, beer in the fridge, and a shiny MacBook Pro.
We're looking forward to meeting our next teammate! You'll be asked to provide the following information when you apply:
- Why you think you'd be a good fit for this position
- One of your favorite coding challenges you encountered in the last two years: what was it about, how you tackled it, and what you learned. Technical details encouraged!
You can also choose whether to include a CV, a link to your Xing/LinkedIn, a link to your github, tech blog, or portfolio – whatever you think will give us the complete picture!
If you want to know what it’s like to work at SumUp check our careers page: https://sumup.com/careers
If there's something you'd like to ask, feel free to get in touch: firstname.lastname@example.org