What do we do at Tiendanube?
We are a startup born in Argentina in 2011 with offices in Buenos Aires and São Paulo, backed by world class investment funds and investors.
We are a young team that helps thousands of entrepreneurs, and small and medium companies to build their online business in Brazil, Argentina, Mexico, Colombia and Chile.
As we are a growing startup, we are flexible, independent and proactive. We like to work with people who love their work, to plan and implement innovative solutions to major challenges, and working with multicultural teams. We are true believers that a diverse team creates a better working environment and produces innovative solutions for our customers.
What is our software development vision?
It is all about Domain Driven Design and Test Driven Development. We found Akka to be a perfect fit to express our efforts through the use of the Actor Model. We write Bounded Contexts as Microservices and use Event Sourcing to make the implicit explicit.
We completely discourage the use of CRUD, static methods, getters, setters, NULL references, ORMs and mutable objects.
We are looking for enthusiastic developers who have a passion for continuous learning, knowledge sharing and who will actively contribute to the development of reactive applications that will give you a sense of accomplishment and pride! Together with your team, you will be involved in architecture design and committed to delivering high quality software in a work environment where team playing and having fun is a core part of the development process.
Which will your responsibilities be?
- Participate in the design and development of high-performance business applications, from requirements analysis to production.
- Constantly improve software quality (evaluate and incorporate new libraries, tools and technologies; code reviews; refactoring; testing; etc.).
- Analyze and improve application performance.
- Search for simple and robust solutions to complex tasks.
- Work in an Agile methodology environment where innovation, teamwork and creativity are the key for success.
- Work with your teammates to find the best way to improve our product.
- Learn from past iterations, gather feedback and continue to make improvements to our product.
- Proficient knowledge of Object Oriented Programming: GoF patterns, SOLID, etc.
- Fundamental knowledge of Functional Programming principles.
- Fundamental programming skills: keeping code DRY, focused on readable and maintainable code, dependency injection.
- Basic knowledge of data structures and algorithms.
- Experience with concurrent programming.
- Proven experience of Java & JVM, experience with Scala or desire to learn Scala.
- Basic knowledge of technologies (SQL, message queues, template engines, HTTP, REST, etc.).
- Familiar with Agile development, source control (Git), aware of the necessity and efficient use of issue/bug tracking to organise one’s workload.
It’s a plus:
Proven experience with:
- Actor model.
- Event sourcing.
- Test Driven Development.
- noSQL (ElasticSearch, Cassandra, MongoDB).
- Big Data.
- Concurrent programming.
- The possibility of working with top professionals, learning from them, and developing your skills to the fullest of your potential.
- A dynamic and open-minded working environment.
- Learning more about the startup culture and the entrepreneurial ecosystem in LATAM.
- Working towards goals - with a flexible schedule and the possibility of working from other places besides the office.
- OSDE 310 and Portuguese lessons at the office.
- Possibility to work remote whenever you want.
- From the first year we offer you 15 working days of vacations that you can take at any time.
- Possibility to take 3 working days for conferences per year.