High Quality Code Base
High availability is mandatory.
Money is critical, and we must deliver an awesome infrastructure that enables our clients to provide the best financial experience to their customers.
To meet this requirement, we invest in quality code by making it a priority and building it into our processes. We don't like getting bogged down by technical debt and anyone in the future should be able to understand the previous technical decisions taken to build a service, this greatly increases maintenance productivity and avoid repeating past mistakes.
This means we:
- Take very seriously when someone arises the need to review our architecture, code organization, data structures, decisions, or anything else that needs continuous attention.
- Look forward to hiring people that will improve our developer operations across the company. This improvements may vary from shortening deploy times to defining a better collaboration policy, or even helping the developers emerge visibility about their work.
- Document all our technical discussions and decisions on the problems we solve in a Github repository called “Hashlab Universe Decisions”. Everything we build has a structured lists of which trade-offs we’ve chosen. We always write post-mortems so we can document our mistakes as well.
We believe transparency is the core of building trust and long-lasting relationships.
Working with open and reliable people is one of our greatest values and we need this to expand to all the areas we can. We open source all of our SDKs and make sure our partners are aware of things when they come up, especially when it's bad news that may affect them. Open communication builds trust and without that we wouldn't be where we are.
We practice this by:
- Maintaining a healthy 1:1s schedule to keep the feedbacks flowing and opening the space to talk about any problem. These meetings cadence might vary but they often converge to 30min every week or 1h every two weeks.
- Encouraging slack messages to be on public channels by default.
- Maintaining a visual board that reflects our current Github milestones/issues state to anyone in the company see what we are doing.
Flexible Work Arrangements
We hire mature and committed people, therefore we trust people to build their schedule to fit their needs.
At Hash, you are free to work at any time in any place. We believe this is a factor that helps people reach their peak performance.
We think that we shouldn't push the work onto people, so we don't organize "sprints" or any sort of "periodical synchronous team ceremony." Instead, we coordinate the work asynchronously so people can always pull a task to do any time they want, and we do our best to maintain development organic and organized.
People collaborate organically (two people will decide how they work best whether that’s via email, Slack, or ad hoc meetings), but we also have minimal structure to keep everyone on the same page.
Committed to Personal Growth
Like any relationship, our company has a two-way value stream with the people that work here.
As a company, we would like to see our products thrive, and as developers, we want to be able to unleash their creativity. This means that there will be times when people won’t be 100% aligned with our current product in the short-run, but in the long-run we believe that giving people time to do whatever they want will result in innovation and a healthier life. We encourage people to use roughly 20% of their work time to research or build anything they want, be it related to Hash or not.
As for the company's growth, we dedicate time to understand if our processes are still attending to people's needs. We value context over blindly repeating processes, so we have to dedicate time to study the context continuously.
Fosters Psychological Safety
If people aren't safe to express what they want, then we've failed.
We understand that we are faulty humans and we have to deal with personal matters from time to time. Here at Hash, we look out for each other much like friends would and we believe this is part of what enables us to work so well together. For example, we’ve worked at companies in the past where if you miss a day, you need to give HR a doctor’s note to excuse your absence. We’d never ask you to do that and will always trust you to take time off when you need it.
Our whole team gets together whenever we there’s an occasion to do so. Whether it’s because we achieved a company milestone or we’re celebrating someone’s birthday, and sometimes we also just do it for fun! We believe you need to feel completely comfortable in order to truly enjoy your work, and as a result, this enables you to collaborate more fluidly and naturally. As a company, this is how we reach our peak performance.
Engages with Community
Good developers will always want to work with other good developers.
We encourage anyone here to talk in tech events and we help covering costs to make this happen. We learned from open source and now we want to give back to the current and next generation of developers, so anything built here can (and should!) be open sourced.
We are not happy with the current technical level that most events in Brazil sets, so we plan on making our own tech events and maybe even conferences to be able to spread sparse knowledge about what we and other companies built. By "sparse knowledge" we mean real life problems and solutions for large scale software.
You are allowed to do what you think it's right for the product you are building.
You are responsible for what you are doing, and you have the doors open to involve yourself in any area that permeates a product since this will bring you a wider vision of people that will be affected by your work.
We know that people have strength to do this, but we also know sometimes they have bad managers and this might be a huge barrier for motivation, so we not only encourage people to speak up to any problem, we make it everyone's duty to do so. If you don’t like what you see you should raise the flag and talk about it to any person in the company.
Our product is complex and we are on an ecosystem of legacy systems and huge players.
We were not the first company on this market, we do not have all the features - yet - so we need to be the best. We are building it to the long run. We believe that the best way build an excellent product is to not customize our solution to one person or team, instead, we develop features that will attend those individual needs in a broad manner. We do this by tackling the most complex root problem that, when solved, will also solve less complex problems with similar characteristics by default. We strive to design the best usability to make our awesome tech tangible to people.
Hash provides a infrastructure that can easily allow any company to become a sub acquirer - or operate like one. That's huge because until then, a company would spend at least US$1MM and about an year to do so in a market that is dominated in majority by banks. Now, any company can monetize their network better, cheaper and faster. Our users can increase their revenue up to 3 times combining our services with their product strategies while creating better services to its customers and suppliers.
Credit cards penetration in Brazil still low and electronic payments only represents 28.4% of total household consumption in Brazil. The new entrants (such as PagSeguro - NYSE: PAGS and Stone - NASDAQ: STNE), already won ~25.9% of the market by bringing more innovative & quality services, both having huge IPOs. Hash allows any company to create better services in similar ways, for their niche, creating relevant services and products while making more money than using other solutions.
We do that by dealing with most of the bureaucracy, creating modular APIs and Dashboards which can fit from a innovative startup to a large retail company. Our standards are really high and we're sick on the quality of our design and development, creating things to last but without fear or preciosity to roll back whenever necessary.