25 January 2022
How Credit Clear attracts and retains software engineers to build award winning technology
Table of Contents
Tagssoftware development SaaS Software engineers technology fintech
Article by Credit Clear Senior Engineer Ankit Vijay
Credit Clear's mission of transforming "re-payments" with its industry leading technology is well on track, as was evidenced by the Company winning the "Best Use of AI" at the sixth Annual FinTECH Awards 2021.
Credit Clear understands that to build the best technology it needs to attract and retain the best technology team, and that this talent that is in high demand.
Today, Credit Clear's technology team consists of over 20 engineers from diverse backgrounds working on achieving the organisation's vision of reimagining account receivables. In the past 12 months we have been kicking serious goals!
This article focuses on the team that builds the technology. If you are a client, or a potential future member of Credit Clear's technology team, and interested in how we run our technology business, then please follow along.
Credit Clear is a remote-first company. We do not mean "forced-due-to-covid remote", but remote by choice. Our digital team is spread across Australia and New Zealand. Everybody is free to find their working routine. We have engineers who start a little late, some start early, some work around their child's routine. It is up to the individual and team to decide what works for best them and not the manager.
Distributed-first and cloud-first
Credit Clear started in 2016, so we are a little lucky not to have the baggage of legacy systems. We do, however, hope to create a legacy someday.
We have a fully distributed and event-driven architecture. Our applications are optimised for the Cloud. We are primarily a .NET shop, and we host all our workloads on Microsoft Azure.
Developers, Developers, Developers
Developers build, test and take the features to the production. We do not have a have dedicated QA team. That does not mean we compromise on the quality of our delivery. We put a lot of effort and emphasis on unit tests and automated tests. Since developers are involved in the end-to-end delivery of features, they cannot pass the buck once the story is dev-complete. The test cases are peer-reviewed, and the PR process plays a vital role in maintaining the quality of what goes out to the customers.
Continuous Integration and Delivery
At Credit Clear, we follow GitHub flow. Our workflow is optimised for frequent releases in a continuous delivery model, encouraging small and incremental PRs. We strongly believe that deployment should be a non-event. Any given day, we do several deployments to production. We try to keep our releases separate from deployment using feature flags to reduce the risk. The feature flags also help us release new features in a controlled manner to a subset of clients and our internal business team. We eat our own dog food.
Conway's law states that "organisations will design systems that copy their communication structure."
The organisational structure at Credit Clear is flat. We do not need to go through a manager to talk to the CTO or CEO of the company. The flat hierarchy also helps create a culture of autonomy and accountability within the team. The processes and decisions are not top-down but discussed and arrived bottoms-up. We are encouraged to challenge, take risks, do experiments and fail fast.
At Credit Clear, we are inspired by Amazon's PRFAQ (Press Release and FAQ) approach for product development, also known as "working backwards". The product owner does not decide what we are doing next in siloes. The team is involved right from the beginning to the maturity of an idea.
Credit Clear is at an exponential growth phase currently. One of the reasons this is possible is because everyone in the team has a degree of freedom to execute "how". The developers can choose what works for them from the IDE, machine or any tool of their choice. While teams are aligned to Credit Clear's vision, they own the delivery. It also helps us prioritise the tech debts at the right time rather than brushing them under the carpet.
With great power comes great responsibility. Every developer is responsible and accountable for the feature they deliver. The team or the developer owns the "feature" and not a particular project or service. That means if a story spans across multiple services, then the developer is responsible for making those changes, not the team that owns the service. The focus is on faster delivery with the least resistance.
If you are Credit Clear's client and raise a support request, you do not sit on an L1 or L2 support queue for days. Regardless of level or experience, every developer must be part of the weekly support roster. Being part of support helps devs understand issues faced by our customers better. It also helps identify and eliminate systemic problems such as gaps in monitoring or logging or subtle bugs in the system. Additionally, since developers handle support across all the services, it helps them understand how systems they do not own work.
Logging, Monitoring, Security and Regulatory compliance
In a distributed world, anything, anywhere, can fail. We need to build our system resilient for network failure, latency, outages, traffic surge, etc. It is essential to discover these issues and take appropriate action at the earliest. Hence, we put a lot of emphasis on logging and monitoring.
Also, since we are in the Fintech industry, security and regulatory compliance cannot be an afterthought. While we use automated tools such a dependabot, Qualys, we also have an OWASP security checklist that developers fill and review at the time of PR to ensure we have done our due diligence.
Every engineer at Credit Clear brings more than just their technical skills. We are driven by passion, innovation and hunger to make a difference. We love what we do.
We are hiring and looking to grow our team. If you are interested in being part of a fun-filled environment, please reach out to our hiring partners at nDeva to kick-start the discussion.