ServerPress Is Shutting Down

ServerPress, makers of DesktopServer, a WordPress local development tool, announced it is shutting down after 12 years in business. The company emailed its customers and posted a farewell message on its website after disabling new purchases and is in the process of canceling renewals for existing subscriptions.

ServerPress was founded by Steve Carnam in 2010. His leadership helped the company remain independent of large hosting companies that have scooped up WordPress development tools of all kinds. Carnam described how the market has changed, forcing ServerPress’ partners to make the difficult decision to close:

Earlier this year, one of the team members questioned whether or not DesktopServer v5.0 would have a viable market share. We had been so focused on building it out that throughout the development, we lost sight of constantly checking the temperature in the room.  Once we started discussing this we came to the conclusion that DS5’s potential market share has changed significantly over the last 10 years. The WordPress development tool landscape has grown and diversified greatly. This has diluted DesktopServer’s overall market share. The time, effort, and costs to bring in new users to DesktopServer’s workflow would be too much overhead for ServerPress to be sustainable. While many larger, well-funded companies would be able to absorb such costs involved, a company of our position cannot.

ServerPress did not communicate any plans for the future of its software products beyond the fact that they will no longer be supported. Longtime users and fans were disappointed to learn that the company is shutting down and some asked if they might consider making DesktopServer available to the public.

I asked Carnam if ServerPress is in talks with another company to sell or if they are considering making DesktopServer’s code available. He could not offer any further details but said he may have more news in the near future.

“With regards to selling, or open sourcing the code (which would be great); I’m unfortunately not at liberty to say at this time,” Carnam said.

The small ServerPress team, which includes Stephen J Carnam, Marc Benzakein, and Gregg Franklin, have not yet announced what their next ventures will be, but they plan to support current customers for the duration of their subscriptions.

“If you are a Premium Subscriber, we will continue to support you until your subscription is up,” Carnam said. “For some, that will mean support on issues with DesktopServer v3.9.x. For others, it may mean assistance with migrating to another local development tool. We will continue to help those of you with Premium Memberships with site deployments until your subscription expires.”

WordCamp US 2022 Publishes Speaker Schedule, Livestream Will Be Available

WordCamp US (WCUS) kicks off one month from today in San Diego, CA, and organizers have published the full schedule for all sessions. The three-day event will feature three tracks with a combination of lightning talks (15 min), standard talks (45 min), and workshops (1 hr+).

This year’s lineup is heavy on educating professionals on building with blocks. Attendees and livestream viewers can expect to learn how to customize core blocks for clients and create a custom block in 15 minutes. Speakers will also offer a glimpse into the future of designing themes for the block editor, the foundational concepts of the new era of block themes, and demonstrate how to build a block theme.

Block themes and plugins aren’t the only things on the menu for WCUS attendees. The event will include a diverse range of topics, including WordPress and the creator economy, accessibility, multichannel e-commerce, performance, community, and creating editorial experiences.

The sessions begin on September 9, and continue through the next day, capped off with a chat with Matt Mullenweg, who will also answer live questions from the audience. Contributor Day is scheduled for Sunday, September 11.

Unfortunately, for many hoping to attend, all 650 of the available tickets sold out within the first day. Everyone else across the world of WordPress will need to tune into the livestream, which organizers expect will be fairly popular this year due to the limited in-person tickets. The sessions in Sun track and Palm track will be live streamed, but the Surf track workshops will not. The livestream page is already published and no special tickets will be required.

Don’t Shove Your API Data Into Amplitude

It’s a prudent business practice to only focus on your core features when getting to a Minimum Viable Product (MVP). Microservices architectures allow you to outsource non-differentiated pieces of your solution to third-party providers; Use someone else for user management, billing, and account management.

At first blush, it might seem attractive to develop your own API analytics solution, perhaps by building on top of a web analytics tool like Amplitude, MixPanel, or Segment. But once you peel back the onion you’ll soon realize that you’ll be unnecessarily crippling your solution through upload limits, de minimis dimensional support, and flawed visualization.

Class constants that work with inheritance

For some reason, PHP class constants don't play nicely with inheritance.

For example, suppose you have the following code:

class Foo {
    const VAR = 'foo';

    public function __construct() {
        echo self::VAR;
    }
}

class Bar extends Foo {
    const VAR = 'bar';
}

// This will actually print out 'foo' even though we would expect it to print out 'bar'
$bar = new Bar();

You can see here that there is a class Foo that has a constant variable named VAR, and the constructor function for that class (that executes when a new object of that type is created), says to print out the value of that variable.

We then have a second class Bar that extends class Foo. With this type of inheritance, child class Bar is meant to inherit all properties and methods from its parent class Foo. The problem, unfortunately, is that this doesn't extend to constants. The solution to this problem is to use ReflectionObjects. The code below demonstrates the proper way to retrieve a class constant that obeys inheritance.

Apache Kafka in Crypto and Finserv for Cybersecurity and Fraud Detection

The insane growth of the crypto and fintech market brings many unknown risks and successful cyberattacks to steal money and crypto coins. This post explores how data streaming with the Apache Kafka ecosystem enables real-time situational awareness and threat intelligence to detect and prevent hacks, money loss, and data breaches. Enterprises stay compliant with the law and keep customers happy in any innovative Fintech or Crypto application.

The Insane Growth of Crypto and Fintech Markets

The crypto and fintech markets are growing like crazy. Not every new crypto coin or blockchain is successful. Only a few fintech like Robinhood in the US or Trade Republic in Europe are successful. In the last months, the crypto market has been a bear market (writing this in April 2022).

Delivering the Future of Uber-Like Apps With AI and ML

Uber is, so far, the most popular ride-sharing application, with over 93 million users globally. The application was a revolutionary solution back in 2009; for over 13 years, it has kept increasing revenue. In 2015 Uber was one of the first to adopt machine learning for processing big data. Within the next 3 years, the application reached AI at scale, becoming one of the handfuls of companies that have successfully integrated ML strategy within a short period.

Let’s dig deeper to understand Uber’s value proposition and the success formula.

Snake-Based REST API (Python, Mamba, Hydra, and Fast API)

Today, I would like to try something new and start exploring the world of Python. In this article, I will present a step-by-step tutorial on how to implement a simple REST API using Python, Fast API, Hydra, and Mamba. Moreover, I will provide you with a short description on how to pack all these snakes into a single Docker image and make them work together. The whole code presented below is available on my GitHub.

Let’s start with a short paragraph on why I decided to choose this topic. 

How to Write RFCs for Open Source Projects

About RFCs

The importance of RFCs has been emphasized by many people. As @tison said in How to Participate in the Apache project community:

A description is certainly needed for any non-trivial change to explain the motivation. For major changes, design documentation becomes even more necessary since no one has a permanent memory, and people always forget why they did something in the first place. The precipitation of design documentation plays a vital role in freeing the community from the uncertain evolution of human activities.

The 2-Minute Test for Kubernetes Pod Security

In this post, I will show you how to audit your clusters for compliance with the latest Kubernetes Pod Security Standards without installing anything in the cluster.

Pods are the basic unit of execution in Kubernetes, and pod security is necessary for all clusters. Without pod security checks enabled, any user with permissions to run a pod can elevate privileges. Attackers can exploit the lack of pod security to execute a container escape. All clusters, including Dev/Test and staging clusters, which are common entry points for attackers, should implement pod security.

Sprint Goals: How to Write, Manage, and Achieve

Sprint Goals as the Key to Efficient Decision-Making

A business is made of decisions, and what drives great decision-making is indeed the gateway to a flourishing venture. Though companies have overlooked the value brought in by the sprint goals, this blog here is all about giving a brief account of Sprint Goals and how we achieve success using them.

Sprint Goal holds the capacity to either sustain or hinder your Sprint. Being one of the crucial components, Sprint Goal helps organizations to more successfully pivot, prioritize, and line up their tasks. 

Core Web Vitals Tools To Boost Your Web Performance Scores

The success of your website depends on the impression it leaves on its users. By optimizing your Core Web Vitals scores, you can gauge and improve user experience. Essentially, a web vital is a quality standard for UX and web performance set by Google. Each web vital represents a discrete aspect of a user’s experience. It can be measured based on real data from users visiting your sites (field metric) or in a lab environment (lab metric).

In fact, several user-centric metrics are used to quantify web vitals. They keep evoling, too: as there were conversations around slowly adding accessibility and responsiveness as web vitals as well. In fact, Core Web Vitals are just a part of this large set of vitals.

It’s worth mentioning that good Core Web Vitals scores don’t necessarily mean that your website scores in high 90s on Lighthouse. You might have a pretty suboptimal Lighthouse score while having green Core Web Vitals scores. Ultimately, for now it seems that it’s only the latter that contribute to SEO ranking — both on mobile and on desktop.

While most of the tools covered below only rely on field metrics, others use a mix of both field and lab metrics. 1

PageSpeed Compare

PageSpeed Compare is a page speed evaluation and benchmarking tool. It measures the web performance of a single page using Google PageSpeed Insights. It can also compare the performance of multiple pages of your site or those of your competitors’ websites. It evaluates lab metrics, field metrics, page resources, DOM size, CPU time, and potential savings for a website. PageSpeed Compare measures vitals like FCP, LCP, FID, CLS, and others using land and field data.

The report it generates lists the resources loaded by a page, the overall size for each resource type category, and the number of requests made for each type. Additionally, it examines the number of third-party requests and resources a page makes. It also lists cached resources and identifies unused Javascript. PageSpeed Compare checks the DOM of the page and breaks down its size, complexity, and children. It also identifies unused images and layout shifts in a graph.

When it comes to CPU time, the tool breaks down CPU time spent for various tasks, Javascript execution time, and CPU blocking. Lastly, it recommends optimizations you can make to improve your page. It graphs server, network, CSS, Javascript, critical content, and image optimizations to show the potential savings you could gain by incorporating fixes into your site. It gives resource-specific suggestions you could make to optimize the performance of your page. For example, it could recommend that you remove unused CSS and show you the savings this would give in a graph.

PageSpeed Compare provides web performance reports in a dashboard-alike overview with a set of graphs. You can compare up to 12 pages at once and presents the report in a simple and readable way since it uses PageSpeed Insights to generate reports. Network and CPU are throttled for lab data tests for more realistic conditions.

Bulk Core Web Vitals Check

Experte's Bulk Core Web Vitals Check is a free tool that crawls up to 500 pages of the entire domain and provides an overview of the Core Web Vitals scores for them. Once the tool has crawled all the pages, it starts performing a Core Web Vitals check for each page and returns the results in a table. Running the test takes a while, as each web page test is done one at a time. So it’s a good idea to let it run for 15-30 mins to get your results.

What’s the benefit then? As a result, you get a full overview of the pages that perform best, and pages that perform worst — and can compare the values over time. Under the hood, the tool uses Pagespeed Insights to measure Core Web Vitals.

You can export the results as a CSV file for Excel, Google Sheets or Apple Pages. The table format in which the results are returned makes it easy to compare web vitals across different pages. The tests can be run for both mobile and desktop.

Alternatively, you can also check David Gossage's article on How to review Core Web Vitals scores in bulk, in which he shares the scripts and how to get an API key to run the script manually without any external tools or services.

Treo

If you’re looking for a slightly more advanced option for bulk Core Web Vitals check, this tool will cover your needs well. Treo Site Speed also performs site speed audits using data from the Chrome UX Report, Lighthouse and PageSpeed Insights.

The audits can be performed across various devices and network conditions. Additionally though, with Treo, you can track the performance of all your pages across your sitemap, and even set up alerts for performance regressions. Additionally, you can receive monthly updates on your website’s performance.

With Treo Site Speed, you can also benchmark a website against competitors. The reports Treo generates are comprehensive, broken down by devices and geography. They are granular and available at domain and page levels. You can export the reports or access their data using an API. They are also shareable.

WebPageTest Core Web Vitals Test

WebPageTest is, of course, a performance testing suite on its own. Yet one of the useful features it provides is a detailed breakdown of Core Web Vitals metrics and pointers to problematic areas and how to fix them.

There are also plenty of Core Web Vitals-related details in the actual performance audit, along with suggestions for improvements which you can turn on without changing a line of code. For some, you will need a pro account though.

Cumulative Layout Shift Debuggers

Basically, the CLS Debugger helps you visualize CLS. It uses the Layout Instability API in Chromium to load pages and calculate their CLS. The CLS is calculated for both mobile and desktop devices and takes a few minutes to complete. The network and CPU are throttled during the test, and the pages are requested from the US.

The CLS debugger generates a GIF image with animations showing how the viewport elements shift. The generated GIF is important in practically visualizing layout shifts. The elements that contribute most to CLS are marked with squares to see their size and layout shift visually. They are also listed in a table together with their CLS scores.


CLS debugger in action: highlighting the shifts frame by frame.

Although the CLS is calculated as a lab metric initially, the CLS debugger receives CLS measurements from the Chrome UX Report as well. The CLS, then, is a rolling average of the past 28 days. The CLS debugger allows you to ignore cookie interstitials — plus, you can generate reports for specific countries, too.

Alternatively, you can also use the Layout Shift GIF Generator. The tool is available on its webpage or as a command line tool. With the CLI tool, you can specify additional options, such as the viewport width and height, cookies to supply to the page, the GIF output options, and the CLS calculation method.

Polypane Web Vitals

If you want to keep your Core Web Vitals scores nearby during development, Polypane Web Vitals is a fantastic feature worth looking into. Polypane is a standalone browser for web development, that includes tools for accessibility, responsive design and, most recently, performance and Core Web Vitals, too.

You can automatically gather Web Vitals scores for each page, and these are then shown at the bottom of your page. The tool also provides LCP visualization, and shows layout shifts as well.

Noteable Mentions
  • Calibre’s Core Web Vitals Checker allows you to check Core Web Vitals for your page with one click. It uses data from the Chrome UX Report and measures LCP, CLS, FID, TTFB, INP and FCP.

Committing CSS Crimes

The time for CSS-Tricks is over. Now is the time for CSS Crimes!

In this current landscape of content service providers, users are often limited to expressing themselves in text, links, and images. Sanitization rules tend to strip out HTML, JavaScript, and various attributes.

Social media service Cohost allows users to have greater freedom with markup and inline styles than we may be typically used to. Some users have taken advantage of this freedom to commit CSS Crimes! It has resulted in creative recreations of familiar interfaces and interactive games by using properties in unconventional ways.

Blackle Mori created a contraption where pulling a handle slowly turns a series of gears, pulleys, and chains. Eventually an aperture opens to reveal the site’s mascot (“eggbug”) and the proclamation “Good Job!”. I have stared at this in Developer Tools and it is an amazing combination of grid, resize, transform, and calc(). I ended up adding a border to all <div>s to try and get a better understanding of how each individual element moved.

There have been situations in the past where I have been restricted from using the full toolkit of HTML, JavaScript, and CSS. There have been many instances of using decorative CSS shapes to get around images. I have used :hover as a workaround for mouseenter and mouseleave. I have used input:checked as a sibling selector for toggling.

While CSS Crimes are probably not something you would want to employ on a regular basis, we should embrace experiments within constraints that can foster creative solutions.

To Shared LinkPermalink on CSS-Tricks


Committing CSS Crimes originally published on CSS-Tricks, which is part of the DigitalOcean family. You should get the newsletter.

How to Put WordPress in a Read Only Mode for Migrations and Maintenance

Do you want your WordPress site to be in a read only mode?

By freezing your site’s content, you can make sure that no one changes anything on your website, even if they normally have edit access. This can help you avoid errors, conflicts, and confusion when you’re making changes to your website.

In this article, we will show you how you can put your WordPress site in a read only mode for site migrations and maintenance.

how to put your wordpress website in read-only mode

Why Put Your WordPress Site in a Read Only State for Site Migrations and Maintenance

You can tweak a lot of settings on your WordPress website without stopping visitors from accessing the site. However, when you’re making a big change to your website, it’s a good idea to put your site into a read only state. 

For example, if you’re moving WordPress to a new host or server, upgrading to a new version of WordPress, or installing a new theme, then it can affect the user experience and stop your site from working normally.

Setting up read only mode can help you avoid losing any data or content that’s added to your site while you’re making the change. You also prevent frustration from a poor user experience when features don’t work right.

For example, if someone is writing a new post in the WordPress dashboard while you’re migrating to a new server, then all of their hard work may be lost. Or perhaps a user can’t add products to their cart or checkout, so they leave your site.

That said, let’s take a look at the best way to put your WordPress site in read-only mode to prevent those issues.

How to Put Your WordPress Site in a Read Only State for Site Migrations and Maintenance

There are a few dedicated content freeze or read-only mode plugins available, but they are all currently outdated and not actively maintained by their developers.

That’s why we recommend using the Lock User Account plugin instead.

This is perfect for membership sites, online stores, or any other type of site that allows user registration.

This plugin lets you temporarily lock any user out of their WordPress account. Anyone who is locked out of their account won’t be able to edit the site’s content or add any new content, although visitors will still be able to see the website.

If a user tries to log into a locked account, then they’ll see a message simply stating ‘Your account has been locked.’ You can customize this message to give your users more information.

A locked WordPress user account

Now, using this plugin doesn’t actually freeze your site or prevent database changes. That’s why we also recommend temporarily disabling your comments and any contact forms on your site as well. We’ll show you how to do that below.

First, you’ll need to install and activate the Lock User Account plugin. If you need help, then please see our guide on how to install a WordPress plugin.

Before starting the content freeze, you can change the message that users will see if they try to log into a locked account. For example, you might want to explain that you’re changing your domain name or doing essential maintenance.

To change the default ‘Your account has been locked’ error message, simply head over to Settings » General.

The WordPress general settings page

Towards the bottom of the screen, you’ll see a new ‘Lock User Account’ section.

You can now simply type a new message into the ‘Locked User Message’ field. Once you’re happy with the message, just click on the ‘Save Changes’ button.

Creating a custom WordPress login message

After that, you’re ready to put your site into read-only mode.

To go ahead and start locking users out of their account, head over to Users » All Users.

A list of WordPress user accounts

On this screen, you’ll see all the people who have an account on the site.

The ‘Locked’ column shows whether each user currently has access to their account (unlocked) or not (locked).

A locked WordPress user account

To go ahead and temporarily lock a user out of their account, just click to check the box next to their profile picture.

If you want to lock multiple people out of their accounts, then click to select multiple boxes.

Note: It’s very important to make sure you leave your own user account unlocked. If you accidentally get locked out, see our guide on how to deactivate all plugins without wp-admin access so you can deactivate the Lock User Account plugin from your WordPress hosting panel.

Adding a content freeze to multiple WordPress user accounts

After selecting one or more usernames, click on the ‘Bulk actions’ dropdown and then select ‘Lock.’

When you’re ready to go ahead and lock these people out of their accounts, click on the ‘Apply’ button.

Putting a WordPress site into a read only state

Now, the site is essentially in read only mode for your users, and if anyone with a locked account who tries to log in will get an error message.

Once you’ve finished your work, you can unlock the user accounts. Simply go back to Users » All Users and repeat the process above. Only this time, be sure to select ‘Unlock’ from the ‘Bulk Actions’ dropdown.

After that, you can click the ‘Apply’ button to reactivate these accounts.

Unfreezing WordPress user accounts

How to Temporarily Disable Comments and Form Entries

Before you start your site migration or other big changes, you’ll also want to temporarily disable comments and form entries on your site. If someone submits a comment or form in the middle of your changes, that data would be lost.

To temporarily disable comments quickly and easily on your whole site, we recommend using WPCode.

Simply install and activate the free WPCode snippets plugin and then navigate to Code Snippets » Add Snippet.

From here, you can click on the Comments category in the left menu and then click on ‘Use snippet’ under ‘Completely Disable Comments’.

WPCode snippet to completely disable comments on your WordPress site

On the next screen, all you need to do is set the toggle from Inactive to Active.

Then, click the Update button and your snippet will be live.

WPCode activate snippet

If you’d prefer to disable comments manually without a plugin, you can see our step by step guide on how to completely disable comments in WordPress.

We also recommend temporarily disabling any contact forms or other forms on your website. You can simply remove the form and replace it with your business email address temporarily so that you don’t miss out on any important messages.

At this point, you are ready to migrate your site or do essential maintenance work without worrying about conflicts and errors.

BONUS: How to Create Beautiful Maintenance Pages in WordPress

In addition to locking user accounts and securing forms and comments, you can also put your site into maintenance mode, so no one can access the primary content.

A well-designed maintenance page can explain exactly why your site is is in a read only state, and when visitors can expect it to come back online.

This is where SeedProd comes in. It is the best drag-and-drop page builder for WordPress, and it allows you to create a completely custom maintenance page.

You can use the free version of SeedProd to create a beautiful maintenance mode page.

The SeedProd Pro homepage

For more details, you can see our guide on how to put your WordPress site in maintenance mode.

We hope this article helped you learn how to put your WordPress site in read only mode for site migrations and maintenance. You can also go through our guide on the best live chat software for small businesses and how to allow user registration on your WordPress site.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Put WordPress in a Read Only Mode for Migrations and Maintenance first appeared on WPBeginner.

Smashing Podcast Episode 50 With Marko Dugonjic: Can You Change A UX Dinosaur?

This article is a sponsored by Storyblok

In this episode, we ask how you can affect change to UX design in large organizations stuck in their ways. Vitaly talks to Marko Dugonjić to find out.

Show Notes

Weekly Update

Transcript

Vitaly Friedman: For him, everything started with a passionate love for CSS and typography in early 2000s. He used to be a front-end developer and UX designer, then moved to the role of user experience director. Working with plenty of clients, such as Deutsche Telekom, SGS, Hrvatski Telekom, Font Bureau, L, National Geographics, and so many others. He also built a tool called Typetester, which has gained quite a momentum in the 2000s and even beyond that, allowing designers and developers to test their topography in the browser.

Vitaly: Now, five years ago, he moved from Zagreb, Croatia, where he's originally from, to Sacramento, California, where he now is working as a Director of User Experience at SymSoft Solutions. So we know he's an expert in UX, but did you know that he has been an avid fan of Acapulco Beaver's Handball team from Zagreb since the age of seven and remains one up until today? My Smashing friends, please welcome Marko Dugonjic. Hello, Marko. How are you doing today?

Marko: Great... I mean smashing, I guess.

Vitaly: Excellent. That's wonderful to hear. It's interesting because we have these conversations every now and again, talking about the meaning of life and so many other things. But one thing that really excites me, and I think it deserves a bit of attention, I have this incredible story of how you actually just fell in love with the web many, many years ago, where you used to do something very, very different. And look at you now, work on enterprise applications for a pretty fancy company. Can you tell us a bit of that backstory?

Marko: Sure. It's a weird story in a way, but maybe it'll give someone an idea about how to start with completely different expectations about your career in life and end up in, as you said, in California. And so my story really began when I tried to build a website for, believe it or not, my dogs, my kennel because I used to breed dogs. And at that time, my full-time job was as a fitness trainer.

Marko: So as I was working with people who would have rehabilitation needs or any type of permanent or temporary disability, I also learned about how people who don't have the visual ability to use the web by listening to the web pages. And so one thing led to another, and I was thinking about, "I have this website for my dogs. Is this even accessible?"

Marko: And so what do you do in early 2000s? You find a web forum where real web professionals reside, and you start asking questions about how to improve the accessibility of your website. And it was really just my hobby website, and it's almost something that I've built out of my front-end or front page software, Microsoft FrontPage. I don't know if you remember that one.

Vitaly: Who doesn't, Marko? Who doesn't?

Marko: And I don't know how, but I never used tables for layout, but I did. And this is probably the first time after almost 20 years that I'm saying it, "I didn't use tables, but I did use a bunch of frames." It was a frameset that pretty much I used to create the header and the sidebar, and the footer. So I had four frames on that page.

Marko: And of course, it didn't validate and everything was really horrible from [inaudible 00:03:45] perspective. But I was hoping that the web design community would help me. And I started researching and learned about CSS positioning, and that was the first thing that I fixed. And then, I learned about Internet Explorer because at the time, I was using Mozilla. I don't know what was even before Firefox. Maybe Phoenix or something like that.

Vitaly: There was Netscape Navigator, of course.

Marko: Netscape Navigator, yeah. I knew about it, but I think I onboarded with the Mozilla type of browser. But what happened is that at some point, the web forums really weren't enough for, I guess, my obsession with making things perfect. So I started reading web standards from the W3C website, and I read the specs because I thought, "This is probably what every web professional does." And so this is how I learned about accessibility and web standards and all the stuff.

Marko: So that was 2002, 2003. And then one thing led to another, again. I was participating in these web communities, and eventually, people from what today is called Human Design Agency from Zagreb, had a call just like this one. And they said, "Hey, would you like to be paid for what you know?" And I was like, "What are you talking about? I'm a fitness trainer."

Marko: But they did convince me, and then I joined that incredible team. We just had so much fun back in the day. And stayed with them for a couple of years, then moved on to an in-house position, and everything else is pretty much standard. But I think that moment when I realized, "I know something that somebody's willing to pay for," was incredible for me. Again, at that time, it was still almost like a hobby to me. But soon enough, it became a profession.

Vitaly: Right. And then, of course, you also ended up having your own studio, which then eventually, after a couple of years, moved you to this decision of maybe it's a time to move to or try to move to the US. How did that happen?

Marko: Well, I think what has always been following me is that I didn't really have any general plan. I knew what I wanted to do day-to-day. I knew what I felt about projects and work and skills and all that stuff, but I didn't really have a general plan of moving from this company to another company and then to that company. It was really about maybe selecting good projects, and good people to work with.

Marko: And so when I had my studio, we became pretty international. And you know that we also collaborated on a couple of projects in Europe. And for me, it was really for the past couple of years in Croatia; it was really just 100% international. And so one of our clients, and through a good friend, Christina Portner, who also participated in some of the Smashing activities, I think she gave a talk and had a couple of articles for you guys.

Vitaly: That's right.

Marko: She introduced me to Savita Faruki, who owns SymSoft Solutions with her husband. And it's a nice, small, family-run business. And looking at the projects that they had and still have, it just made sense for me to move over here, and so I accepted the offer that they extended to me after that visit. Where I really didn't plan to get employed, but we were just discussing some of the collaboration and maybe working on some projects together, but it ended up being me becoming a director of the user experience here at SymSoft.

Vitaly: Right. That's an interesting story, and also chose a journey that one can take from one place to a very different place. Now you've been all around UX for now 15 or 20 years now. I don't even know. Who counts at this point anymore at this point? And of course, you've seen quite a lot of stuff happening in terms of just UX, I would say.

Vitaly: We've been fighting, as you could probably find thousands of articles stating that we need to have a seat at the table. And it seems like now, at this point in 2022, we have a pretty solid seat at a table. Do you think that we are in a place where we wanted to be 15 years ago? Is there still something missing? Where do you see us as a community and just as an industry, I guess, in terms of the state of UX today?

Marko: So I think the there's a couple of things right in there. It's an interesting and also complex topic. So I think we do have a seat at a table; however, the horizon is now different. Because as you travel, you just discover other things are behind the horizon. And so once you climb that first peak, then you reveal more peaks to climb. So I think this is where we are right now.

Marko: And a huge thing that nobody really talks about is that even IT or digital as a whole has had that problem in the past, of the seat at the table. And so we just now joined the crowd of people who might have better access to decision-making, but it's still not at the level where we can really immediately influence any decision, especially in big companies and enterprises.

Marko: Obviously, this is where I work at. Startups and younger companies are slightly different there. But enterprises or anything massive, like big insurance companies or big telecoms or financial institutions, or the government, 90% of my clients are now the government... these organizations have been around for years and hundreds of years, even.

Marko: So old ways and things that led to the success that they have right now are not necessarily something that you have to change, but very often, you can also change them by applying correct organizational change management principles. So I would say the challenge that we have nowadays is just general organizational change management. That's a hot topic.

Marko: And again, it's not just the UX people. I think it's the technologies in general or anyone who just have this new way of managing things. I would say digital marketers as well. So all of us, we have to sit at the table, but there's just this huge job of driving and steering the organization into whatever is next, whatever is the future.

Vitaly: Right. That's interesting. Maybe we should dive into this a little bit more in a little bit more detail. Just because, of course, we read and see and hear a lot of articles around UX, and many of them are very much focused on traditional, I would say, good all startups, digital products, and so on and so forth.

Vitaly: But at the same time, I find it quite difficult to even find case studies about enterprise UX. So maybe you could actually share those insights about if you do have this situation where you might have a seat at the table, but you actually need to change the organization. And organizations of that size are usually very reluctant to those changes, and people don't like to change their habits quickly.

Vitaly: So what would be then your process to make it all a reality, to establish a user-centric approach in a relatively tight and conservative and maybe even quite dated, let's say, environment?

Marko: Well yeah, sure. I wouldn't say necessarily that the organization is resistant to change or that people are not willing to change. Just, I would say the volume or the size of the organization is really your biggest enemy because you can influence only so many people in your immediate circle in the organization. And then some organizations are lucky enough to have a big enough UX team or, more broadly digital team that would also have a bunch of developers, solution architects, business analysts, and any type of role that you can think of in IT.

Marko: So it's just a matter of how many people you can touch within the organization with the new principles, how many people are actually in a UX type of project, user-centered service, something like that. So the change doesn't happen in the way of infecting people. You cannot just spread the UX type of virus to people, and they'll all get it. It requires a lot of effort. It requires a custom-tailored approach to communication.

Marko: Someone who has a desk job and is in departments that are understaffed, for that matter, they don't necessarily have enough bandwidth or capacity. And it has nothing to do with the personal preference of the individual person, but just the organizational structure is such that you don't have access maybe, to everyone that you would like to. And of course, it would require a lot of, a lot of time out of the regular day-to-day desk job for people to even get educated.

Marko: So I think the biggest enemy is the size of the organization. So you have to strategically pick and choose your champions within the organization. People who, whoever shows up on your open office or office hours, whatever you call it, meeting, that's a good champion. Even if they have low maturity in UX, these are people who have the intent to change something. And so strategically picking and choosing people, and then helping them become almost like a mentor within the organization to the people around them. And maybe you'll have that department embracing more of an interactive approach to understanding end customers.

Marko: I think this is the way to go. But again, I don't think people should be discouraged with that because even 1% improvement in the business process or in conversions or in optimization is... Vitaly, you and I work with web performance and conversions and E-commerce and all the stuff, and 1% can be a huge improvement.

Vitaly: Of course. I'm wondering, though, just what your way of dealing with a situation is when you have people in front of you, maybe higher up the ladder in senior management, who just have a very different view on things. Who very strongly look, of course, at their data and their KPIs, at their business metrics, and try to move them.

Vitaly: And how would you then, in a case where you, again, have to work with a company that might not have a user-centric approach at all and maybe don't think about the customer experience as much as they think about the financial benefit by the end of the year? How would you then argue in those kinds of environments about the role of UX or the importance of UX, or the importance of customer experience?

Marko: Well, I think the best way to sell something is to show them with a live example, with a practical example. And you also know that whenever we would come to an organization and say, "Hey, let's see what's the problem there." And you and I worked with a major German retailer couple of years back, and they were saying, "Hey, mobile is not performing really well. Desktop is much better." And then we realized that the average visit to a mobile E-commerce solution that they had was about 50 years or something like that.

Marko: And so once you start showing off these numbers and say, "This website is now faster," or, "This software will shorten the time from idea to conversion," just, I think performance is such an easy-to-use tool to convince people to invest into it, that it's just unbelievable... Because you can measure the before and offer, and this is something that my team at SymSoft always does. We always do the baseline measurement, whether that's the conversion rates, satisfaction, whatever, you name it, seconds to load.

Marko: And then we test and retest and retest and retest, and then you have hard facts that you can actually tie back to dollar value. And this is how you convince people that this is a good investment. And again, just starting small; almost like when you work with a new chemical that's dangerous, on your car or whatever... they say, "Hey, try somewhere where it won't mess anything up, like in a corner that nobody sees." And so we can also pick a pilot project, a really small case study, prove that it works, and then scale it up to something larger.

Vitaly: Would you say that it's important to have a buy-in at this point? Or would you say, "Just go ahead, experiment. Build a little prototype, maybe even a little bit in your spare time," just to convince that this is working? Or do you think that commitment from management and green light and approval is critical here?

Marko: So I would say that, and again, this is my experience. I don't necessarily think this is something that happens in every organization... But for me, whatever worked, whenever I was proactive and more on the side of, "Hey, let me do something in my spare time," or, "Let me finish the main task earlier so that I can actually work on the fun stuff."

Marko: Also, signaling to the management that you are proactive, that you are self-driven, that you are self-motivated, that you're not waiting for someone to approve, that you're not waiting to be served or approved or given the space. So I think management definitely likes people who are just thinking that way.

Marko: And so you basically have two benefits. You don't have to ask anyone for permission; you can figure out what is the scope and what is space available for you and just decide to do it. And then, if it doesn't work, you are not even embarrassed. Nobody needs to know. But if it works out, if it's a nice prototype, if it's a nice concept, you can definitely present it to the upper management.

Marko: And then again, you get double credit. You create something fun, but you also show that you care and that you are proactive and self-driven, and all these qualities that everybody ever always writes on the job posts, I guess.

Vitaly: Right. Well, you did mention scope, and of course, it's a wonderful keyword for me because, of course, I can almost hear the voices in the back asking about how to deal with scope creep. I mean, you are working with very different organizations and, well, of really big size. And eventually, I'm sure there will be situations where late changes come in, poor specifications are in there, communication issues, delays, and all of that.

Vitaly: So what would be your way to prevent things like this from happening, where you're missing deadlines because of the scope creep or poor estimates? What's your process in there to make sure that we don't get in trouble for delays and maybe underestimating the effort needed?

Marko: That's really a great topic. I think there are two things in there. So definitely, if we underestimate, it's completely on us, and there's no... That's very clear. It's on us. We should have had our due diligence before the discovery stage of the project when we were estimating. But these things happen, I guess, in the beginning for everyone, until you have enough experience to move from a one-page contract into a 50-page contract.

Marko: And my friend, Eva Lucas from NetGAN, from Croatia, he said once to me, "Hey, we started with one page for a contract. Now we have 70 pages," or something like that. So as you are more experienced, you just put more things in the contract and you, I guess, put more things into researching and estimating, and you probably track your hours, and you know how much time for each feature is required. So as you grow more mature in the field, there's less surprising when it comes to estimates.

Marko: Now, the second topic, which is the scope creep, usually in enterprise organizations, they already have this type of... they mitigate that with, again, other contractual clauses. Maybe something that you can communicate early on is the unanticipated effort budget. So that might be 10 or 20% of the budgets that's allocated to the project, that we don't have to spend, but this is our contingency plan.

Marko: And then another thing that's very, very useful, and this is what my director of project management always enforces, is regular meetings. Every week, we have at least weekly meetings. If not, daily stand-ups with the project management on the client side. And we have a really detailed status report that we carry over week after week after week. And we update it, and share it with everyone.

Marko: And we are not really afraid to raise any old risks. So whenever we see that there's a delay in reviewing and providing feedback, we will put it out in the status report, change the green light to yellow light, and just say to everyone, "Hey, we think that this is something that can get out of control."

Vitaly: Yeah. So that's a very interesting point for me as well because I was working with a company where this turned out to be quite a helper. So really having a more clear overview, I guess, of what our expectations are, what the process is going to be, when we expect some feedback and what kind of feedback we expect as well. And one thing that was really critical and useful at this point was to actually explain to clients that late changes are expensive.

Vitaly: Late changes are difficult to implement, and they are expensive because if you're coming from a very different industry and you're expecting a product to be delivered, you might not know just how expensive, how difficult it is to actually make those changes later on because you don't have this technical knowledge necessary. So explaining this early on, having this clear communication channel is indeed, I think, quite useful in many ways actually.

Vitaly: From my end, I think, and one thing I actually definitely wanted to cover today is, because this is something that comes up quite a bit and most recently is... you've been, again, in this industry for quite some time and you had your own head where you had your own agency, and now you are working for a company. What do you think, especially for people who might have just a few years of experience in UX... looking back, what do you think would be the right way to just guarantee personal growth in the company? Negotiate salary, get more ownership, all those things.

Vitaly: How would you say, what would you recommend maybe to people listening to this today, if they want to maybe improve their salary, maybe grow over time, maybe take more leadership position? What skills would be required, and what would be the right strategy to get where you want to be?

Marko: That's a great question. And so maybe from a manager position now, I can talk about people that I had in my teams, and what qualifies a successful UX designer or professional in general is, it's always, I guess people who are able to manage-up are more successful. Managing-up meaning that understanding that your supervisor or whoever you report to also has their life and their problems and their different, different tasks. And just understanding your overall environment, it's leading peer-to-peer.

Marko: So the understanding is that if you're in UX, there's another person at the same level in your organization in frontend or backend or marketing or project management. So just being aware of who's above, below, on the side from you and just understanding that these are also people. And then, what can you do to really move everyone, together, forward? And so this is, I guess, the attitude, being proactive, something that we talked about a few minutes ago.

Marko: Just not asking for permission because it's not true that you need weeks and weeks to create a concept. Maybe you can just catch something and say, "Hey..." You wake up one morning, and you don't necessarily have to open up your company laptop or anything like that. But just put it on a Post-it, and when it's office time, you just can say, "Hey, I have this idea. Let's do this."

Marko: And that really cost you nothing, I mean, you had that idea anyway. But you're building up your muscle of generating and communicating, and suggesting. And of course, it goes without saying, if you hear crickets every time you have an idea in your company, you should just change the company. But if you have a good environment and receipting environment where you can voice your ideas, that's a great place to be.

Marko: And so what happened is that, once you build up your credit and you look like someone who cares, not necessarily about the company... and I don't want to fool myself thinking that people want to stay here forever, but caring about the quality of work, caring about your teammates, caring about leaving some kind of impact after you leave. And there's another topic that we can also talk about. What do you do when you decide to leave the company? So are you that type of person who thinks about these moments?

Marko: And so once you have that, then salary negotiations are just straightforward because you opened up the communications channels, and then you can just come and sit and say, "Hey, what about the raise?" And then we can talk about that. But if your communication is completely blocked and you're just doing whatever you're told, and you're checking out the tickets, then that conversation about the salary is just difficult because you didn't really create an environment where you have this dialogue anyway, in the first place.

Marko: So I think practicing talking to your boss, good times or bad times, and just not necessarily sharing everything that's happening in your life, but just having this more proactive, I guess, communication. When nothing's really happening, you can just drop by and say, "Hey, this is what I'm working on. It's nothing special, but here it is." And then maybe having this regular cadence.

Marko: And if you don't have one-on-ones, and by the way, which is something that you should have with your boss... because that cadence in one-on-ones really allows you the space at some point to say, "Hey, I would like to work on something else." Or "I would like to have a better impact." Or, "I would like to have a better salary." Or, "Hey, I'm actually looking for a new job. Can you support me while I'm looking for something else?" Just being fair, I guess, to the people that you're working with. So that would be my advice about negotiating salary and these types of things.

Vitaly: Yeah. I think that many people are struggling with finding themselves in companies where there is just no culture for this kind of feedback. I mean, in some good companies, you will likely have maybe 360-degree feedback or 360-view feedback, whatever it is called, where you get feedback from everyone. And then you would have a dedicated time to bring up any issues with your manager once every three months, four months, two months, six months, I don't know...

Vitaly: But this is probably an important part to have or an important asset, I guess, to have at least. I think that many people just are afraid maybe a little bit to ask these questions, to bring this up, because I think that it might create a wrong attitude around them and that they're there in the company for the money alone. But I mean, looking at inflation rates happening right now around the world, it's probably important to have that conversation later or earlier. Right?

Marko: Yeah, definitely.

Vitaly: So maybe also building up on top of that, there're quite a few conversations happening in Europe, at least around salaries. And of course, everybody's looking at salaries in San Francisco thinking about, "Wow! Those salaries. This is incredible compared to the pay you get in Europe. Even if you're living in London or in Berlin, it's just much, much, much higher in San Francisco."

Vitaly: You happen to be in Sacramento, in California, and you happen to have moved from Croatia to the US, and shared the story about how you did that. So now being there, can you tell us maybe a little bit more about how different everything is for you? So do you feel like the culture, the way companies are run, the way people are working together that it's influenced you in some way, surprised you in some way, disappointed you in some way? What was your experience overall in these five years?

Marko: That's a good question. I think looking back, what really was new for me is how people over here are really focused. Organizations, not necessarily individuals, really focus on processes and repeatability of the process. So if you have certain steps, we can talk about the process... In design, we have double-diamond or triple-I or 5-Ds, or design sprint or design thinking.

Marko: And the reason for all of that, which is not very common in Europe... In Europe, we have a problem and solution. These are two steps that we have in Europe or have had in Europe. But here, it has to be detailed a little more with applicable tools and a decision-making diagram. So this is different over here. When it comes to San Francisco or Sacramento, I think in Sacramento, what happens is that we have a government here, so I'm not in a position to compare our environment in the projects to maybe the Bay Area, where there's a lot of just private companies and startups.

Marko: And there's a start difference even here. A two-hour drive from San Francisco. So I would even think, and this is completely my personal opinion, that Sacramento is closer just to the rest of the US than to San Francisco, compared to Europe. But another thing that's really different here is that the whole communication piece is just much more intentional because a lot of people are landing in California specifically from all over the world, and then you have a mix of cultures. And this is something that I definitely didn't think about when I was working in Europe, however internationally, but still, Europe, which is super tiny, by the way, as a piece of land.

Marko: And then we didn't have so many differences in the sense of just different cultural backgrounds, different educational backgrounds, how people have just different school systems in the first place. And so all of these people come over here, they're talented, they have certain talents; otherwise, they couldn't make it here. But then you have these different communication styles, and you have cultures that are just very generally speaking...

Marko: Far Eastern countries have high context conversations. And then you go more to the west; you have low context, which means that you have to always reiterate what the last conversation was. While in some cultures, it's implied. Everybody knows what we were talking about in the last meeting. So just these types of, I guess, communications skills that we develop now are really... that was really eye-opening.

Marko: I think especially Croatia for that matter, compared to California, is super monocultural. It's just unbelievable... That contrast is just super visible for me now, mowing from one to another.

Vitaly: Right. So having moved to the US now, do you feel like at any point you could consider moving back?

Marko: I think so, yeah. That's not off the table. I think what we like here, my family and me, and this was really a more collective move, not just necessarily for projects or work, is the access to nature here is just incredible. The way you can consume nature in California specifically is just unbelievable. It's just geared towards families. And over here, everybody's outside all the time, which is our family style anyway. So these are some of the fun things over here.

Marko: The good thing about Europe is that everything is very close. The furthest away is, I don't know, Spain from Croatia, which is a two to three-hour airplane flight. And, of course, I can fly to LA to visit Disney Land or something like that, but it's a drag to even think about the distances over here. So these are some of the differences that we notice. But again, I wouldn't say it's different or better; it's just, I guess, down to every person's personal preferences.

Vitaly: Right. Okay. Well, now, if you actually could recommend something to yourself when you were breeding dogs back, what? 20, 25-ish, 22 years ago, when you were just starting out with UX and all of that, well frontend and all that... what would you recommend to yourself?

Marko: I guess I would enjoy it more. I would joy the ride more. I was lucky enough to meet really, really great people along the way. I mean, such as yourself included.

Vitaly: Oh, that's very kind of you.

Marko: Yeah. But also coworkers and other speakers and just professionals. I think at certain points; I could have enjoyed it more, I guess. Just being more relaxed and having more faith in the future that things will work out the way they actually eventually did. So I guess, just more patience.

Vitaly: Okay. That sounds good. So we've been learning about UX in this episode of Smashing Podcast. So what have you been learning about lately, Marko? Any podcasts, books, TV shows, anything that drew your attention?

Marko: Well yeah, that's a good point. And you know me, I'm all over the place. Right? So I think lately-

Vitaly: You surely are, Marko. You definitely are.

Marko: ... lately, I'm really into mental health and just on all levels. So personal level, family level, organizational level. Just thinking about all the consequences of COVID, and just remote versus in-person. This is something that I'm really thinking about, not necessarily as something that we have to deal with right now, but what will be the outcomes in the years to come? So just getting ready for that, I guess.

Vitaly: All right. Well, I'm very much excited to actually meet you in person after all these years. In four days, we're going to meet in San Francisco for SmashingConf San Francisco. This is going to be very exciting. Quality time, family quality time, isn't it?

Marko: Yeah. It's going to be smashing.

Vitaly: That's kind. If you, dear listener, would like to hear more from Marko, you can find him on Twitter, where he's @Markodugonjic. And you can also check on Typetester, which is still kicking and still around, on typetester.org. Well, thanks so much for joining us today, Marko. Do you have any parting words of wisdom that will be staying with people listening to this, I don't know, decades from now?

Marko: No. Yeah. Thank you for having me. This is so exciting. And I think the best advice that I can have is to keep reading Smashing Magazine.