RecruitSumo Inc, provides a platform for assessment of source code. We identify favorable metrics that lead to robust, maintainable and readable code.
While the platform is used for assessing potential candidates, the metrics used in this analysis are attributes we should all strive to maintain. For this reason, internally we use this analysis for far more than just assessing potential new team members.
I should point out that my background isn't in computer science. I have no formal training and am a self-taught programmer, along with tutelage from peers. With the proliferation of coding within many professions, this is becoming a more common background.
The majority of my experience in software engineering has been through hacking pre-existing code to add the functionality that I need.
This meant I became a jack of all trades when it came to languages but a master of none. In my current position, I have been lucky enough to be able to spend extended time using Python on a number of projects, thus mastering it.
However, I have typically had little feedback on my coding abilities. The majority of code assessment came in the form of, does it run... and then, does it give the desired results...
Coming to RecruitSumo(RS)
RS were willing to take a risk in adding me to the team, even with relatively untested coding abilities.
Despite a lack of general assessment from peers, when some examples of my code were run through the RS assessment engine, I was pleased to learn that I scored well.
More encouraging was the fact that pieces of code that scored worse were from functions I was aware needed some refactoring.
While I have continued to improve my coding ability since my time with RS, there are times when I will commit some code that perhaps falls a little short on some metrics that lead to extensible and maintainable code.
A Self-Improvement Workflow
I have therefore set up a workflow so that code I submit is automatically run through the RS analysis, it provides a detailed breakdown of areas in which I could improve my code.
This provides a gentle assessment prior to passing off to more senior developers. It allows me to investigate code that is subpar and self-correct.
It might not be well known what continuous integration (CI) is, for those outside a software engineering profession. CI was proposed as a method to help with the maintenance of code bases through regular integration with the main repository coupled with unit testing and code quality checks.
With the proliferation of git as a method for version control and numerous third-party applications being created to aid with development workflows, CI is an integral part of many developer workflows.
For open source projects, it is particularly easy to set up CI with hosting services like GitHub and GitLab offering integration with numerous services that will run CI free of charge. Travis CI and Circle CI have become particularly popular.
In my case, I use CI to continuously assess my code and constantly push myself to maintain the principal traits that perhaps come more easily to more senior engineers. This workflow has allowed me to improve as an engineer over my time at RS.
At RS we are confident that our analysis platform tests invaluable metrics that result in well-written code with little technical debt.
By using these analytic tools continually, we push ourselves as developers to commit code that will withstand these tests and give us confidence in code quality, whether written by junior, mid-level or even senior engineers.
RecruitSumo Inc, sharing our passion for machine learning and artificial intelligence. We specialize in predictive analytics for human capital adding value by helping build the right organization, culture, team, and talent to succeed.