"The real winners of the Californian Gold Rush were not just the diggers and miners but also those who provided them with shovels, strainers, and other equipment," says the CEO and Co-Founder of Codeac.io, Michal Simon as he explains the main goals of this code quality improvement tool.  He shared with us the possible problems that junior web developers might come across and how Codeac can help. Michal also introduced the benefits of Codeac for students of programming and gave advice to Coding Bootcamp Praha students for their new job.


1. Can you tell us a little bit about Codeac and what inspired its creation?

My journey to creating Codeac started when I bought a one-way ticket to Silicon Valley after university. I landed a job in a dating app startup that eventually exited successfully, but not without facing the challenges of high technical debt. I learned how much time and trouble we could have saved if we had built everything properly instead of taking shortcuts. I have also learned from the history of the 19th-century Californian Gold Rush that the real winners were not just the diggers and miners but also those who provided them with shovels, strainers, and other equipment. With this insight and my experience from the startup exit, I saw an opportunity to create a service that would help developers improve their code quality and productivity - and that’s how Codeac was born. 


2. How does Codeac differ from other code quality tools on the market, and what unique features does it offer?

At Codeac, we believe that great tools are not enough to make great developers. You also need guidance, feedback, and insights to grow your skills and deliver high-quality software. That’s why Codeac provides clear explanations for every issue we detect, so you can learn from your mistakes and avoid them in the future. That’s why Codeac also offers Velocity report, a unique feature that tracks the time from your first commit to your production release, so you can measure and improve your team’s agility and responsiveness to market demand. But we don’t stop there. You also get access to our team of experts who can help you set and achieve realistic and ambitious code quality goals and deliver great software faster.


3. How does Codeac help teams improve their code quality, and what impact have you seen it have on development processes?

Codeac analyzes every commit and provides actionable feedback on how to make code cleaner if any new errors are introduced by the code change. Codeac also explains the errors and educates the team on how to avoid them in the future. The impact is not only higher quality pull requests and faster development cycles but also better overall maintainability.


4. Can you walk us through a real-world scenario in which Codeac was used to identify and solve a code quality issue?

One of our clients integrated Codeac into their CI/CD pipeline and set up thresholds for code quality. When they created a merge request, they noticed that the CI pipeline failed and Codeac was the cause. They checked the Codeac app and discovered that Codeac had detected a security vulnerability in an outdated Git dependency. Thanks to Codeac, they fixed the security issue quickly and avoided putting their software at risk.


5. What are some future plans for Codeac, and how do you see it evolving to meet the needs of developers and teams in the future?

We recently launched some improvements to our GitHub integration as part of our ongoing effort to make the integration with GitHub, Bitbucket, and GitLab as smooth as possible. We want to deliver the results in the place where developers are used to spending time - the VSC itself. This way, developers get the right suggestions at the right time. The next step for us will be to introduce pull requests with fixes. Right now, we only suggest the change to the developers, who then have to go to their IDE and change it themselves. However, with generated pull requests, the developer can just click a button and send the pull request to reviewers. We believe this will help every team speed up the process of fixing simple issues.


6. Are there any challenges faced by developers while utilizing Codeac's services?

Codeac can find a lot of issues in existing projects, especially legacy applications. That can be overwhelming for developers, so we help them with the proper onboarding and configuration of Codeac. We turn off some checks so the team can focus on the critical ones first. When we resolve these issues, we adjust the configuration so the team can continue to improve their codebase. This way, the clients are aware of the issues in their code and can plan accordingly to balance new features and technical debt reduction. Every project is unique and requires a specific code quality approach.


7. How can Codeac's platform help students of programming quickly learn the tools of the trade?

Feedback is essential for development. But sometimes, there is no senior developer next to you available to answer questions or give advice. That’s when Codeac can be a helpful buddy and help students or junior developers identify the problems in their code and suggest improvements. All of this without having to wait for someone else. This creates a faster feedback loop and helps developers learn and improve their skills more quickly.


8. Can Codeac assist in creating a more interactive and engaging learning experience for students of programming?

We think so. Codeac does not only give developers actionable feedback, but also brief explanations of the issue and links to articles, StackOverflow threads, and videos. That helps students understand the problem better, and that's a crucial part of learning programming.


9. What would you say are the top 3 issues that a junior web developer can have and that Codeac can help them with?

One of the issues that a junior web developer can have is consistency. Writing code that follows a consistent style and convention can be challenging for beginners, especially when working on a team or on a large project. Codeac can help them by checking their code for style and formatting issues and suggesting improvements. Another issue that a junior web developer can have is complexity. Web development contains many different technologies, frameworks, and tools that can overwhelm a newcomer. Codeac can help them with this by analyzing their code for complexity and maintainability issues and suggesting ways to simplify and refactor their code. A third issue a junior web developer can have is a lack of guidance. Learning web development alone or from online courses can be difficult without feedback or mentorship. Codeac can help them with this by providing explanations and resources for the issues it finds in its code and helping them learn from their mistakes.


10. You have already worked with a couple of batches of Coding Bootcamp Praha students. What advice(s) would you give them for their first job?

Don’t worry about making mistakes - they are part of the learning process, and your new team will understand and support you :) Another thing to keep in mind is that if someone leaves a lot of comments on your pull request, it’s not a personal attack but a way to help you learn faster and better. And finally, remember that programming is a craft - it takes patience and practice to become better, and it won’t happen overnight.