Qpractice case study, Zao client spotlight, Zao WordPress web development, Zao WordPress eCommerce development, Zao WordPress plugin development, custom WordPress plugin,

Zao Client Spotlight: Our Collaboration with Qpractice

One of Zao’s goals includes taking on complex projects that require in-depth strategy. We don’t want to merely solve problems, but add value to the technology our clients are using. We take a boy scout approach to the work we do: Always leave the campground cleaner than we found it.

This means not only cleaning up what messes we may find when we arrive, but ensuring our clients have sustainable technology that benefits them in the future.

We recently had the pleasure of completing an initial phase with Qpractice, a website built to help interior designers prepare for the NCIDQ exam. So far it has been a complex, but extremely exciting collaboration with Lisa League, designer and founder of Qpractice. We’re here to share what we’ve done so far, and be sure to check out our interview with Lisa to hear her thoughts on working with Zao!

What Qpractice Does

The NCIDQ exam is an interior design licensing and certification test offered in the US and Canada. According to Lisa, it tends to be commercially oriented, with a focus on health, safety, and welfare. It tests designers on their understanding of necessary codes and regulations, making sure they can demonstrate their understanding of the non-structural part of the building (like plumbing, electrical, mechanical systems, etc.).

The exam tests knowledge interior designers should have accumulated both during their education and from their work experience. The NCIDQ exam can be a crucial element in an interior designer’s career trajectory; designers often seek out the exam to move up to a senior design position or land higher profile, higher paying projects.

Qpractice aims to help interior designers prepare for the NCIDQ exam by providing extensive opportunities for trial, error, and education. The Qpractice site provides practice tests that in many ways mirror the real NCIDQ exam, allowing designers to become familiar with the format and feel confident when facing the exam live.

Zao’s work on Qpractice

Like any ongoing project on a live, thriving site, as we worked through the initial phase, the scope was extended to cover new and emerging (and sometimes urgent) issues and inconveniences. Zao updated much of Qpractice’s existing system, as well as revamped the entire theme, added functionality, and created several plugins to better serve Qpractice’s needs. The NCIDQ exam also recently added a new quiz format, and Qpractice needed to have that created for test takers continued comfort and familiarity with the exam.

The discovery process

As we do with most of our clients, we did a significant code and performance audit before diving in. JT talked about how vital the discovery process is before, and it’s a staple in the way we approach projects. For Qpractice, we made recommendations for custom features that can be added, as well as data migrations from one plugin to another, and more.

During discovery, we don’t always recommend changes. Sometimes we recommend staying with the current solution if it’s best serving our client’s needs. We believe this is just as important as adding the new and shiny features.

Qpractice was set up using Sensei and WooCommerce Memberships, and we suggested that they continue to do so. From our initial discovery document:

  • Sensei – Given the high level of integration with custom functionality plugins and the purpose Sensei provides on your site, we’d recommend keeping it as your quiz management solution. Developing a custom quiz management solution would offer minimal long-term benefit and incur a high short-term cost.
  • WooCommerce Memberships – Based on our discussions with you, the most recent changes to WooCommerce that have resolved outstanding issues, and the cost of switching membership platforms, we recommend sticking with WooCommerce Memberships.

We aren’t kidding when we say Zao is working on behalf of our clients at every turn.

Once the discovery document was sent and we got the approval from Lisa, we went straight to work.

Order up: adjusting Genesis and making the menu

Lisa wanted to make some adjustments and add new elements to the Qpractice theme, but wanted to stay on Genesis.

One of the big pieces that took a lot of time and effort was the way the menu functions. We overhauled the entire menu system in terms of functionality and mobile responsiveness. It’s a specific implementation that works responsibly, as well as opens and closes according to different user actions. When logged in, Qpractice users have access to an additional menu with custom functionality as well.

The entire site is now device agnostic, which is particularly important for appealing to new users and making it possible for existing users to access information like the study guide, grades, and more, with ease.

Creating seamless integrations

On Qpractice, these three tools are integrated to offer the most to users, as well as make the business easy to run. Sensei powers the Qpractice learning and quiz systems, WooCommerce Memberships controls access to those systems, and WooCommerce powers the eCommerce component of the site.

Between these three tools, there were lots of bits and pieces that needed cleaning up. When one would update, it would often introduce a bug to one of the others, and it would impact the entire setup negatively. Zao’s first step in improving the Qpractice site was obvious: we triaged a bunch of bugs popping up in the integrations between Sensei, WooCommerce, and WooCommerce Memberships, as well as submitting several pull requests against their respective repos.

Side note: This is where retainers become necessary. Plugin teams have their technical goals in mind when they’re building their product, but they do not have your specific ecosystem in mind when they release. That’s why paying to have a technical partner to bridge the gap between the technology and your specific needs is so valuable.

Simple, but lovely features

WooCommerce Product Bundles price shortcodes

Qpractice uses WooCommerce’s Product Bundles, but there wasn’t a good way to output the price for the each product in the bundles and show the user what each item cost and just how much they were saving. The shortcode is super easy to use (of course), and makes solving this problem extremely simple.

WooCommerce Product Bundles, WooCommerce WordPress websites, WooCommerce development, WordPress web development

Custom message bar

Zao added a way for Qpractice to flash a message bar at the top of the site. We wanted it to integrate nicely with the Qpractice menu and show up in certain scenarios set by the admin. Although there are plugins that offer this kind of functionality, most of them only create a message bar that shows universally across the site, and we wanted to give Qpractice more control over this component of the site. The message can be shown across the site entirely, or the site admin can toggle it to show exclusively to logged out users, which is particularly useful as a promotional tool.

All the WordPress plugins

As mentioned, the Qpractice site is using Sensei, WooCommerce Memberships, and WooCommerce.

Additionally, we migrated Qpractice from another affiliate plugin to AffiliateWP, built by Pippin’s Plugins. They create great products and support AffiliateWP incredibly well; we felt confident that AffiliateWP would put Qpractice’s site (and affiliate program) in good hands.

Once again, we make sure our clients are gaining the most value from their technology, which means setting them up with what we believe to be the best products, and there’s no doubt that AffiliateWP falls into that category.

Custom WordPress plugin development

Qpractice had some specific needs and problems to resolve that existing plugins couldn’t address, so we did one of the things we do best: we built them.

We encourage all of our clients to open source the plugins we create for them, and Lisa was especially enthusiastic about creating products that are open sourced and available to the public. Not all of them are open sourced just yet, but many of them are.

Bulk Boot for Sensei

The way that Sensei is built means that users are signed up indefinitely unless they remove themselves, but this presented a problem for Qpractice, which operates on a seasonal schedule. At the end of every season, they needed to be able to remove access to the courses and encourage users to sign up for the next season, should they want to do so.

We discussed the fact that booting learners from a course is actually a pretty intense operation performance-wise and that it needed to be an asynchronous operation. As a result, we decided the best course of action was to add an optional turtle to help the user’s anxiety levels.

Bulk Boot for Sensei, Qpractice, Bulk Boot WordPress plugin, WordPress plugin development, custom WordPress plugin development

We wrote Bulk Boot for Sensei to give Qpractice the ability to bulk remove all learners from a specific course at the end of the season. Now, tidying up user access in Sensei is super easy.

Sensei Advanced Quizzes

The Qpractice site already had a plugin that extends Sensei, adding additional functionality, and we built upon that to add more useful tools in the admin area.

One of the most frustrating things about Sensei is that it dumps all questions/question-types in one big listing in the admin without faceted filters for drilling down to certain types of questions. Qpractice has a variety of question types that act a certain way, and Lisa had no way to search by the group. We created a tool that adds columns and filters to allow advanced sorting so she has a much easier time of filtering.

WordPress plugins, WordPress WooCommerce Sensei, using WooCommerce Sensei, WordPress eCommerce development, WordPress educational development,

WooCommerce Custom Product Redirects

Zao created a custom plugin called WooCommerce Custom Product Redirects. This plugin is not only a great sales and customer support tool, but it allows the Qpractice site to direct their users to information they may find crucial for using the products they’re purchasing.

With WooCommerce Custom Product Redirects, if a user has a product in their cart and makes a purchase, they will be redirected to relevant content set by the site admin. If the site admin has a relevant tutorial to the product being purchased, they may decide to custom redirect to that tutorial for the customer’s benefit. If there are two products that have URLs, the site admin can define priority, ensuring that their customers get any and all pertinent information automatically delivered to them post-purchase.

WooCommerce VitalSource Redemption Codes

Qpractice offers an e-book that is delivered by a third party, but purchased through the Qpractice site. Qpractice needed a way to keep an inventory of codes and her stock in WooCommerce without spending a lot of time keeping track of it manually.

With WooCommerce VitalSource Redemption Codes, every time a user purchases a product stored on a third party site, it associates one of the codes (in Qpractice’s case, a free code for the e-book) with that user so they can find the code on their receipt, and so inventory is neatly kept in WooCommerce.

This plugin was written specific to VitalSource, a Qpractice partner. We will likely adjust it and make it open source soon–stay tuned!

Zao Sensei Media Attachments

We created an alternative to a WooCommerce plugin that allows the site admin to associate media items with a lesson and ensures the media shows up in the resources list for associated courses. Zao Sensei Media Attachments now serves the same function, but uses CMB2 to create a better user interface. CMB2 simplifies the admin fields and provides more filters for modification.

WordPress plugins, Zao WordPress plugins, WordPress plugin development, Qpractice, working with Qpractice, e-commerce website development, eCommerce website development, hire a developer, looking for an eCommerce developer, WordPress eCommerce,

CMB2 Snippet Library: Associate WordPress Menu Field

We also contributed one of the features back to the CMB2 code snippet library. With this feature, Qpractice can select or create a curated WordPress custom menu to associate with a quiz or lesson and that menu will be displayed by placing the “Associated Post Menu” in the corresponding sidebar widget area.


Working with Qpractice has been an absolute delight. Lisa is a creative powerhouse, suggesting all kinds of ideas that we had the opportunity to create into a tangible, functional reality. We’re on the next phase of the project, and we’re all too excited to see what comes next. We’ll keep you posted!

Check back later this week for an interview with Lisa sharing her perspective of the project. 

Zao, WordPress web development, WordPress eCommerce development, WordPress eCommerce developers, WordPress plugin developers, WordPress technical partners, WordPress developers to hire, hire a WordPress developer, find a WordPress developer

Zao: A Look Back at 2016

After a decade of work, 2016 was the best year Zao has had thus far.

Our small team more than doubled, we worked on several amazing projects, and we contributed back to open source, of course. Here’s a rundown of what we did and what we’re excited about moving forward.

A 2016 Retrospective

The Zao Team

Team Zao grew considerably in 2016 – we more than doubled our staff size and even found some incredible contractors who have been an integral part of our success.

Full-time Staff

Mihai

In February, we hired Mihai Joldis as a full-time developer. Hailing from Romania, he leads the charge with many of our enhancements to WP eCommerce and is an invaluable engineer on many of our client projects as well. To top it all off, he provides excellent support to our growing customer base at wpecommerce.org.  He is also one of the funniest people you’ll ever meet–humble, kind, and generous, too! All fantastic qualities that he’ll be putting to good use as he becomes a first-time dad in a few short months.

The Other Justin

In May, we hired Justin Sternberg as a lead developer, staff sergeant, managing partner, and all around excellent human being. He leads many of our agency projects; clients pretty much love him the moment they start working with him. After less than a year on our team, we can’t imagine life without him.

Contractors

Lizz

Late last year, we had the good fortune of finding Lizz Ehrenpreis. Lizz is the only reason you’re aware of who we are and can read these words without wanting to stab your eyes out. She’s an absolute wizard with content, incredibly disciplined, and pretty much the bee’s knees. Did I mention she plays the ukulele?

Jon

If you don’t know Jon, you should DEFINITELY know Jon. He’s a rock-solid developer who has been a massive help to Zao since Q4 last year. He’s been an integral part of helping us launch our own projects on budget, on time. If you’ve ever been tasked with finding GOOD developer contractors, you know how difficult it can be. If they’re solid engineers, they never communicate. If they communicate well, you’re constantly fixing code. Jon is the exception to that rule; he’s the real deal and we’re lucky to have him around.


Our work with Cancer Tutor

Cancer Tutor Logo

If you’ve been poking around our site for the last few weeks, you’ve already learned a little bit about Cancer Tutor and the work we’ve done for them already.

A brief synopsis of the work we did for them, from our portfolio:

Cancer Tutor worked with Zao on several different aspects of improving their site, ranging from eCommerce to solving complex technical hurdles. They wanted the ability to have member profiles that allowed their users to track and follow content from different authors, as well as create a notification center inside of WordPress without the overhead of something like BuddyPress.

Zao created a custom notification system built on a notifications component found in BuddyPress; we cribbed the component and integrated it with the REST API in WordPress. Now, users can follow categories and authors, and will get notified every time there is new content. This JavaScript intensive update also allows greater communication from Cancer Tutor admins, allowing them to send a notification to everyone in the system as desired.


The Cancer Tutor project was challenging and exciting to our team particularly because of how we utilized WordPress REST API.

The REST API and what it can do in WordPress are going to be a huge area of growth for us. It’s in WordPress core, and will become the primary way to solve a lot of technical problems. The custom notification system we built for Cancer Tutor required digging into how the REST API works.

The REST API touched almost everything we did on the Cancer Tutor site, from templating, to the way the notification system works, to the way that users are able to follow certain authors and forum posts or different categories. The site we built for Cancer Tutor is a user-centric, member-centric website, and all of that functionality is built on the REST API.

We dug into the internals to find best way for authentication, as well as how to manage users and notifications in a way that scales. We had to figure out how to build the site so that 50,000 users liking the same thing at the same time or sending out 100,000 notifications wouldn’t crash the server.


Working with the WordPress REST API

Working with the REST API fits nicely in our wheelhouse. Zao focuses on advanced problem solving with our clients; it’s something we enjoy and it’s where we really shine. Plus, it’s at an intersection with our specialty. Since we focus on eCommerce, there are loads of cool possibilities that come into play when sites can utilize the REST API.

Since the REST API is a major part of WordPress moving forward, we’ll see it utilized in a few different ways by many:

Single page applications

Instead of going to an eCommerce site that feels sluggish, we predict we’ll see more sites using an eCommerce theme with the REST API, which makes the site feel way faster. Obviously, anything that can make a site load faster is better for business; it’s a common vanity metric. Faster sites convert better.

Advanced technology for mom & pop shops

This is also going to provide opportunities for advanced technology to be utilized by smaller businesses. Maybe we’ll see programmable drones delivering from mom and pop shops, where the delivery address for an order that just came in can go through their site and directly to their delivery drone. Piece of cake.


Our work with Brooklyn Tweed

Brooklyn Tweed, Brooklyn Tweed website, Zao clients, sites on WordPress, WordPress developers, hire a WordPress developer, building a clothing store, eCommerce developers, e-commerce WordPress developers, using WordPress for e-Commerce

Cancer Tutor was our hare. Brooklyn Tweed is our tortoise.

Brooklyn Tweed is another excellent client of ours (we’re biased–all of our clients are excellent!). Zao is doing month to month work with them, which we love. Having long-lasting, ongoing relationships with our clients is satisfying. It may not be a gigantic project from the start (who doesn’t love landing a big check?), but it means that we get to work with them and steadily grow their business.

Longevity in our relationships gives us the opportunity to be a technical partner, rather than a one-off vendor. It requires us putting in some hard work upfront to build a foundation to what we always hope will become a fruitful relationship. It allows us to add real, measurable value to their business.

When we build a long term relationship with our clients, we have an impact on that business we’re not able to have otherwise. We can take their business to the next level, technically speaking, and work with their team to make sure their technology is scaling as it should, right alongside their sales.

Long-term clients allow us autonomy and creative license to do what we need to do. If we’re just a vendor pushing code, it turns into a different dynamic. Long-term partnership allows us to approach the relationship as a collaborative effort. We get to work alongside the client as their goals shift over time. We love that, and we’ll be looking for more of these kinds of opportunities in the future.


Open source efforts

Our open source efforts have been incremental, but solid, and you’ll see bigger changes to those things in 2017.

CMB2

Since Justin Sternberg joined us in June 2016, a few notable changes have been made to CMB2, including:

A significant change came with 2.2.2, allowing you to now show your meta fields in the admin columns (on the post-listing screens).

And 2.2.3 was a major release, marking the addition of the CMB2 REST API, to neatly complement the new WordPress REST API. That means when you use a site with the REST API, you now have a way to interact with CMB2 data as well. This update also included something that has been asked for over and over again, which is making the WYSIWYG editor work properly within repeatable groups.

You can see all of the updates for the year on the CMB2 Github page.

Although CMB2 is still a WebDevStudios property, Justin’s passion for working on CMB2, as well as the shared commitment that both Zao and WebDevStudios have made to open source, means it’s still Justin’s baby. You’ll be seeing more work from him on that moving forward.

CMB2 Group Map

We created this CMB2 add-on for Brian Krogsgard and PostStatus. It allows users to use CMB2 group fields to manage custom post type entries, and is used on PostStatus to associate footnotes with notes.

WP eCommerce

WP eCommerce got some love this year, with three minor releases and eight core contributors working on the plugin. We continued significant development efforts for an upcoming 4.0 release. The 4.0 release has been in the works for the last five years! WPEC also strengthened partnerships with strategic partners like Paypal, Amazon, and TSYS ProPay.

GatherContent

Zao worked with GatherContent to release a major rewrite and many improvements to their GC integration plugin. While GatherContent is not an open-source platform, their WordPress plugin is open-sourced, available for collaboration, and offers benefits to open source in its availability and transparency.

Since Zao started working on the GatherContent WordPress plugin, there have been sixteen releases. The plugin is benefiting from active development, bug fixes, and feature updates. You can see the work we’ve done from versions 3.0.0 and up right here.


Sweet, sweet numbers

Zao plugin downloads in 2016: A whopping 504,855

When compared with 2015:

  • Analytics for WordPress downloads went up 5%
  • GatherContent’s plugin downloads went up 88%
  • CMB2 downloads went up 511%
  • Dsgnwrks Instagram Importer downloads went up 39%

Our revenue increase: 121.7%

Wow! These are the kind of numbers that make us feel good; it means what we’re doing is working.


All in all, it was a productive year that showed a lot of growth and prosperity. And it laid fantastic groundwork for 2017. Things in the world may be challenging, but we believe staying true to our work and being productive is one way of being radical.

We’re looking forward to seeing what 2017 brings, and we hope to see you on the way.

what developers need to know, developer education, code audits 101, how to do a code audit, what should i offer in a code audit, what is a code audit, how to price a code audit, code audit tools, code audit analysis, code audit deliverable, code audit checklist, software code audit

What Developers Need to Know Before Offering Code Audits

So, you’re a developer. You’ve thought about offering code audits, but maybe you haven’t had a clear idea of what your code audit should provide, why clients go seeking one, or how to price the service.

In January, we covered the questions clients need to ask their developer before getting a code audit, and offered some guidance on how to vet their vendor. This time around, we’re going to cover the developer side of things: why clients seek code audits, what questions you need to be asking before you get started, and how code audits lay a good foundation for a future relationship with your clients.

Why Clients Look For Code Audits

Yes, of course, there’s a ton of information available on the internet, including all the information that a client could need regarding the basics of site performance and functionality. Most clients, however, either don’t have the time to do this research, or don’t have the technical expertise to make sense of it all.

Code audits benefit clients by empowering them to make informed choices about the future of their technology.

When clients are coming to you asking about code audits and an assessment of their technology, they’re looking for your extensive knowledge that empowers you to look at their code, quickly parse the information, and dictate which things are worth building on.

Basic Code Audit Questions

There are a few standard questions every developer should ask before diving right into someone’s code.

What type of project are we auditing?

Knowing what kind of project your client is looking to have assessed is vital to understanding how much time it will take you–and whether or not you’re a good fit for the project. Is it a website audit or a full-scale plugin? An eCommerce site or an app? Knowing what you’re looking at upfront helps you figure out if you have the right expertise to do your client justice…and what kind of scope you’ll set out for your clients.

Are we auditing code that has been custom written by a previous developer or is this a distributed plugin that we’re assessing?

Knowing the origins of the code can help you set your expectations. Custom code created by another developer may take longer to dissect, especially if something is buggy. Is the developer someone you know? If so, that gives you informative context on what you’re dealing with–and provides a point of contact for figuring things out. If not, you know that it may take you longer to dig through and assess what is happening with the code at hand.

If it’s a plugin downloaded from the WordPress Plugin Repository, you know that checking on when it was last updated, as well as going to the plugin page to look over developer updates and reviews, will be a part of your process.

The Most Crucial Thing Developers Need to Understand

The key to delivering a valuable code audit is understanding your client’s underlying goals. If you’re lucky, your client understands their own business goals, and has mapped out the future of their business, too. That information is an enormous assist in guiding you through this process.

The scope of a code audit can vary wildly depending on a client’s objectives.

Here are just a few reasons our clients have sought out code audits:

They want to get rid of a tool, but need a good reason.

Sometimes, a client doesn’t like a tool, but they don’t have the technical knowledge to evaluate whether or not it’s a necessity. They need someone to assess if this tool is truly their best option–or even something they need at all.

There’s a plugin that is freely available, but they want to make sure it’s contributing to a solid technical foundation for their business.

Our websites are our online real estate. A shop owner wouldn’t want to open up their store in a crumbling building, and business owners don’t want to open up their shop on a lousy website. They’re coming to you to find out whether these distributed plugins are their best choices and will set them up for future success.

Their site is custom built, but it’s slow, and they suspect the custom build may be the culprit.

This is fantastic information, because it tells you, the developer, that they’re looking for a performance based evaluation. Now, you know you need to find out more information about their business before getting started. Maybe their business has outgrown their site; the code they had built was once working, but now, it can’t scale. This gives you an opportunity to evaluate performance in a specific, measured way, and give recommendations accordingly.

Their business has changed, but their technology hasn’t.

For example, some plugins do well if they’re on a site that has no users logged in. However, if that same site has switched to a subscription model, it won’t have caching layers that allow the plugins to run as smoothly. Your client may not know this difference. All they know is that they made the switch when they needed to shift their business model. They didn’t recognize the impact it would have on their technology.

Understanding the history of your client’s business (and the trajectory of where they intend to go) provides context regarding what needs to be assessed and what kind of upgrades would serve them best.

There are two plugins that do the same thing, but which one is best for their site?

Once again, this comparison that may be available out there on the internet, but they want your expert insight. If you’ve assessed your client’s business goals and trajectory, you can make a recommendation based on their specific business model. That’s a boon for both you and them! It means that you have something to offer that they can’t get anywhere else.

What About Pricing?

One of the toughest quandaries of them all! Code audit pricing can differ wildly depending on the client. We’ve quoted simple code audits at anywhere from $2,500-$5,000, and have quoted much more complex audits of entire platforms/systems for $50,000+.

Why the disparity?

Three crucial factors come into play:

The deliverable

As we’ve said before, we offer a comprehensive deliverable, filled with detailed information. We take a pragmatic approach, and provide a transparent, realistic look at associated costs with the recommendations we make.

Your clients will need to know what they can expect from you. Is it a document or a confirmation email? Is it a walkthrough on a call? The details of the deliverable determine how much time it will take to create and what value you’re providing.

The scope of the audit

If you’re already a working developer, I don’t have to tell you how scope impacts cost. When pricing services, you need to know what kind of assessment is needed and how much time it will take.

The amount of experience you have

Although we’d all like to dive in and make a bazillion dollars at the start, less experience usually dictates a lower rate. Do the research on what other developers in the same experience bracket are charging. Evaluate what your time is worth (and don’t fall prey to Imposter Syndrome!). Realistically assess how your experience (or lack thereof) informs your expertise and turnaround.


Code Audits: Good for Your Clients and You

Code audits benefit clients by empowering them to make informed choices about the future of their technology. A successful code audit gives your client the opportunity to accurately assess the current state of their tools. It allows your clients the chance to evaluate recommendations, knowing that they were made with their business goals in mind.

It doesn’t just benefit them, though. It also benefits you.

Code audits give you an opportunity to develop new working relationships, and lay groundwork for a long-lasting partnership. The code audit is something you can build on with your client. Whether that leads to performing the recommendations you make or for future development overhauls, the options are endless! This is a low-commitment way to spark a relationship…if you do it right.

WordPress web development, Zao company values, WordPress plugin development, hire a plugin developer, WordPress eCommerce developer,

This is a Human Issue: Zao Stands with Refugees

We stand with our immigrant neighbors, our refugee neighbors–not because they have a positive effect on our bottom line, but because they are human and worth the inherent dignity of humanity

Like many of my fellow Americans, I’ve found myself a bit dumbstruck over the events that have unfolded from our nation’s executive branch over the recent weeks. An eternal optimist, I’ve done my best to find silver lining in it all.

The bright side of all of this? Americans all over our country are banding together in solidarity to show their support for their immigrant and refugee neighbors.

“What is a web development agency doing spouting political diatribes?”

That’s what you might be asking. It’s a fair question. This is not a political issue; this is not a “left” or “right” issue. This is a human issue.

Many business leaders have already come out in support of immigrants and refugees because they run companies who depend on those populations and their skills, or they run companies founded by immigrants.

This is all good and well, but at the risk of being repetitive: this is a human issue. 

We stand with our immigrant neighbors, our refugee neighbors–not because they have a positive effect on our bottom line, but because they are human and worth the inherent dignity of humanity.

None of this is (or should be) controversial. Many of us, in our dumbstruck state, are left asking ourselves, “What can I do?”

I don’t have all the answers, but I know that if all of us do something, it will make a difference.

This is what we’re committing to:

Starting Local

To me, this is the most important part.

We may not all be able to go protest, or go to the ends of the earth and alleviate suffering, but we can all do something right where we are.

Zao Supports Refugees

Locally, Zao is committed to serving an organization who has been committed to serving Portland’s local refugee population.

Refugee Care Collective equips refugees to adapt to life within their first year of entry through partnering with local resettlement agencies and mobilizing the city of Portland.

We’re doing a matching campaign for RCC.

That means we’ll match anyone’s donation to RCC, dollar for dollar, in their name.

matching donations, refugee

If you hate these matching campaigns as much as I do (I mean, seriously, you want me to RT you and you’ll give a dollar? Come on. Just give the dollar.), fret not.

We’re giving $1,000 (to start) no matter what. We’d just love to be able to give it in your name, instead of ours. Just email your donation receipt to justin@zao.is, and I’ll hit you back with the matching donation in your name.

Other Pacific Northwest Organizations That Need Help

Latino Network

Latino Network is a non-profit that serves Latino youth, families, and communities. The news of the election has hit their community hard, and the support they offer the Portland-area is invaluable.

“At the same time, American voters made a choice to elect a President who has used harmful and divisive language that singles out Latinos, Muslims, immigrants, and other people of color.

I have heard from many of our staff members and community members about the deep fear that exists within our communities. Many of us, our families, and people we know came to this country as immigrants seeking a better life. Leaving one’s home to immigrate takes courage, strength, and a deep desire to seek something better for ourselves and our families.”

-Carmen Rubio, Latino Network Executive Director

Northwest Immigrant Rights Project

The Northwest Immigrant Rights Project fights for immigrant justice by providing direct legal services, systemic advocacy, and community education. Since the election, they have been doing a ton of work to continue to advocate for immigrants and educate social service providers in Washington.

IRCO

IRCO has spent the last forty-plus years working with Portland refugees and immigrants. Their goal is to “promote the integration of refugees, immigrants and the community at large into a self-sufficient, healthy and inclusive multi-ethnic society.”

Islamic Social Services of Oregon State (ISOS)

ISOS is a charitable organization that works with a network of non-profits and community service groups through financial and public assistance. They provide refugee services, as well as needy assistance, family crisis, and alliance support.

Oregon Jewish Museum and Center for Holocaust Education

There are parallels to history in what has recently happened. We said never again. The Oregon Jewish Museum and Center for Holocaust Education is an extremely important resource, particularly right now.

Hollywood Theatre

The Hollywood Theatre is a non-profit that screens special social justice related films and works with local non-profits (like Latino Network) to host screenings, with talkbacks, and gives the proceeds back to the organizations they partner with. Art has been a well-documented medium of political resistance and education, and supporting that is vital.

Regional Arts & Culture Council

The Regional Arts & Culture Council is serves Clackamas, Multnomah, and Washington counties with grants for artists, non profits, schools, as well as advocacy, community services, and arts education.

Once again, art is a well-documented medium of political resistance and education–as well as an excellent therapeutic tool and a huge contribution to the community. It has been suggested that the current administration may eliminate the National Endowment for the Arts, National Endowment for the Humanities, and privatization of the Corporation for Public Broadcasting, which would drastically damage many arts organizations–this one included.

The President and CEO of Americans for the Arts, Robert L. Lynch, shared a few things he has done, as well as how the community can rally against this, in a blog post on their site.

“I don’t take anything for granted with the will of an elected body, whether it’s federal state or local. Anything can happen…[s]o it’s important for the arts community to voice its concerns as much as possible.”

Robert L. Lynch, Americans for the Arts President and CEO 

Beyond Local

National Organizations That Need Your Help

U.S. Committee for Refugees and Immigrants

These folks help protect and fight for the rights of those who have been uprooted, based in Washington D.C. They’re doing vital work and a great central hub for supporting refugees and immigrants.

American Civil Liberties Union (ACLU)

You’ve heard of the ACLU, and we have them to thank for blocking the unconstitutional ban that the world is still reeling from. They’ve decided to keep fighting–and these lawsuits are expensive. Supporting them is crucial.

Electronic Frontier Foundation (EFF)

EFF has done important work for many years. Considering that Muslim Americans returning abroad were recently asked for their social media accounts for evaluation upon re-entry, the work they do is going to be more important than ever.

Black Alliance for Just Immigration (BAJI)

BAJI works with and on behave of African American and black immigrant communities by building coalitions and initiating campaigns to push for racial and social justice. They’ve released their official condemnation of the recent executive orders, and will need support for the people they serve moving forward as well.

Immigrant Legal Resource Center

ILRC trains attorneys, paralegals, and community advocates regarding how to work with immigrants, and work with many different groups to shape public policy regarding immigration.

National Immigration Law Center

NILC is dedicated to defending and advancing the rights of low-income immigrants through impact litigation, policy advocacy, and strategic messaging about immigration issues.

What Else Can We Do?

Call your representatives and voice your opinion.

The Sixty Five makes it easy to find your reps, as well as provides a simple script for callers to use, which is especially great for those of us who get anxious regarding calling on the fly.


I’ve given a lot of thought to giving, and I want to make sure that we can have the best impact possible.

If you’re familiar with organizations that are having a significant positive impact for refugees and immigrants, or if there are other things you think we can do to help, I’d love to hear about them.

 

WordPress developers, WordPress eCommerce developers, Zao, Justin Sainton, Justin Sternberg, Cancer Tutor, best WordPress developers, what it's like to work with a WordPress developer, why choose Zao, Zao web development reviews, WordPress web development, code audit, hiring a WordPress dev, WordPress developer red flags, what is a code audit, how do i get a code audit, what is in a code audit, what's included in a code audit, how do i find a developer, finding a WordPress web developer, best WordPress web developers

Crucial Questions You Need to Ask Before Getting a Code Audit

Code audits are one of the main things Zao offers to our clients. Many of our clients are strategically looking at how they can expand their businesses, and a crucial aspect of that is making sure their technology is not hindering their growth.

There’s a lot of muddled information about what a code audit should look like, and many clients start their search for a code audit without any idea of what to expect, what questions to ask, or what they should be looking for when vetting developers to do the job.

Are you looking for a code audit? Here’s what you need to know and ask before you sign that check:

Code Audit Questions Clients Need to Ask

— What is the final deliverable I can expect from this audit?

Depending on your developer, the final deliverable can range from a simple confirmation that everything is working as it should to an in-depth delivery document that details what is working, what isn’t, and appropriate recommendations for improvement.

Nowadays, we all research what we’re spending our money on before we pay up. Whether that research is looking at Yelp reviews of local restaurants or comparing the best and the worst Amazon reviews on new products, we want to make sure we’re getting the best bang for our buck. So often, though, clients don’t ask what they can expect to receive when it comes to code audits.

Maybe you just want a developer to look things over and confirm if everything is solid. That’s great! If you find a developer that will simply send over an email with a 👍🏼 and “Everything’s cool,” then they’re a good choice for you!

code audit, getting a code audit, code audit my plugin, WordPress web developers, WordPress web development agencies, WordPress ecommerce developer, getting a developer, hiring a WordPress developer, should I get a code audit?, what is a code audit?

If you’re looking for a more intensive analysis of your current code, you’ll want to find a developer who provides that. Since there’s no industry standard on what deliverable comes with a code audit, you’ll need to investigate to find the developer that is providing what you want.

Here at Zao, our code audits come with an exhaustive document that assesses our clients’ current technology with a specific eye on their needs and challenges, and includes recommendations that pragmatically account for budget, time, and priority.

We also provide a timeline that, should the client choose to work with us on implementing those recommendations, gives a realistic perspective on how long it will take for those technical goals to be accomplished. Lastly, we detail in each recommendation how and why this change adds value to our clients’ businesses.

— What kind of code do you audit?

Investigating the details of what to expect from your code audit is vital because some developers only offer specialized code audits. Some developers exclusively audit plugins, themes, or apps, whereas others are focused on auditing detailed eCommerce integrations or your entire site.

If you know you’re looking for a specific kind of code audit, finding a developer who specializes and focuses on that kind of development is key. If you’re looking for a full site audit, but the developer you’ve contracted with focuses specifically on auditing Genesis themes, you may not get the most effective and comprehensive audit that you need.

— Can you provide more details on code audits you’ve done? Do you have a sample I can look at?

When you find out more about the scope of a developer’s experience and take a look at a code audit sample, you’ll get a better understanding what the end deliverable will be–even beyond the initial response. You’ll get a better idea of how your developer tackles code audits and communicates the end result.

This information is crucial, as it helps you understand what to expect of your developer, and can help you find a developer who communicates in a way that works best for you.

— What kinds of clients have you worked with in the past?

Most developers have worked with companies that span a broad range of industries, and can tackle projects in unfamiliar industries like a champ. However, knowing if their experience includes working with companies in your particular niche helps you know whether or not you’ll need to explain specific industry nuances to them.

Your technology needs to meet your business’ needs, and those can vary slightly from industry to industry. Knowing your developer’s history with your industry can help you determine what kind of crucial information you need to communicate–or whether your developer is already in a position to take on those challenges without extra explanation.

Red Flags

what questions to ask your developer, what is a code audit, when should i hire a developer, should i use WordPress, WordPress for eCommerce, WordPress web development, hire a WordPress developer, build a WordPress plugin, get a WordPress plugin for my business

In an initial introduction, everyone is on their best behavior.

Job interviews are like dating. As Chris Rock says, “When you meet somebody for the first time, you’re not meeting them, you’re meeting their representative.” You need to know what red flags to look for when seeking out a developer–and how to look past the friendly representative to make sure it’s going to be a good fit.

— A dev who doesn’t ask questions

If you’re talking with a developer about a code audit (and potentially more work beyond that) and they don’t ask detailed questions about what you’re looking for, what your current technology is, what kind of pain-points you’ve experienced, and more, you have a problem.

You want a developer who is invested in your company’s success, in solving your technical problems, and bringing value to your business. A developer who doesn’t ask questions isn’t going to know what you need, nor have the full understanding required to adequately assess what is going on with your site.

That’s one of the reasons that we ask detailed questions and make sure we know exactly where our clients are coming from. We want to make sure that we have specific notes on what to look for and what they’re trying to accomplish with their technology. Even if our clients don’t have the technical savvy to articulate what they need done, by knowing their goals, their struggles, and their technical history, we can help by capitalizing on our technical knowledge to come up with creative solutions.

— A dev who can’t tell you in concrete, clear terms what you’re going to get

There’s a reason asking about the deliverable is so important. Code audits, without planning, can beget intangible results. Unlike design, there’s no Photoshop mockup, or unlike copywriting, there’s no first draft. If a developer isn’t willing to say, “Here is the end result you can expect from me,” it’s a huge red flag.

hiring a WordPress dev, WordPress developer red flags, what is a code audit, how do i get a code audit, what is in a code audit, what's included in a code audit, how do i find a developer, finding a WordPress web developer, best WordPress web developers

Your developer needs to be able to set your expectations accordingly. You need to know what you are paying for at the end of this–and a developer who cannot tell you what you are getting for your money is not one you should hire.


We know vetting developers who, as far as you may be concerned, basically work magic on the internet, can be stressful. It doesn’t have to be, though. Now that you’re armed with these questions and red flags to look out for, you can assess which developer is going to be able to provide the code audit you need.

Have any other questions about code audits that we haven’t covered? Drop ‘em in the comments; we’re here to help!

Margin

One of the questions business owners get asked all the time: 

What advice would you give your younger self, just starting in business, based on what you now know?

This question, or variations thereof, can be a helpful way to frame mentoring conversations for new entrepreneurs. I always answer this question the same way, with a single word: margin.

The very best things in life happen in the margins. Too often, in both our personal and professional lives, we have no margin. Or worse, we have negative margins. A life without margin looks a lot like this:

  • No Personal Financial Margin: Living paycheck to paycheck (or gig to gig). No savings. No retirement. Sometimes late on bills. Get paid enough, but never really know where the cash goes. In constant anxiety about the state of personal finances.
  • No Business Financial Margin: Over-scheduled, over-committed, and under-paid. Unclear on what value you actually bring to the table. Trying to do everything – but never getting ahead.  If you have payroll to pay; you’re always hoping it gets funded on time.  If you’re freelancing – you are constantly tempted to go get “a real job” so you can make some actual money without working 80+ hours/week. Lots of ideas, but never any time to implement them. Always head-down, nose to the grindstone – never any time to think strategically.
  • No Emotional Margin: Aware of impending burnout, but don’t have time to deal with it. Getting internally frustrated towards professional peers for their successes and your apparent lack of success. Frustration in intimate relationships due to lack of communication, lack of boundaries with work, lack of being “present” when you’re meant to be present.

Naturally, there are countless other areas – but does any of this sound familiar? I think we’ve all been there, in some degree or another. Having no margin in life can be suffocating. It’s detrimental to your mental health, to your relationships, to your financial health, to your potential success in life – it affects everything!

Margin is so important, in fact, that if you recognize an area where you have none – it’s an all-hands-on-deck moment for you.  Drop everything, take a hard look at your mindsets, your choices and priorities, and what you’ve done to eliminate that margin.  Creating that margin requires an objective look – often times, an outside look – at the areas of your life that are killing you.  If you don’t belong to a mastermind, have a mentor, a counselor – some sort of objective perspective on your life that you’ve given permission to call you out – get it, now. The right people speaking timely truth into your life is transformative.

Marriages fail because of a lack of margin. Businesses flounder. Physical and mental health degrade.  Want more margin in your life? Say no. By virtue of the way time and space work – to get more margin than you have now (be it financial, mental, relational, etc.) – you need to say “no” to many things you are currently saying “yes” to. Margin creates magic.  If you ask the most successful people you know about where their greatest successes came from – I promise you, most of the time, it was from unexpected opportunity. If you have no margin, you eliminate the opportunity for the unexpected.

Besides saying no, getting outside accountability, and taking a good hard look in the mirror – what does creating margin actually look like? Here’s a very, very simple example.  Imagine you run a business.  You’re getting by, but just barely.  You’ve been growing at a steady 10% every year for the past 5 years.  It’s not astronomical, but it’s getting better every year.  Somehow – even with the increase in revenue – you’re still lacking the retained earnings that would give you some financial breathing room*.

If this hypothetical scenario is where you’re at today; do yourself a favor: make a budget.  Now (November) is a great time to start thinking about next year’s budget (potential fiscal year discrepancies notwithstanding).  But don’t just make a budget. If you made $100,000 this year – and you imagine that you’ll make $110,000 next year – don’t use your budget to spend $110,000!

Instead – create margin.  Rather than spending all $110,000 you imagine you’ll make in 2017 – go the opposite direction.  Create a $90,000 budget – and then stick to it, religiously. This observation is worth what you’ve paid for it, but here’s a few things I think you’ll find:

  1. Because of your intentionality in creating margin in one area, you’ll train your brain to create margin in other areas.
  2. You’ve perhaps never had any retained earnings as a business – theoretically, you’ll end your first quarter with $5,000 in retained earnings. This will feel amazing.
  3. With your intensified focus and newly created margin – you’ll end up thinking more deliberately and more strategically. Having cash in the bank will reduce your professional and personal anxiety and you’ll make better choices, get better clients, and have better profit margins.  You won’t see your standard 10% increase over last year – my bet? It doubles to 20%.

That’s the power of margin – it has a compounding effect on every area of your life. In the hypothetical scenario above – the business owner goes from just getting by, to ending the following year with double their annual growth, and increasing their retained earnings from $0 to $30,000 in one year.  Imagine a similar effect on your personal finances, on your mental health, on your relationships, your marriage!

I’m on a personal mission to find every ounce of margin that I possibly can in my own life – for the sake of myself, my relationships, my business, my team members, and my family. I hope you’ll join me.

  • This sounds hypothetical, but I guarantee you, it describes a significant majority of very small businesses (< 10 employees).

Our Audience

Blogging is sort of amazing to me. Don’t get me wrong – I think I’m objectively terrible at it. But I still think it’s incredible that we can put words onto a screen, press Publish – and then BAM! It’s out there, for the world to see.

Never before in the history of the world have so many said so little with so many words. Alas.

As our team grows, so grows the content we produce. Because I value clarity above almost anything else; I’d like to clearly define who we consider our audience to be. I haven’t really seen too many company blogs do this – the more views, the better! I don’t care loads about how many pageviews we’re getting – I just want to be helping the right people. Without knowing who we’re writing to, we do ourselves a disservice, and we do you a disservice.  You might not find yourself counted among our audience! (that would make us sad, fwiw. do something to become our audience, because I really like you.)

Without further adieu, three segments of our audience that we’re always considering:

Ourselves

That is, our future selves. Often times, we write something that is important at a leadership or business development level, or perhaps something that is inherently technical and geeky. We may publish this specifically because we know, in six months or so, we’re going to be Googling for that again. We’ll be delighted to find that our past self answered our query! In helping ourselves, scratching our own itches – we can be sure that we’ll be helping someone else in the process.

But sometimes, we also write to our past selves. Because, unlike probably most of you (wink wink), we tend to learn some lessons the hard way. When that’s the case, we write posts to give our past selves the wisdom to bypass those hurdles, and we hope that we can maybe help someone else who hasn’t yet stumbled over them.

Our Potential Clients

We have loads of clients, past and prospective, who have commented on the content (albeit limited) on our blog. We attract clients that we love because they get to know us, what we value, how we work, our personalities; all from our blog! I’ve found few truer things than this: you will work with people you like. We are almost never the cheapest or the quickest option for our clients – but they keep working with us because they like working with us. And often times, they know they’ll like us before they ever meet us – because of the content we produce.

Our Friends™

Some people like to call them clients, competitors, other agencies, other businesses, leaders, entrepreneurs etc. We just call them friends. Anytime we think we have anything that might be remotely helpful to other businesses, other developers, other product producers, or our current clients – we’ll publish it. Even if that means that we lose our own competitive “edge”. Sometimes this looks like systems and processes. Sometimes it looks like code.  Maybe it’s a book recommendation or a conference suggestion.  Maybe it’s pitching one of our friend’s products or courses! Anytime we can shine a light on something we think is helpful, we’ll do it.