# Velocity Labs > Velocity Labs is a senior US software team in Phoenix, AZ. Since 2009 we've built custom software and web apps, rescued old and vibe coded ones, and kept them running. Velocity Labs is a custom software development company based in Phoenix, AZ. We build web apps and MVPs, take over and modernize existing apps (vibe coded ones included), add AI to them, audit their code, upgrade Ruby on Rails apps, and maintain them. - Phone: (602) 633-5049 - Email: contact@velocitylabs.io - Address: 221 E. Indianola Ave., Phoenix, AZ 85012 ## Services - [AI integration: add AI to your existing app](https://velocitylabs.io/ai-integration.md): Add AI to the app you already have, without rebuilding it. Chat over your own data, first drafts of routine writing, document reading. Senior US team in Phoenix. - [Software project rescue & legacy upgrades](https://velocitylabs.io/app-rescue.md): Your developer left, or the app is outdated and fragile? We take over software projects, stabilize them, and modernize legacy code. Senior US team in Phoenix. - [Vibe coding cleanup](https://velocitylabs.io/vibe-coding-cleanup.md): Built your app with Lovable, Replit, Base44, Cursor, or Claude Code? We fix what's holding it back, close the security gaps, and get it ready for real customers. - [MVP and SaaS development for startups](https://velocitylabs.io/mvp-development.md): From idea to launch, MVPs and SaaS products with Stripe billing, built by senior developers to keep running after launch. Start with a one-day story workshop. - [Code audit services: independent code review](https://velocitylabs.io/code-audit.md): Fixed-fee code audits with a plain-English report and fix plan, most urgent first. Essentials $1,000, Standard $1,500, Comprehensive $2,500. - [Web app maintenance and support services](https://velocitylabs.io/maintenance.md): Monthly web app maintenance plans from $750, by a senior US team. Monitoring, security updates, backups, fixes and upgrades, starting with a code audit. - [Ruby on Rails upgrade services and support](https://velocitylabs.io/ruby-on-rails/upgrades.md): Rails upgrade services from a team that's worked with Rails since 2007. Ruby, Rails and gem upgrades a version at a time, with tests to make them safe. - [White label development partner for agencies](https://velocitylabs.io/partners.md): Senior US developers your agency can put its name on. White label web app development, experienced extra capacity for your team, and fractional CTO help. - [Software project story workshop](https://velocitylabs.io/process/story-workshop.md): Discover exactly what it will take to build out your idea, and get a roadmap to help ensure your project is successful. ## Company - [Home](https://velocitylabs.io/index.md): Who we are, how we work, our team and client testimonials - [Our work](https://velocitylabs.io/portfolio.md): Web applications we have built, rescued and maintained for clients - [Open source](https://velocitylabs.io/open-source.md): Ruby gems and Heroku tooling we've built and published - [Contact](https://velocitylabs.io/#contact): Start a project with us ## Blog - [What Makes Velocity Labs an Outstanding Web Development Company?](https://velocitylabs.io/blog/2018/07/02/phoenix-web-development-company.md): Why should you choose Velocity Labs as your custom web application developer? Learn about our core values and what sets us apart. - [How We Use Story Points (and Why They Aren't Hours)](https://velocitylabs.io/blog/2018/06/25/how-story-points-work.md): Story points size work by effort, risk, and complexity, not by the clock. Here's how they work and how we use them. - [Easily Extract Deeply Nested Hash Data in Ruby](https://velocitylabs.io/blog/2018/06/20/easily-extract-deeply-nested-hash-data-in-ruby.md): Ruby 2.3 introduced a new method, which is very usful when dealing with deeply nested data in a hash or array. Learn how to add it to your toolbox! - [Save disk space by truncating dev log files](https://velocitylabs.io/blog/2018/06/18/how-to-save-disk-space-prune-those-dev-project-log-files.md): If you deal with multiple projects over time, it's easy to forget about the leftover log files that may be eating up your disk space. - [How Does Velocity Labs Work With New Projects?](https://velocitylabs.io/blog/2018/06/11/what-to-expect-from-velocity-for-new-projects.md): Over the years, we've refined our process to deliver a great product. Here's what you can expect from us on your new project. - [Easily generate test files of any size](https://velocitylabs.io/blog/2018/06/04/easily-generate-test-files-of-any-size.md): Anyone who has implemented file uploads, with file size validations, knows how annoying it is to test. As Chris shows, creating files of a correct size can be fast and easy. - [How Does Velocity Labs Work With Existing Projects?](https://velocitylabs.io/blog/2018/05/21/what-to-expect-from-velocity-for-existing-projects.md): Over the years, we've refined our process to deliver a great product. Here's what you can expect from us. - [What Makes A Successful Software Project?](https://velocitylabs.io/blog/2018/05/14/what-makes-a-successful-software-project.md): There are many moving parts to a software project. After decades of experience, here's what we've learned makes a successful project. - [What Is a Typical First Week Like?](https://velocitylabs.io/blog/2018/05/07/what-is-a-typical-first-week-like.md): From project kickoff, to our first demo. Here's what you can expect from us in the first week of work. - [Why Do I Need a Code Review?](https://velocitylabs.io/blog/2018/04/30/why-do-i-need-a-code-review.md): Existing applications may have been developed a while ago, by many different developers. A code review allows us to assess the current state of the project. - [What Can I Expect From Our Initial Meeting?](https://velocitylabs.io/blog/2018/04/23/what-to-expect-in-our-initial-meeting.md): This article describes what what you can expect from our initial meeting, what information we're trying to gather and why we're gathering it. - [Find and replace {} in sed](https://velocitylabs.io/blog/2015/06/01/find-sed-empty-json-object.md): There is an awkward gotcha when trying to find and replace the empty hash/object with sed from the command line. - [Per tenant IDs, with CanCanCan](https://velocitylabs.io/blog/2015/05/25/per-tenant-ids-with-cancancan.md): This article shows you how to scope IDs to tenants in a multitenant system, using CanCanCan, in Ruby on Rails. - [Prevent Rails From Caching in Development](https://velocitylabs.io/blog/2015/05/20/preventing-rails-cache-fetch-caching-in-development.md): We ran into a strange problem in our development environment recently that had us puzzled. Even though we'd turned off caching, we were still seeing cached results. What's going on?! - [Pessimistic Prerelease Peculiarities](https://velocitylabs.io/blog/2015/05/08/pessimistic-prerelease-peculiarities.md): We show that a commonly held assumption about the pessimistic requirement operator isn't necessarily always true, specifically when dealing with prerelease gem versions - [5 Indispensible Rails Testing Gems](https://velocitylabs.io/blog/2015/05/08/5-indispensible-rails-testing-gems.md): There are certain Ruby gems that we've found to be useful and include in every project we work on. Here are a few of the testing gems we feel are indispensible. - [STI store: Putting attributes in their place](https://velocitylabs.io/blog/2015/04/20/sti-store.md): We show some of the disadvantages which arise when adding attributes to models which use single table inheritance, and introduce a new approach which resolves them. - [3 Things We're Looking Forward to at RailsConf 2015](https://velocitylabs.io/blog/2015/04/17/3-things-were-looking-forward-to-at-railsconf-2015.md): Velocity Labs is traveling to Atlanta for RailsConf 2015. Here are a few things we're excited about for the conference! - [Easily retrieve tags from a PostgreSQL array in Rails](https://velocitylabs.io/blog/2015/04/10/easily-retrieve-tags-from-a-postgresql-array-in-rails.md): This article will show you how to select array values easily, and efficiently, from a PostgreSQL array type using Ruby on Rails. - [Entrepreneurship Series: Interview with Jenny Poon](https://velocitylabs.io/blog/2012/01/31/entrepreneurship-series-interview-with-jenny-poon.md): Jenny Poon — a woman who admittedly likes to tell people hell no, make little children cry and says the best part of being a business owner is, "I'm the BOSS!" Read our interview with creative director and designer Jenny Poon, and you'll see what makes this woman so successful (here's a hint -- she's won several Folio awards for best design, but for her, it's not entirely about design). - [Entrepreneurship Series: Interview with Brian Webster](https://velocitylabs.io/blog/2012/01/24/entrepreneurship-series-interview-with-brian-webster.md): In the second of our Entrepreneurship Series, we interview Brian Webster of Fat Cat Software. Brian shares his insights about being a developer and founder, the need for delegation as your business grows, and the importance of allowing user feedback to drive product development. - [Three Upcoming Opportunities for your Startup](https://velocitylabs.io/blog/2012/01/22/startup-opportunities-phoenix.md): Here are three upcoming opportunities in Phoenix to get support, publicity, training, and possible funding for your startup. Take a look! - [Entrepreneurship Series: Interview with Paul Kenjora](https://velocitylabs.io/blog/2012/01/12/entrepreneurship-series-interview-with-paul-kenjora.md): In the first of our Entrepreneurship Series blog posts, we interview Paul Kenjora, an entrepreneur who raised $1.5 million in Arizona for his tech startup. In this interview, he talks about lessons learned from running a funded startup. - [Coworking in Phoenix](https://velocitylabs.io/blog/2012/01/04/coworking-in-phoenix.md): We're a small company, but we love connecting and contributing to our community. That's why we're regular drop-in members at CO+HOOTS coworking in central Phoenix. - [AZ Disruptors Provides Funding For Startups](https://velocitylabs.io/blog/2012/01/02/AZ-disruptors-funding-for-startups.md): If you're a tech startup company, don't miss this opportunity for funding. In exchange for 10% of your startup, AZ Disruptors will give you cash, a place to work, and mentors to help guide you. - [3 Methods for Goal Setting](https://velocitylabs.io/blog/2011/12/26/agile-goal-setting.md): Although many people consider agile to be an approach to software development, agile methodologies can be applied to many different business processes, as well as personal goal setting. - [Presentation: The Jekyll Static Site Generator](https://velocitylabs.io/blog/2011/12/20/presentation-jekyll-static-site-generator.md): Curtis gave a short presentation on the Jekyll static site generator for Ruby at the Dec 2011 Ruby AZ meetup. He discussed the benefits, usage and even a few gotchas found along the way. - [Gathering Requirements Through Story Workshops](https://velocitylabs.io/blog/2009/12/16/gathering-requirements-through-story-workshops.md): We use a technique called a story workshop to gather project requirements. Find out more about how we use this technique to provide value to our clients. - [Optimizing hardware costs for Amazon EC2](https://velocitylabs.io/blog/2009/04/27/optimizing-hardware-costs-for-amazon-ec2.md): Wondering what hardware you should provision for your application hosted in the cloud with Amazon EC2? We've got you covered with this handy optimal cost calculator. - [Disposable proxy for secure coffee shop browsing](https://velocitylabs.io/blog/2009/04/23/disposable-proxy-for-secure-coffee-shop-browsing.md): Have you ever used an unsecured wireless connection at a coffeeshop? Find out how you're putting your data at risk and the steps you can take to protect yourself. - [What you don't know is affecting your performance](https://velocitylabs.io/blog/2009/04/09/what-you-dont-know-is-affecting-your-performance.md): Want to eek a little performance out of your current hosting setup? Follow these easy steps to decrease swapping. ## Optional - [Full site content](https://velocitylabs.io/llms-full.txt): Every page above in a single Markdown file - [Privacy Policy](https://velocitylabs.io/privacy-policy.md) - [Terms of Service](https://velocitylabs.io/terms-of-service.md)