Frontend [React] developer wanted by Team TNT 🧨
We’re Team TNT 🧨 and our mission is to take care of single page UI applications written in React a TypeScript that ran over the GoodData platform.
We’re looking for onsite/remote developers who’d help us push our team, product, architecture, and codebase forward. We’re not looking for someone to occupy an office chair. We want to team with people who want their work to make sense, who are on the lookout for new challenges. Sure, your knowledge of the tech craft is important. Your attitude and willingness to open-minded problem solving is more important still.
Read on to learn more about us and what we’re working on. If you’re not too keen on reading, scroll down to the recap ⬇️, or head over to Discord ✋ and ask as anything.
Meet the TNT
Headcount? Eight full-time front-end and full stack devs, two interns, and one manager - luckily, a former front-end dev. We’re kept in line by Scrum Master Privilege, our Product Owner is Rosťa, then there’s UX Designer Petr, Lubo the Architect, and a team of QA testers.
We all share an office at the GoodData Brno site and, typically, we meet on an everyday basis. Which is great. We do realize that Covid-19 changed the world so don’t worry, if you prefer to work from home, we’ll still have a place for you. Just pop in once in a while for a chat or a beer. We help each other, we learn together, we share our worries, and respect our boundaries.
Some of us don’t speak Czech so English is our lingua franca. We’re patient, though, if someone takes time to find the right words.
Based on the roles’ descriptions, it may look like we’re working in Scrum but that’s not the case. While we do deploy some of Scrum's methods, we’re using our own simple framework that we call Restart, which is inspired by the Shape UP methodology.
A word about our website… Yes, it does have a corporate twang. But guess what. It’s for our corporate clients and prospects. Behind that, there are real people with all their vices and virtues. And that’s exactly a person we’re looking for.
Here we are:
Principal SW Engineer, 10 years with GD 🥳
Very reliable and always sanguine developer. Hi splits up his free time between walks in the woods and repairing his 12-year old HTC phone.
SW Engineer, 4 years at GD
A Swiss army knife. If you hear laughter, it’s him. When his family falls asleep, he polishes his Mazda roadster long into the quiet night….
Senior SW Engineer, 4 years at GD
Flexible and experienced dev who keeps his Jira log in his head. Takes care of his family, remodels his house, and when he’s had enough, he rides his bicycle.
Senior SW Engineer, 4 years at GD
Old dev hack known for his out-of-the-box thinking. Likes to meditate alone or with his family.
Principal SW Engineer, 4 years at GD
Full Stack dev with a strong penchant for order. Loves movies, his wife, and his cats. Oh, and he likes black metal.
Senior SW Engineer, 3 years at GD
Dev who always thinks about how to make our work, and lives, better. Known for taking his wife and a labradoodle for long walks in nature.
SW Engineer, 1 year at GD
Meticulous dev who likes challenging himself. Also a musician, juggler, and a happy owner of Happy the dog.
Junior SW Engineer, 1 year at GD
Modest developer who doesn’t leave one bug alone. When he’s done, he’s building a Spanish expat community in Brno.
Intern, 3 years at GD
FI MUNI student who applies informatics theory onto software development. He’s into music, reading, and his girlfriend.
Intern, less than a year at GD
FI MUNI student, fast-learning enthusiast. We’re working on getting more information out of him.
Manager, 4 years at GD
Former front end developer who likes to have things in order. A DIY aficionado taking breaks from the tools to take his family to explore nature.
What we’re working on
There are essentially two applications we work on most of the time - Analytical Designer and Dashboards. These Business Intelligence applications make everyday work easier for approximately 16,000 active users - they allow them to easily and clearly display current data and use it to make the right decisions. We have been in charge of both applications for several years and we don’t plan to just say goodbye to them. Our platform is quite complex and we won’t lie to you - it takes a few weeks or months to get comfortably familiar with everything.
On top of those two apps, we work on our SDK package Gooddata.UI changing it almost every day. GoodData.UI is the foundation of nearly all of our UI apps that are developed by our colleagues in Prague. Once in a while, we have an opportunity to develop a brand new app from scratch and deploy it onto our Immutable Infrastructure. But most of the time we modify, polish, and tune our favorite Analytical Designer and Dashboards.
Analytical Designer allows you to create ad hoc reports and analysis over your, or your customers’, data. Most of it is drag-and-drop and there’s a ton of settings. Analytical Designer builds on Gooddata.UI SDK and uses REST API to talk to one of our two backends (a hosted platform or your own on-site deployed GoodData.CN). Intrigued? You can give it a try yourself using a free account option.
Tech stack: TypeScript, React + Redux + Saga, Jest + Enzyme, TestCafe.
Once you create your own insights in Analytical Designer, it’s time to present them in a neat dashboard, label it, apply filters and share with the interested parties. Such as your boss :) This is what the Dashboards app is for. The target audience differs from the one of Analytical Designer, but it’s also built over the SDK, it talks to both backends, and uses the same tech. That too is available in our Free pricing plan.
Tech stack: TypeScript, React + Redux + Saga, Jest + Enzyme, Cypress.
Tech stack: TypeScript, React + Redux + Saga, Jest + Enzyme, Storybook + Backstop, Cypress.
What you need to know as a developer...
We use TypeScript everywhere, otherwise our apps would be difficult to manage. If you don’t have a full command of TypeScript, don’t worry, we’re not closing the door in front of you. You’ll just have to master it quickly :)
Our UI is built on React. We use Redux for state management and Redux Saga for side effects. If you've never worked with React (Hello World doesn't count), again, it doesn't matter. If you are familiar with another library or framework and have a positive attitude towards React, it will be enough. Just be aware that we’re not too keen to listen to how Angular is much better all day long :) But you can try to convince us.
For testing, we use Jest, Enzyme, and Backstop. For E2E tests, there’s Cypress, into which we migrate older TestCafe tests. Cypress simply suits us better. Oh, yeah, we test routinely and almost everything. If you don't have much experience with testing, no problem - we will teach you.
Manual testing is conducted by our QA team in Vietnam. We work with three technically very skilled QA engineers on a daily basis.
We keep our code in GitHub although some parts are on GitLab. Working with Git is unavoidable and we expect you to be able to commit and rebase at least. We do code reviews for ALL changes in the code - nothing can be merged without a peer review. This and using pair programming allows us to share knowledge and maintain code quality. This will allow you to work with people who can teach you a lot. And if you dare, you can be tasked to be a lead on a project (such as feature development). This will both test and improve your software design skills, management skills, and communication techniques.
Deployment to production or another environment is performed via a robust CI connected to GitHub and GitLab. No one will force you to examine our CIs but you can. You are, however, expected to be able to handle the code. As for the rest, our CI will take care of deployment on the staging environment and, later, on production, it will comment on your Jira ticket regarding the changes… you don't have to worry about it. There’s no running jobs or moving files manually. We are currently using the GitFlow model, but we are gradually preparing our applications for Continuous Delivery (we started with Dashboards).
To keep ourselves organized, we use powerful, albeit sometimes complicated, Jira. We store our internal documents in Confluence. You can choose a Macbook or a Lenovo Linux machine, and we let you pick your favorite development environment (most people run it in VS Code or IntelliJ IDEA).
Once in a fortnight, the whole frontend dev community meets to discuss our pains and brainstorms over solutions. Every two months, we gather for a full-day meetup, either in Prague or Brno, always finishing with a beer or two. Covid made it complicated but we soldier on with Zoom (except for the beer).
Other than that, you can join our annual hackathon, an offsite (first presentations, then a HUGE party), conference days, Christmas and other assorted parties. With our GoodLife program, you can go jogging, go-karting, practice yoga, try your skills at exit games, get wet in a kayak, or come up with another strange activity. And then there are monthly pub nights when drinks are on the company’s check. It’s not mandatory but… you know :)
Oh, the best of all… we don't support Windows and MSIE ❤️
How you’re going to spend your time ⏱
- Develop new product features for Analytical Designer, Dashboards and Gooddata.UI
- Research and exterminate bugs
- Work with our UI and UX teams on overall feature designs
- Fine tune the tools to improve developer experience
- Lift up the team spirit
What you should know 💪
- Develop SPA and web apps over a UI library - ideally React
- Master Git a dev environment
- Work for a couple of hours straight without jumping over to Stack Overflow
- Voice your opinion, make your case, reason logically… and all that in English as we’re quite international over here
What you’re gonna get 🎁
- New team and a new boss
- Work on improving a stable and excellent product. You’ll make your mom proud!
- Chance to learn new things (a lot of new things at the beginning)
- Chance to destroy your colleagues in fussball and/or on Playstation
- Chance to indecisively stare into a full fridge several times a day
- 5 weeks of vacation and 6 sick days
- Your own laptop - a MacBook nebo or a Linux Lenovo
- GoodData mobile plan and any phone you like (don’t worry, we won’t call you at 10pm to repair something)
- Stock options
- Monthly contribution to your benefit account - good for cinemas, gym, or Pampers
- Meal contribution - we don’t do meal vouchers (aka stravenky)
- Other goodies
We don’t bite 😁
- Apply for the job.
- Our HR’s Jitka will get in touch.
- Your new boss will speak to you.
- You’ll show off your skills in front of some team members.
- If either of us is not sure, we’ll have lunch. Or a beer. Or both.
- When everyone’s happy… welcome aboard!
If you prefer an informal touch, just get in touch with us on our Team TNT Discord Channel ✋