Zao, learning to code, WordPress developers, WordPress ecommerce, learn to build WordPress, learning to build in WordPress, learning WordPress, how to use WordPress

Five Things I Wish Someone Told Me When I Learned to Code

I haven’t been in the software development industry for loads of time, but thanks to some amazing people who championed my growth, I slingshotted in quicker than some other peers who did it all on their own. (Props to you individuals, by the way, that wrestled it all out by yourself–you are unstoppable!)

After thinking a bit about my experience I came up with five things I wish I had known when I started developing:

1. It’s 100% normal to feel like you’re drowning

I stumbled my way into coding; it initially started as a hobby.

At first, everything was bite-sized and easy. I was blissfully unaware of how little I knew. Once that bubble popped, my lack of knowledge was overwhelming. Everywhere I turned there was something I could not do.

I remember the first time I tried poking around in the Codex. I ran away thirty seconds later because it all seemed like Greek! I literally did not have the capacity or supporting framework to “get it.” I wish I had known in advance how often it would feel like drowning and that it was fine.

2. Just Keep Learning, Just Keep Learning

Go after all the low hanging fruit that you can. It might seem like a waste of time to spread yourself so wide, but if you are truly a newbie and have no context for the developing world, the wider you go, the wider your foundation will be. Although you won’t be fully aware of it at the time, you’ll fill in the gaps of your understanding so you can level up.

When I felt like I was drowning, I continued to chip away at the pieces I could master and walked away from the pieces that made no sense to me. It paid off in the long run.

You can only handle so much drowning before you give up. By moving on, I kept my overload threshold in the green and experienced small wins that boosted my confidence.

Every so often, I would return to the Codex and give it a go again. When it still wasn’t useful for me, I moved on. I remember the day I was working on something, jumped around several Codex pages…and realized it made sense to me. Suddenly, the Codex was in my toolbox. By expanding my understanding in other areas, I built a framework that allowed me to tackle the previously impassable problems.

I wish I had given myself the permission earlier on to move on when it suited me. While there is a satisfaction to mastering something, I have found the field to be so wide, deep, and complex that it is rare to master something the first go around. Spending all your resources to come out utterly defeated is more costly than saying, “I don’t get it, so I’m going to move on to something else and return to it another time.”

It changed my experience from perpetually drowning to recognizing that I need to play in the wading pool a bit longer.

Note: This should go without saying, but don’t put yourself in a situation where you have committed to do something that is beyond your abilities for a client…because then, you don’t have the permission to walk away from it.

3. Hone in on your trusted sources

The internet is amazing and Google a robust resource, but not all of the resources out there are reliable.

As helpful as Stack Overflow is, quality control is not always a guarantee. Many of the solutions provided are hacks, instead of the industry standard approach to the problem. When you’re starting out, it’s hard to know who you should and shouldn’t listen to. It’s imperative to find good sources that you can soak up. This might require reaching out to experts in the business and find out who they trust.

My introduction to coding started with a free online coding tutorial resource. It was great for the most basic things. However, the further I got down the rabbit hole, I discovered that some of what they were teaching was completely wrong. Fortunately, friends who are professional developers pointed me to some credible resources.

It is hard to unlearn something foundational if you learned it wrong the first time. You only have so much time and you can spend eternity reading about all the different approaches.  Find approaches you can build on so it’s not considered time wasted later.

Team Treehouse proved to be an invaluable resource for me. They are trustworthy and they are actually good at teaching–a huge bonus because not all developers are good at breaking down what is natural for them into bite sized pieces for newbies.

4. After you learn it, build it

I cannot tell you how often I’d go through a tutorial and think to myself, “This makes complete sense. I get it!”

I followed with the tutorial and find myself at the end with the desired product. Ta-da! I learned it, right?

More times then I can count, I noticed that stepping away for the weekend would be enough for me to completely forget it. I found that after completing a tutorial, it was really helpful to go through and build the entire project again without the tutorial.

That was the real test of what I had actually learned, versus what I was regurgitating. It is great to follow along with a tutorial, but that’s only the first level. You need to practice it several times before you get it. The more you build it, the more muscle memory you create.

I wish I rebuilt the same things over and over instead of moving on to the next skill before mastering what I initially focused on.

One final point on building: going through other people’s tutorials is a great way to gain knowledge. However, reproducing something that already exists does not activate your creative thinking.

I discovered if I tried to implement a skill in a different context than the tutorial, I understood the steps to build one specific solution, but didn’t always grasp the concept in its entirety and how it could be applied to different situations. After you master a project on your own without the tutorial, try it again but with a different outcome as the goal. This will keep the skill pliable for you.

5. Get excited about pet projects

One of my biggest struggles when learning to code was that I had no idea what to build on my own. I desperately wanted to practice and try things out, but I had zero idea where to start.

As I mentioned earlier, you can only drown for so long before you give up. The antidote to this is passion. If you are really passionate about what you are building, you will have more endurance to push forward when the going gets tough.

Additionally, the great things about pet projects is that they are often side projects. You probably have other pressing matters that need attending, and so your project will get put on the back burner. This is fantastic!

When you return to it you will see your work through the eyes of a new developer. You will learn first hand the importance of commenting because you’ll probably have forgotten about why you did some of what you did and what all the moving pieces do.

As you improve your skills, you’ll find that when you return to your old work, you’ll be embarrassed by some of your approaches. The upside: you’ll have an opportunity to practice refactoring. These skills are super important and less painful to learn on your own project then in a group project where you’re impacting your peers and clients.


I wish I had known all of this sooner.  What about you? What things do you wish your baby developer self knew?

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.

 

what is the discovery phase?, web development, wordpress web development, what does the discovery phase include?, what does discovery web development mean?, what should a web developer do, what does a web developer do, zao wordpress web development, zao wordpress ecommerce development, Zao WordPress plugin builder, Zao code audit

What is the Discovery Phase and Why Do I Need It?

If you are one of our potential clients, it’s likely that you have been around the block and have heard the term “discovery” more times than you can count. The discovery process is the first step taken in moving from a prospective client to an actual client; it’s the time when a professional digs in deep, asking pertinent questions and figuring out what the client is seeking.

From what I can tell, this is becoming a standard in our industry. Why? Because building software (websites, apps, et al) is hard. One of our industry’s running jokes is that every project will be under-scoped and over-budget.

According to Hofstadter’s law, “It always takes longer than you expect, even when you take into account Hofstadter’s Law.”

This truth is magnified when estimates are requested before understanding the entire scope of the work needing to be done.

There are actually many reasons projects go over budget or time — some positive and some negative:

  • A key requirement is missed during the requirements-gathering phase.
  • A simple line-item balloons into days of work (For example,”Import items through ACME API” turns into days of digging through a massive API ebook PDF)
  • Crucial information is brought to the table late in the game. (“By the way, that API requires NSA security level clearance passed through a token.”)
  • Developers discovered a missed user-case problem and solved it without bothering to set up meetings/discussions/approvals.
  • A feature was given a bit more pizzazz than was scoped. (Developers get carried away!)
  • Straight-up underestimation of the work needing to be done and what it is going to take.

Building software is hard, but estimating software is even harder. After all, it’s rare for us to build the same thing twice. Though we work with WordPress, it’s actually quite impressive how little of our work deals with the actual blogging component. WordPress has the basic, expected features on lockdown, and so what we end up building is ways to make WordPress do something unique.

Uncharted territory

Let me remind you: Christopher Columbus’ intentions were to sail around the world to establish a shipping route to Asia. He estimated the distance to be about 2,300 miles (the true figure was much more vast at about 12,400 miles). This idea was controversial at the time; the prevailing theory was that the earth was flat. So Chris was spot on about the earth being round, but what he completely missed in his estimations was the existence of an entire continent between Europe and Asia. The United States of America is an example of massive scope creep.

What’s the point?

If we opt for skipping the discovery phase, we’re likely to run into this unfortunate truth: The short term gains are not worth the long-term pain.

At Zao, our goal is to give your project the best chance of success. The primary way we can help guarantee that success is by providing an accurate budget and timeline estimate (with some margin). As you have established by now, the primary way we establish an accurate estimate is through a discovery phase!

So enough about why…let’s talk about what.

What exactly is a discovery phase?

There are actually many ways to define a discovery phase, but the discovery generally involves gathering requirements, reviewing goals, identifying what is working, and what isn’t.

In order to do the work of discovery, we need access to all the relevant resources, which can include things like:

  • Existing scoping documents
  • Stakeholder requirements
  • Admin access to existing solution (CMS login)
  • Developer access to existing solution (FTP, GitHub repos, etc)
  • Access to relevant documentation
  • Project Review

Once we have access to all the relevant resources, we take time to review with you, the client. Some of the things we need to review together include:

  • Current pain points with your existing solution (This involves in-depth conversations, and likely a demo walkthrough or two)
  • The new proposed solution, and any of your accompanying wireframes, mockups, documentation, etc. (When possible, this can be accomplished through tools like InVision.)
  • Any of the gathered resources which require additional context (e.g. internal API documentation)

This review process is a great opportunity for Zao to collaborate with you. Our intent is to work alongside you as a trusted partner and help you maximize the potential for your project. We can offer industry-level insight based on our years of experience, and even help you to determine if the proposed solution is the best way to accomplish your goals.

In addition to the collaborative review effort, this is also the time we do in-depth research into your desired goals, and audit any existing solutions that we may be building with or on. These audits may include things like your eCommerce platform, web hosting provider, codebase, performance, etc.

Delivery of the discovery document

When we have completed the previous steps, we compile a discovery document for delivery.

This discovery document is the concrete answer to questions like:

  • “How do our requests align with our budget and timeline?”
  • “What will the individual components cost, and can I prioritize based on costs/effort?”
  • “What should be our MVP (Minimum Viable Product)?”
  • “Where does the MVP fit into our long-term roadmap?”
  • “How long will it take to launch our MVP?”

This discovery document represents a significant investment of time and energy and is the result of our collaborative efforts.

Completing the discovery phase and producing the discovery document brings a cohesion and clarity to the project that cannot exist otherwise, and provides a value far beyond the associated costs.

What…so what’s the point, again?

While our ultimate and obvious goal is to continue into the development phase with you, we also recognize that the discovery process may provide a broader insight into our working relationship. Zao is a small, focused team, and we recognize that not every project, timeline, or budget is a good fit for us. If, by the end of the process, it is determined that Zao is not the perfect fit for your project, the value you gain through discovery, and the resulting document is not wasted, and you now have much better clarity moving forward.

We’ve talked about the value of the discovery phase, but what if you don’t have the time, or budget for this important step? If we opt for skipping the discovery phase, we’re likely to run into this unfortunate truth: The short term gains are not worth the long-term pain.

Lacking the clarity of vision over the long-term work of the project, dealing with the surprises and scope creep, and pivoting on features mid-project — these are all very real risks of skipping this phase, which is why we consider it the first step in working together, and a high priority.


Have questions about the discovery phase? Or have any tales of horror of working without one? Let’s hear ’em!

working remotely, why should i have a remote team, why remote teams work, benefits of remote teams, why working on a remote team is better for the company, why remote work is good for companies, is remote work good for companies,

Small Teams Thrive by Working Remotely

One of nicest perks about being in the tech industry is the ability for employees/contractors to work remotely.

Obviously, if you own a brick and mortar store, you cannot have your employees work remotely because someone needs to stock the inventory, someone needs to manage the till, and someone needs to ensure the employees are getting their breaks.

However, when your product is virtual, the necessity to have all employees come to a physical location to perform their duties is nonessential. As a remote developer, you can literally work anywhere in the world…so long as you have access to the internet every now and then.

The flexibility of remote work improves quality of life.

Check out this post’s featured image. That’s my foot in my kid’s pool, taken while I was cooling off outside during a ninety degree day. I was able to write some CSS and get work done–all while I got to enjoy my kid’s laughter in the background as she played in the sprinkler. Having a more pleasant work environment is a huge morale boost. I remember thinking to myself, “I can’t believe I get paid to have it this good.”

While every organization wants to have the right employees, the impact of having the right (and conversely, wrong employees) on a small team is magnified.

Allowing employees to work remotely can position employers to expand their selection pool of candidates. This allows more flexibility when searching for a good fit for their company. At Zao, our team is spread out around the world. We have employees in Oregon, North Carolina, and Romania. We’ve tapped into unique skill sets and experience because we aren’t limited by physical proximity to our headquarters.

Remote work is also great for everyone’s bottom line.

Working remotely can also be a great bargaining chip. Lots of small companies have a smaller budget to work with. Many employees are open to taking a smaller salary in exchange for the perks that working remotely brings.

For example, employees can locate to areas where the cost of living is lower or be near an ailing family member. Employees can choose to buy groceries for lunch instead of eating out. Also, let’s not forget skipping the costly and often time expensive daily commute to the office. Working remotely prevents small companies from missing out on great talent because of budget constraints.

If your company values family and wellness, remote work is the way to go.

Most companies have core values that they do business by. It is very easy to have grandiose ideas of the dream organization, but much harder to make it a reality. Family is one of our core values at Zao. All of us have families. Working remotely adds a level of flexibility to our schedule to be present for our families. Even in crunch times, we can tuck our kids in and say goodnight before burning the midnight oil. Additionally, we can prioritize kid plays, sports games, swim lessons, anniversaries, etc., and show up for those moments we don’t want to miss.

To have our actions back up our core values at Zao is worth its weight in gold. Living with integrity, both personally and professionally, has benefits beyond what can easily be quantified. The byproducts include higher team morale, increased productivity, higher job satisfaction, and ownership of results. This equates to a more thriving and powerful team.

Do you work remotely? What are some of the perks you appreciate?

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

Zao Client Spotlight: An Interview with Reggie Black of Cancer Tutor

One of the things Zao prides itself on is taking on complex projects that require in-depth strategy and not only 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 you found it.

This means not only cleaning up what messes we may have found when we arrived, but leaving our clients with sustainable technology that benefits them in the future–both short and long-term.

We recently worked with Cancer Tutor, a website dedicated to providing valuable information on natural cancer treatment and prevention. Cancer Tutor is affiliated with and supported by prominent cancer researchers and the Independent Cancer Research Foundation, Inc., and aims to empower cancer patients to have unfettered access to information about alternative methodologies for their illness–and share their successes and failures.

You can read more about the work we did with them over at our portfolio (and check back–we may have another post here in the future delving into the technical dirty details of the work as well!).

Reggie Black, the head honcho over at Cancer Tutor, was generous enough to chat with us about why he chose Zao and how he felt about the project.

Zao WordPress web development, Zao WordPress plugin, WordPress developers, Justin Sainton, Justin Sternberg, Zao on WordPress, building WordPress tools, Cancer Tutor, Cancer Tutor website, websites on WordPress, find a WordPress developer, find a WordPress plugin developer, find a WordPress ecommerce developer, ecommerce solutions, ecommerce developers

If you’ve been wondering what it’s like to work with Zao or why our clients go with us, here’s some insight:

Why did Cancer Tutor seek out a developer?

We were building something new. Something that had not really been done before, there was no template or plugin to compare it to. So we needed someone who could dream as big as we can.

We get a lot of crazy ideas for things we would like to build. It takes a very special combination of developer and people-person to really understand what and how we want to do certain things.

Zao seemed to get “it” instantly. Even from the first wireframe we sent over, they understood our vision and direction. They were the first developers we had spoken to that took a genuine interest in understanding our project from day one.

Was there an emotional component to the problem you were looking to solve? What emotions did you or other stakeholders feel because of what was going on?

It was a little bit frustrating to hear some people tell us it can’t be done or shouldn’t be done through WordPress, and the fact that we had not seen others do it before to prove that it was possible made it difficult for us to express the vision that was inside of our head. It was very satisfying to be told that we could do it, and [that] Zao could tackle it. They happily accepted the challenge and took on every new problem that we threw their way.

What led you to choose Zao over any other agency?

Response time. Clear Communication. Hustle.

I sent them a wireframe and specs for the project late on a Friday night. I got a response on Saturday morning! Zao wanted to do video call to see each other face to face (which I love). I could visually see the wheels turning in their head and I could tell they were genuinely excited by the project.

During our first call it became evident very quickly that they had already done a very thorough analysis of our wireframes and asked us very hard questions about the project (which I also loved).

What was the solution to these hurdles?

Magic wizardry. I have no idea how Zao pulled off some of the stuff we asked them to do. It always got done, though.

What was the biggest takeaway or success of this project?

We launched on time! That was a huge success. There were so many moving parts between our internal team, designers, other developers, and Zao. There were many times during the project that we were flying by the seat of our pants. Zao always got their part done plus a little extra…without ever complaining. They displayed an incredible attitude throughout the entire project.

Zao WordPress web development, Zao WordPress plugin, WordPress developers, Justin Sainton, Justin Sternberg, Zao on WordPress, building WordPress tools, Cancer Tutor, Cancer Tutor website, websites on WordPress, find a WordPress developer, find a WordPress plugin developer, find a WordPress ecommerce developer, ecommerce solutions, ecommerce developers

How do you feel about your site now compared to when you were first searching for a developer?

The answer is now we feel like we have someone who can keep up with our craziness.

Me: Hey, I thought of this thing…let me tell you about it.

Zao: Yeah, we will have that done next week.

You guys get it instantly. One phone call and we’re on the same page. Even with the additional stuff we added, you were able to knock it out of the park

Are there any other comments or feedback you have for us about your project?

You guys have been, hands down, the most fun team we have ever worked with. “Making work fun again” should be your campaign. There were some incredibly funny moments in Slack and I really appreciated how you kept everything light-hearted.

Had we not gone with Zao, I know we could not have gotten this done on time. [You] were flexible with our crazy schedule and always got [the] work done.


Don’t be jelly! Getting your jam on with Zao is easy peasy; all you have to do is get in touch.