Cognition Labs recently announced the official launch of its artificial intelligence (AI) platform, Devin. This news comes after Devin's initial unveiling in March. This AI tool is designed to perform various complex coding tasks, making it a valuable asset for individual developers and engineering teams.

Devin's capabilities include writing code in multiple programming languages, building and deploying websites and applications, and debugging code, all aimed at streamlining the software development process. The company claims that Devin has successfully passed real engineering interviews at AI companies and completed actual work on freelance platforms like Upwork. Currently, Devin offers subscription services suitable for individuals and teams.

0_m-S7PipYU29jmpfK-1024x536.png

Introduction to Devin

Devin is primarily positioned as an AI programming assistant, playing a significant role in the field of software engineering and capable of handling various complex programming tasks. Its technical background stems from Nubank's large-scale code migration project, where Devin successfully migrated an 8-year-old monolithic ETL with millions of lines of code to submodules, resulting in significant efficiency gains and cost savings for Nubank.

Currently, Devin offers services to engineering teams and developers at a subscription fee of $500 per month, allowing unlimited usage without seat restrictions, as well as features like Slack integration, IDE extensions, and APIs, along with onboarding guidance and support from the Cognition engineering team.

According to a report by The Information, Cognition Labs has raised $175 million and announced a valuation of $2 billion just six months after its establishment. A month later, Founders Fund led a new round of funding, having previously led a $21 million Series A investment at a valuation of only $350 million for the latest competition among GitHub Copilot and other generative AI coding assistants.

generally-available.CHJ0T34J_Z1rnVDi.png

Highlights of Devin's Features

  • Automated Code Migration and Refactoring: Capable of automatically handling code migration tasks, significantly reducing the workload of engineers on such repetitive tasks. For example, in Nubank's project, it efficiently completed the migration from a monolithic architecture to submodules.
  • Natural Language Processing: Able to understand and respond to natural language requests, making collaboration between developers and Devin more intuitive and convenient, allowing developers to issue task commands to Devin as if communicating with a colleague.
  • Code Testing and Correction: Equipped with its own shell, it can test code and fix errors until the code runs successfully, ensuring the quality and stability of the code.
  • Multi-file Operations: Able to independently explore new codebases and contribute code across multiple files, easily handling multi-file processing needs in complex projects.
  • Web Search Functionality: Possesses its own browser for searching online documents and testing built web applications, providing developers with a wealth of reference materials and testing environments.
  • Continuous Integration / Continuous Deployment (CI/CD) Support: Capable of handling CI/CD-related tasks, optimizing the software development process and improving the efficiency and quality of software delivery.
  • Project Management Capabilities: Can create and manage projects, including creating PRs and responding to PR comments, facilitating team collaboration and project advancement.
  • Cross-platform Collaboration: Integrates with multiple tools like GitHub and Slack, enabling cross-platform collaboration that allows developers to use Devin in familiar working environments, enhancing work efficiency.

Applicable Scenarios

  1. Large-scale Code Migration Projects: For example, Nubank's migration of its core ETL from a monolithic architecture to submodules, where Devin helped achieve a 12-fold increase in engineering time efficiency, completing a task that could have taken months or years in just weeks while saving over 20 times the migration costs.
  2. Routine Code Maintenance and Optimization: When dealing with small front-end bugs and edge cases, developers can tag Devin in Slack threads for quick problem resolution; for code refactoring tasks, they can specify the code sections to be edited or upgraded via the Devin IDE extension, allowing Devin to handle the refactoring work.
  3. Data Engineering Tasks: In tasks such as data warehouse migration, ETL development, data cleaning, and preprocessing, Devin can play an important role, such as running data analysis scripts and generating data visualizations and statistical summaries.
  4. Creating and Managing PRs in Projects: When creating initial draft PRs for backlog tasks, developers can assign tasks to Devin from their to-do list each day, and once Devin completes the tasks, it will create the PR for developer review and adjustments.
  5. Testing and Troubleshooting: When encountering code issues, such as handling invalid auto-classification links, Devin can assist in investigating related functions to identify and attempt to resolve the issues.

e182456d8bc177e9cf0a6a85f55324b2e675e997-3081x1734.png

Devin Usage Tutorial

  1. Registration and Login: Visit the Devin platform, register, and create an account to access the user interface.
  2. Provide Codebase Information: Provide Devin with relevant information about the codebase that needs migration or refactoring to help Devin understand the project background.
  3. Issue Task Instructions: Clearly describe specific task requirements to Devin using natural language, such as "Migrate the music generation library from Java 8 to Python 3.11 and add small tests to each new Python file to ensure the code runs."
  4. Task Processing and Progress Monitoring: Devin begins to automate the task processing, providing real-time feedback on progress, allowing users to check task updates at any time.
  5. Review and Adjust: Carefully review the work completed by Devin, making necessary adjustments if any issues or areas for optimization are found.
  6. Merge Changes: Once confirmed, merge Devin's changes into the main branch to make the modifications effective.
  7. Testing and Validation: Use Devin's shell and browser features to test and validate the code, ensuring quality and functionality.
  8. Repeat Operations: Repeat the above steps as needed based on the project requirements, continuously handling more code migration or refactoring tasks.

Conclusion

As a powerful AI programming assistant, Devin brings significant efficiency improvements to engineering teams and developers with its outstanding capabilities in code migration, refactoring, natural language processing, and more. Whether it's large-scale code architecture adjustments or routine code maintenance and optimization, Devin can play an important role.

If you are facing tedious tasks and challenges in your programming work, consider trying Devin and let it become your programming partner. Like, comment, and share your thoughts on AI programming assistants, and follow Devin's development as we explore new ways of programming work together, believing it will bring us more surprises and value in the future.