Appfire is an enterprise collaboration software company that enables teams to plan and deliver their best work. Since launching in 2005 as one of the original Atlassian ecosystem partners, Appfire has built a portfolio of top-selling apps for more than 30,000 customers — including 55% of Fortune 500 companies. As a product-led company, Appfire identifies gaps in industries serving developers and client support teams and then builds solutions that drive productivity and efficiency.
Appfire continues to grow exponentially, with teams spanning 20+ countries . We are financially strong, continuously meeting or exceeding revenue targets, and we invest heavily in strengthening the foundation of our organisation. Being philanthropic is integral to operating our business, so we donate 1% of employee time, product, profit, and equity as part of our Pledge 1% commitment.
Come join our team!
Job purpose and overview:
We are looking for experienced Java developers to join our product team for BigPicture – one of the leading project management tools used by CEOs, directors, project managers and team leaders of over 12 000 companies worldwide.
How we work:
- 100% remote work (from Poland) – however, it is always open if you want to work from our modern Warsaw office
- In agile and lean we trust – we keep our Sprints effective, and our Scrum teams small and decisive in practices that suit them best
- Ownership – we want everyone on our team to feel empowered to grab the reins in their positions and help push the company forward
- Daily communication with our product owners and UX / UI researchers and designers – who make informed business decisions based on continuous users behaviour monitoring
- Short time to market – we have major feature release every month
- Startup atmosphere with direct informal communication with everyone at the company and with elastic working hours – all to keep you comfortable and simply happy to be with us – get to know the BigPicture team better here and here
What you will do:
- Designing and implementing new functionalities for our products and maintaining existing ones
- Ensuring high code quality – through tests (unit, integration, e2e), code reviews and team brainstorming
- Working on features with product owners, UX / UI designers and frontend developers
- Sharing knowledge with other developers and helping them grow
- Technically supporting our customers (5-10% of your time)
Technical highlights:
- Add your value to complex yet well-designed application, having over 100 modules and fully-fledged Domain-Driven Design (ubiquitous language, aggregates, domain events etc.)
- Practice your craftsmanship in good design (clean code, SOLID, Inversion of Control) and in various architectures (hexagonal, event-driven, pipes&filters, modular monoliths, microservices and more)
- Thoroughly test what you build: with unit, integration and e2e tests (Spock, JUnit, Mockito, AssertJ, REST Assured, WireMock, Testcontainers, Cypress)
- Learn our advanced cloud (SaaS) architecture: serving thousands of tenants (multitenant architecture), continuously monitored and profiled (ELK, async-profiler), and with state of the art release process (feature flags, canary releases). We use AWS and GCP. Help us advance our cloud architecture further
- Practice other cool approaches and tools like reactive programming, Event Sourcing, Apache Kafka or Redis
- Feel safe with our extensive CI process that automatically runs unit, integration, e2e, architecture, migration and performance tests on your commits
- And for all of you frontend lovers out there: it’s worth knowing that this is one of the largest and most ambitious Angular projects in Poland
What we expect:
- Practical knowledge of design principles, design patterns and architectures – what problems they solve (& what introduce), how to implement them – see our take on DIP, DI and IoC (Javeloper) , plus some of our OOP best practices (GeeCon)
- The inherent need for tidiness in the code – on module, package, class and method levels (both in production and test code) – see our approach to modularity (JDD)
- Experience in designing legible, sustainable and expandable solutions
- Established knowledge of Java, Spring, Hibernate / JPA, SQL DBs and REST
- Proficiency in your favourite IDE, in Git, Maven, Docker, Spock, JUnit, Mockito
- High problem-solving skills and hands-on approach (being eager to brainstorm, experiment and learn from mistakes)
- Willingness and determination for self-development and further education
- Good English skills (B2 or higher)
Nice to have:
- Knowledge of object-oriented programming, recently known as Domain-Driven Design (DDD)
- Established knowledge of the architecture of complex web solutions, ideally including cloud (SaaS) solutions – see how our on premise and cloud products are designed (Confitura)
- Experience in robust systems integrations: caching, concurrency & reactiveness, throttling, authorisation
- Practice in monitoring, profiling and optimising production systems
- Leadership skills: focus on efficient teamwork, mentoring & knowledge sharing, ensuring good atmosphere
How we will help you grow:
- Free access to 2 e-learning platforms
- Internal tech guilds that meet on a weekly basis for knowledge sharing
- Regular, internal, one-week long, fully-paid hackathons – to give you a chance to play with what currently drives you most
- Possibility to engage in mentor-mentee relationship with whoever other developer you find valuable to learn from
- Personal competency matrix to help you plan your growth path and then navigate through it
- Availability to take part in tech events sponsored by us – like Confitura, Devoxx, or Code Europe
What we offer:
- Salary (employment contract, UoP): 13 500 – 18 000 PLN gross/month
- Possibility to apply for 50% tax deductible costs on creative works (AKUP/IP tax-deductible costs)
- Indefinite employment contract from day one, no trial periods
- Every Appfire employee is eligible for company equity
- 26 paid days off, regardless of years of experience
- Wellness days – additional time-off each month to recharge and take care of yourself (1 day per month)
- Private healthcare
- MyBenefit platform – 150 PLN/month to spend on available shops, restaurants, gyms, etc.
- Home office allowance – 200 PLN/month to cover your electricity and internet bills
- Lunch card – 300 PLN/month to spend on groceries / restaurants (excluding alcohol and other excise duties items)
- Life insurance
- English language courses
SOLID async-profiler rest-assured Cypress Amazon Web Services (AWS) Hibernate Apache Kafka JUnit SaaS event-sourcing reactive-programming Google Cloud Platform (GCP) cloud-computing IDE spock Docker testcontainers JPA Redis Maven microservices wiremock Elastic Stack Project management Git REST domain-driven-design CI/CD design-patterns design-principles Mockito User Interface (UI) User Experience (UX) Spring inversion-of-control Java Angular AssertJ