About

I’m Cooper Dukes, a full-stack web developer based in Falls Church, Virginia.

Cooper Dukes

Personal Mission: To develop systems that enable people to eschew inefficient, nonessential tasks from their businesses, activities, and lives, empowering them to pursue unencumbered creativity and change.

Current Residence: Falls Church, Virginia

Why?

I believe that Internet technology is about far more than computer choice or database size…

It’s about intelligently designing thoughtful processes around human-machine interaction.

It’s about finding elegant solutions to business problems, eliminating the pain of rote tasks, and nurturing healthier business practices that make work more rewarding, more productive, and more innovative.

And it’s about understanding how developments are changing the way we change, creating a million new intersections between information and technology.

Services

I offer Business Technology Strategy solutions in three areas: Web Development, Technology Consulting, and Ongoing Support. That means full-stack web development plus the advisory and maintenance services that help you make the right technology decisions and keep what I build running well into the future.

The best way to understand what I offer is to browse my portfolio, but you can read below for more detail.

Web Development

I build across the full stack: custom web applications with Vue frontends, Go backends, and PostgreSQL databases, as well as WordPress-based sites for clients who need a managed CMS. I’ll always recommend the stack that best fits your project.

I offer the following standard project types:

  • Custom Web Application — Purpose-built software for your specific business needs: internal tools, customer-facing products, data-driven dashboards, and more. These projects typically involve a reactive frontend (Vue), a structured backend (Go), and a relational database (PostgreSQL).
  • Comprehensive Design — The full design process from scratch. We define your requirements, create original mockups, and build the site in a clean, maintainable codebase. Your input is sought at every step. Great for businesses looking to meaningfully upgrade their web presence.
  • Mockup to Web Conversion — Already have a design from your own team? I can turn your mockup into a fully coded website or CMS theme.
  • Site Rebuild — Is your existing site slow, outdated, or hard to maintain? I’ll rebuild it to modern standards, preserving the look and feel if you want it, but with clean, future-proof code underneath.
  • Microsite — A focused, single-purpose website (usually one to five pages). Perfect for events, product launches, or companies that just need a clean web presence to start.

Technology Consulting

Technology Consulting is about exploring your needs and constraints to find the right web solutions for you. The process usually begins with a discussion of what you’re trying to do, why you’re trying to do it, and how you suspect it should be done.

I then explore the problem in further depth, examining your current systems and researching what others have done to successfully resolve similar issues in order to make meaningful, actionable recommendations. You’ll want to consider Technology Consulting if you have questions like the following:

  • How should I structure my business’s systems to be more efficient?
  • What are cost-effective solutions to common business functions, such as email, website hosting, and accounting?
  • What is the best way to organize the flow of information throughout my company?
  • How do I design an email marketing campaign?
  • What social media should I be using, and how?
  • Should I be blogging? If so, how often and on what topics?

Ongoing Support

Launching a site is the beginning, not the end. I offer hourly-based support to keep your project running and moving forward after launch. This includes:

  • Incremental, roadmap-driven feature development
  • Software and dependency updates
  • Security monitoring and patching
  • Bug fixes and minor enhancements
  • Performance monitoring
  • Documentation of your codebase and systems

Work

A curated portfolio of projects I’ve completed.

Testimonials

Cooper and his expertise have been invaluable to our organization. Despite being located halfway around the globe, he was more reliable and responsive than any other web developer we have used. He provided us with a good balance of options, both short and long term, that have allowed us to create strategic web presence as our organization grows.

Cooper is also one of the rare developers that doesn’t let his broad technical knowledge get in the way of clear and concise explanations. He lays out your options and is singularly focused on working with you to find the best solutions. Additionally, he is always thinking a couple of steps ahead to ensure that you are in the best position to be effective both today and tomorrow.

Cooper worked fast, on budget and provided us with fantastic results. I couldn’t ask for anything else.

~ Dawn Deeks

We’ve been trying a lot of developers and found out that the most difficult part is the communication, which makes Cooper an astounding developer. Besides the communication, Cooper manages to be efficient and organized on every project that we’ve worked on, always knowledgeable to ask the right questions in the beginning, guiding us in the right directions, which saves us a lot of time and money.

Cooper is the perfect solution for a small business like us.

~ Edward Huang

FAQ

Here is a curated list of topics new clients ask me about the most.

Yes, and for the first time in nearly a decade. My work has been primarily referral-based, but I currently have availability for new clients looking for custom website development, platform development, or technology consulting.

My current hourly rate is $155. Fixed-price projects generally cost between $3,500 and $15,000.

All work is billed in USD.

Sometimes. It depends on a number of factors:

  • The age and complexity of the codebase
  • The quality and availability of documentation
  • How difficult it is to test and verify changes

Taking on an existing project is a decision I make case by case. If you have an existing codebase you’d like help with, the best first step is to get in touch and share some context.

I offer fixed project pricing for work I’ve been involved in from the start, where I’m familiar with the codebase and can vouch for its quality.

All other work can be done on an hourly basis.

Not explicitly, though in practice there’s not much work that I can do in under seven hours.

I typically require a deposit of around 20% to begin work. An additional sum may be payable at the midpoint, and the balance is due on completion.

Payment terms will be clearly stated in any project proposal I provide.

For fixed-price work, I invoice per our agreed-upon payment terms.

For hourly work, I invoice at the end of the month.

Yes, I have a general contract, applicable to any work we do together. The goal of my contract is to ensure we both understand our responsibilities, not to deceive you. As such, it’s written in plain English and available in a version controlled GitHub repository for you to review at any time.

For fixed-price work, I will also submit a project proposal, outlining the scope, timeline, and price for the individual project.

When you reach out, it helps to share:

  • What you need to accomplish — e.g. “We’re launching a subscription box service and need a sales site, a customer account dashboard, and admin tools to manage fulfillment.”
  • How you think it might be done — e.g. “We’ve heard there are plugins that could help, but we’re not sure.”
  • What you’ve already done — e.g. “We have a business plan, the domain, and some copy.”
  • Your timeline — e.g. “We’re hoping to launch in three months.”
  • A rough budget — e.g. “We’re aiming to launch for under $30k, with a post-launch feature list we can revisit.”
  • Any relevant context — e.g. “We have deep experience in operations and fulfillment, but this is our first time building on the tech side.”

You don’t need to have all of this figured out - a rough picture is enough to start a conversation.

You do. Once final payment is made, ownership of all code and assets that can be transferred to you, is transferred to you.

That said, there may be third-party licenses or agreements in place that limit your ownership of specific assets or libraries - those restrictions aren’t mine to waive. I’ll flag anything relevant during the project.

You can review the full copyright terms in my general contract.

My focus on any project is honoring what we agreed to — delivering quality work that fulfills the scope, on budget and on schedule.

Minor scope changes can usually be absorbed without much impact on either. Larger changes will typically require a change order that documents the adjustment and its effect on budget and timeline.

My preference is to launch the project as originally scoped whenever possible, and treat additions as roadmap work to tackle afterward. In my experience, this keeps projects on track and gets work live faster — which is a win for everyone.

A full site development project typically takes 6–9 weeks for design, development, and review. Coding a provided design can take a few weeks less.

I try to turn around hourly work items within 2–4 business days, though this varies based on complexity and my current workload.

Platform projects are larger and typically estimated in quarters to completion.

Documentation is part of every project discussion. The right format depends on what you actually need. It could be a documentation microsite, a whitepaper, a Q&A reference doc, or simply a working session where I walk you through what was built and how to use it.

On the code side, I write modular, clearly named code that’s meant to be readable and maintainable by anyone who works on it after me. Please bring up your documentation expectations early in the project so I can plan accordingly.

I’ve worked with many designers over the years, on both CMS-driven sites and more complex web applications.

If you have a designer - in-house, freelance, or otherwise - I’m happy to collaborate throughout the process:

  • I can clarify exactly what I need to build each scoped feature, and identify which elements I can derive from existing mockups without requiring additional design work.
  • I can review designs early to flag anything that may be harder to build than expected, could cause accessibility issues, or might not hold up well with real content and use cases.

When building from a design, I try to balance close adherence to the mockups with the practical realities of a live website - performance, manageability, and graceful handling of content that doesn’t always fit neatly into a comp.

I’ve worked with many agencies over the years, completing hundreds of website and platform development projects. Most agency relationships follow a consistent process:

  1. The agency sources the client and handles initial discovery to confirm project fit and general requirements.
  2. I’m brought in early to assess feasibility of scope, timeline, and budget, and to answer technical questions.
  3. The agency’s designer produces mockups of key pages and visuals. I review the designs to flag anything unexpectedly complex or problematic before they’re finalized.
  4. The agency, designer, and client finalize and sign off on the designs.
  5. I build the site, set up the server and infrastructure (hosting, CMS, email routing, firewall, etc.), and handle initial testing. I stage the site with sample content to validate the designs, then hand it off to the agency with relevant documentation.
  6. The agency handles content per their agreement with the client.
  7. The client reviews. We address changes collaboratively, typically across two rounds of revisions.
  8. With client approval, I launch the site and verify everything in the live environment.
  9. I provide ongoing support and further development as needed.

Most agency work is billed hourly, since these are typically ongoing relationships with multiple projects at various stages simultaneously.

I offer white-label services at no added cost. With a sending email address, I can correspond with clients under your brand.

Agency projects are credited to the agency. I include agency work in my portfolio unless we agree otherwise in advance. I’ll charge a modestly higher rate for work I can’t show publicly.

Browser support is less of a concern on the modern web than it used to be. The elimination of Internet Explorer and the standardization of browser engines have made cross-browser compatibility largely a solved problem for most projects.

That said, I test in the current stable versions of the major desktop browsers as well as on mobile devices. Specific support requirements are defined in my contract, and if you have users on unusual or legacy environments, we can discuss that during planning.

I always build testing time into project estimates, both for my own review before presenting work and for your review before signoff.

You can check out my GitHub profile for some recent code I’ve written. The majority of my work is for clients, so I don’t own that code and can’t share it publicly.

No site is 100% secure in all circumstances, but I do my best and am confident in the products I deliver. Security is a multi-faceted issue, and I try to address every aspect, including:

  • Making sure your site is on quality infrastructure
  • Making regular backups and ensuring the backups are usable
  • Writing good code, with version control
  • Keeping third-party dependencies updated and monitoring for known vulnerabilities
  • Managing secrets through environment variables, never hardcoded in source code
  • Implementing proper authentication and session management
  • Sanitizing user data inputs
  • Rate limiting on forms and API endpoints to prevent abuse
  • Setting secure HTTP headers (Content Security Policy, HSTS, etc.)
  • Using encryption as appropriate
  • Encouraging security best practices, like using strong passwords, rotating credentials, and following the principle of least privilege

Sparingly. LLMs are powerful tools, but prone to mistakes — and outright fabrication — when not closely supervised. I find them most useful for:

  • Discrete, verifiable code tasks — e.g. “Sort this array of objects by year, descending, nulls last.”
  • Augmenting QA — e.g. “Review the error messages in this project for consistent tone, appropriate for a non-technical audience.”
  • Rubber ducking — e.g. “I want to build a real-time vector search over 1M+ records. My plan is to ______.”

I review any LLM output that goes into a client project manually, line by line, before it’s committed.

Probably not much. I’ve worked with dozens of hosts over the years, and most are pretty awful — slow, running outdated software, and charging a premium for their shortcomings.

These days, I prefer to host directly on cloud services like DigitalOcean or AWS, and use a deployment system to manage the server. For WordPress sites, that’s SpinupWP. For custom platforms, it’s usually Dokku.

This approach strikes a good balance between maintaining direct control over the server and offloading routine tasks like deployment, backups, and updates to a trusted tool.

Contact

You can email me at [email protected]. I’ll get back to you as soon as I can (usually within a few hours).

You can also find me on GitHub.