class OurTeam extends YourTeam
🛠️ Leads the hiring, engineering effort
🛠️ Leads the product management practices
💼 Design Head
🛠️ Leads all things design
🧩 Backend / API
Django / Flask (Python)
Spring Boot (Java / Kotlin)
Laravel (PHP) - only for legacy integrations
Native iOS (Objective C / Swift)
IAAC (Terraform / Pulumi)
Our approach to building Products
Customer is the king and quicker iteration is a crowd pleaser!
We are influenced by the philosophy of build small and fast, and where possible we like to take this collaborative iteration forward with our customers. In our development journey we focus on helping customers plan smaller incremental iterations, defining key indicators for measuring adoption and gathering and analyzing feedback from their customers.
Build what is necessary, predict what is missing.
We keep the context, of what our client's customer pays them for, always as a north star. E.g. the ability to connect to a doctor is core of a telemedicine platform, video conferencing facility is best left for integration.
We actively look for process or people problems masquerading as a "need for automation", and try to bring it to discussion with our clients.
We have also developed a knack for predicting the missing links to bring a customer journey to a full circle, be it on the monitoring side, be it on the ability to generate data for the marketing.
Business first, solution later
Across all our conversations, and functions one key metric that we always talk about is attention to the core problem. We have successfully applied this to how we built this company and even how we build product. E.g. our frontend developer is not modifying the button CSS, they are working on driving better conversion by making the CTA prominent
Choose what we can do justice to!
Lastly, screening for what works best for us, to create the product we are proud of. We sometimes like to say no to projects, because we do not aspire to be a large services company like Infosys or likes. Pure play team augmentation assignments do not excite us as much, and when we have the freedom to choose, we choose!
Our approach to building Teams
There is no running away, that it's super hard for services company, to hire and retain good people. Luckily we have been able to assemble, train and retain a team to be proud of. In the last 3.7 years we have exactly 2 people leave us!
Engineers vs "React developers"
The rate at which new technologies come and go is phenomenal. We wanted a small and performant team while continuing to play with new stacks without little or heads up. Solution, we look for people who are good engineers and problem solvers, rather than just being proficient in one language. The ability to take the core concepts of computer science, out of the context of their core language and write it in a different syntax is a deal breaker for us.
Hire fresh, and let them discover what they love
No one should have to change jobs to discover what they love, and then do that. We actively hire freshers and let them play around with different areas of development and let them find what they want to focus on. Results → self motivated, learning team.
Drive engagement through learning
We are big on learning new tools along with touching base with the basics every once in while. A strong basics builds a solid engineer. This also requires a lot of unlearning. We keep brown bag sessions every week.
It's always better in pairs!
We believe that the best way to onboard a new engineer to the team is to pair program with an existing engineer. We measure the effectiveness of onboarding by measuring the time a new joinee takes to push his first code in production.
We also try not to deploy a single person on a project.
Bottom up innovation
Every now and then we discover good core engineering problems in different projects. We make these problem statements available to every team member at Procedure and solve them collaboratively. In addition, all hours spent on doing these are at our expense.
We are not just engineers, we are problem solvers who code. We like to participate in a product journey from the ideation stage. Helping customers discover what their solution should be for customers and also for the internal users who need to monitor and run it, helps us with deeper ownership of problem statements and empathy for the users. That, results in a much better experience across all functions and stages of the development lifecycle. It also frees up the business to focus on taking the product to the market.
Modeling complex business processes
We bring the "risk mitigation" approach, to modeling the mission critical business processes. Identifying high risk areas for operations, adding fail safes or redundancies in the workflows comes as a second nature to us. Identifying edge cases, ensuring that they are either put in backlogs or covered in the workflows, ensures we always produce the "ready for real world" products.
We don't like to repeat mundane stuff. That's why we look to automate anything possible at the first instance. An engineer's time is best utilized in creating. And that's what we optimize for.
We choose between CircleCI, Github Actions, TravisCI, Jenkins, Ansible to get the job done.
Behavior driven development
We are a big believer of unit testing and follow it on every code base that we work on. Every project that starts in Procedure is done with by setting the automation pipeline and unit testing.
Given any project
When any code has to be written
Then we write a test before it
We carry the risk of increased people costs due to a delay, or underestimation of a task due to our error
We take advise from the customers on the priorities etc. and modify the size or composition of the team as required
Constant alignment with the agreed upon scope of work, reserve the right to postpone requests for modifications in case over all deadlines are to be kept intact
Time & Material
Discussions and problem discovery remains same
We jointly agree on the composition of the team and length of engagement. Add caveats if required
Keep helping with any additional skillsets as required
Deeper feedback loop on the weekly work logs for the deployed team