In This Blog
AI-assisted development is reshaping how software engineers approach their work. At Emergent Software, we’re always looking for tools that enhance productivity without compromising quality, and GitHub Copilot is a valued tool in our toolbox.
I’m Jason Paff, a Software Engineer here at Emergent Software. I use GitHub Copilot daily. It helps me streamline simple processes so I can focus on more complex, custom builds. Over the course of my time using Copilot, I’ve developed a strong sense of where it shines, where it falls short, and some best practices to use it effectively in development workflows.
In this article, I’ll share my experiences working with GitHub Copilot, along with some tips and best practices I’ve learned along the way.
First Off, What Is GitHub Copilot?
GitHub Copilot is an AI-powered code completion tool that integrates directly into your coding environment. At its most basic level, it offers contextual code suggestions as you type.
Where Copilot Excels in Real-World Development
From my own experience, GitHub Copilot performs best in scenarios that are highly repetitive or follow recognizable patterns. These are some of the specific use cases where I’ve found it especially valuable:
UI Development with Tailwind CSS
Much of my current work involves front-end development using Tailwind CSS, a utility-first framework. Normally, I’d create a class in a CSS file, define a bunch of styles, and then apply that class to an element in my HTML. But with Tailwind, instead of writing out styles in a separate file, I just use utility classes like [flex] directly in my HTML.
It breaks down CSS into small, reusable pieces, so I can apply styles right in the markup using descriptive class names. There’s no need to create separate classes for common things like layout or spacing, I just use the utilities Tailwind provides.
AI is a great fit here because it’s a situation where everything is self-contained and doesn’t require thinking too far outside the box.
SQL Query Generation
Because SQL syntax is relatively constrained, Copilot is great at generating accurate and syntactically correct code. If you have similar stored procedures already open in your editor, it will suggest complete blocks of code that conform to the established logic, saving considerable time.
Automated Testing
Another benefit of Copilot is how well it supports testing. It analyzes functions and proposes relevant test cases. Often times, it includes edge cases I might not have considered.
Saving Money for Clients
One of the most practical benefits of using GitHub Copilot is that it helps reduce development costs by saving time on routine coding tasks. When developers can move faster through boilerplate code, repetitive functions, or predictable patterns, that translates directly into cost savings for clients.
Copilot shifts how I allocate my time. The effort I save on low-complexity tasks is reinvested in the parts of the build that actually differentiate the product for our clients.
Fewer hours billed for basic functionality and additional focus on the features that matter...it’s a win for us and our clients.
Not a Replacement
The fact is, Copilot has its limitations. Putting together an entire application? No. Even as it advances, it's never going to replace developers.
The analogy I use is the transition from punch cards to terminal-based programming. When new tools emerge, they shift the nature of the work rather than eliminate it. Copilot reduces the time spent on repetitive tasks, allowing engineers to focus on custom business logic, architectural design, and client communication.
It’s like getting a dishwasher in your house...it didn’t replace you, it just made things better.
Caveats and Considerations
Hallucinations and Inaccuracies
Copilot is an incredibly valuable tool, but it's important to understand its shortcomings before adopting it widely across a team.
For one, the AI is designed to give you an answer. It's never going to tell you ‘I don't know’... even if it doesn’t know. It's going to try and figure something out, even if it's not right.
That’s why you need to verify everything it generates. Think of it like code you pulled from Stack Overflow: helpful, but not production-ready until you’ve reviewed and tested it yourself.
My advice? Never use Copilot to generate code for something you have absolutely no idea about, because you have no way to verify if it's telling you the truth.
Limited Context Awareness
Something that I think a lot of people miss when they start using Copilot is that it doesn't have access to your entire codebase, only the files you currently have open in your editor.
This means that for optimal performance, you need to be proactive about curating the context Copilot can see.
Best Practices for Successful Adoption
For teams interested in using GitHub Copilot in their workflows, I’d offer the following advice:
-
Talk to GitHub like you’re asking a little kid to make you a sandwich 🥪: When using Copilot's chat functionality or code suggestions, break requests down into clear, concise instructions.
-
Use it for the right tasks: Focus on repetitive code, test generation, and standard components where accuracy is easier to verify.
-
Keep developers in the loop: Always review Copilot’s output. Pairing human judgment with AI-generated suggestions produces the best outcomes
Final Thoughts
GitHub Copilot has been a welcome addition to my development toolkit. It hasn’t changed what I do, but it’s definitely changed how I do it. By handling the tedious and repetitive parts of coding, it gives me more time to focus on the challenging, creative, and high-impact parts of building software.
My favorite aspect of GitHub? Saving time on writing boilerplate code. Instead, I can focus more on the actual custom business logic.
For businesses looking to boost developer productivity without sacrificing quality, Copilot offers a compelling, practical path forward. But like any tool, its effectiveness depends on how it’s used. With the right guardrails in place, it can elevate development teams and accelerate delivery timelines.
Interested in Exploring AI-Powered Development?
Contact us today to learn how Emergent Software can use GitHub Copilot and other AI tools to help you reach your development goals.
Frequently Asked Questions
How much context does Copilot use when suggesting code?
Copilot only analyzes the files currently open in your editor. To improve results, open any related files or components during your work session. It doesn't automatically access your entire project or understand all code dependencies unless they're visible in the current context. This means it might miss important logic from files that aren’t open. Keeping your codebase well-structured and using meaningful variable and function names can also improve suggestion quality.
Is Copilot secure?
Like any tool that writes code, Copilot can introduce security risks if used without proper oversight. Always review the generated output for best practices and compliance with your organization's standards. While GitHub has implemented safety filters, the tool can still suggest insecure or deprecated code. It’s essential to apply code reviews, static analysis tools, and secure development practices alongside Copilot use. Think of it as an assistant, not a final authority on secure code.
What coding languages does Copilot support?
Copilot supports dozens of languages including JavaScript, TypeScript, Python, Java, C#, HTML, CSS, and SQL. It performs best with popular languages and frameworks that have extensive public codebases. Support for less common languages may be limited or inconsistent. The more a language or framework is represented in public repositories, the more accurately Copilot can generate suggestions. Updates and model improvements continue to expand language support over time.
Can Copilot be used by junior developers?
Yes, but with caution. While it can help junior developers learn by example, it should not be relied on as a substitute for foundational understanding. It’s important that newer developers understand why Copilot’s suggestions work, not just copy them into production. Educators and mentors should encourage curiosity and verification rather than blind trust in the tool. When paired with solid learning resources and thoughtful review, Copilot can accelerate skill development.