Blogosphere

Another bug in the WordPress block editor and frustration trying to get WordPress.com Support to believe me

Let me start by saying that software support is a wicked hard job. I’ve worked in the industry more than 30 years and have experienced it firsthand on support rotations.

Until the latest update to WordPress’s block editor, it was possible to flow text around an image following these steps:

  1. Insert an image, either using an Image block, or using an HTML block to embed a Flickr image.
  2. Using the block tools, right or left align it.
  3. Grab handles appear on the image. Drag them to size the image to your liking.

Boom, that’s it, the next blocks flow around the image. At least, it did until the most recent block editor update. It’s broken now. After step 2 above, you can no longer select the block with the image in it. It appears to merge with the next block. If you click the image and use the block tools to delete the block, it deletes the next block but leaves the image in place. The only way to delete the image is switch to the Code Editor and remove the code that embeds the image. Here’s a screencast that illustrates what’s happening. This has got to be a bug.

Chicago Theater

I have found a sort-of workaround. Insert the image, size it, then left or right align it. It gives the desired end result, as you can see at left.

The only trouble is, you still can’t select that image block. I can’t resize it, I can’t move it, I can’t edit the caption. I can’t even delete it.

The only way to interact with the image block after that is in the code editor.

I opened a case with WordPress.com Support and described this regression. The support engineer said that the block editor was never designed to work in the way I described. I replied that it had indeed worked that way until a couple days before I opened the support case.

The engineer then asked me to either use the Text & Media block, or use the Classic Editor block, to do what I wanted.

This is an example of the Media & Text block. It doesn’t support Flickr embeds; unfortunately, I use Flickr to host most of the images here. Also, the default text is huge and you have to format it to try to match it to the rest of the post’s default text size. You get a slider to do that, and you have to match it by trial and error. It doesn’t actually flow the text around the image, as you can see.

MeditatingDogIt does work to use the Classic Editor. I’ve done it here: this paragraph and the image at right are in the Classic Editor block, and the paragraphs that follow are in Paragraph blocks.

It was surprisingly challenging to remember how to use the Classic Editor after all these months in the Block Editor, but I figured it out.

However, I was still sure I had found a bug, and I said so very directly to the support engineer. I shared an old post with the engineer that showed how I had flowed text around an image. I pointed the engineer to the underlying code behind the post to prove it: there were dimensions in the code for the image. Those wouldn’t have been there had I not used the grab handles to shrink the image. The engineer finally said, “Okay, I see you were able to do this before. It seems unusual that it was possible to do this before, but I can certainly report this change to the Block Editor devs. for you.”

No, it wasn’t unusual. This is how it actually worked.

Furthermore, following the steps I described above to flow text around an image results in a block you can no longer select, and can only delete by switching to the Code Editor. In what universe is that not a bug?

If anyone from WordPress happens to read this, I’d be grateful if you’d check what I’m saying here and, if I’m right, open a bug ticket for it. I’d surely like to see this fixed as I encounter this bug every day.

Most of the time when I open a support case with WordPress.com I get active troubleshooting. I’ve found several bugs over the years and most support engineers are happy to get to the bottom of it with me and, when I’m right, write a bug ticket. They even email me a link to the ticket so I can follow it and see when it gets fixed.

But every now and then a support engineer repeatedly tries to tell me that whatever bug I’m encountering is how the system is supposed to function, or that I am wrong about how the system used to work. That makes me nuts. I feel gaslit.

I know this support engineer doesn’t know me and has no idea I’ve been making software for a living since the late 80s. That I was a quality engineer for 17 of those years. I’m adept at identifying bugs.

Harrumph, enough ranting. I hope someone at WordPress.com figures out that this condition exists and puts it in the queue to be fixed.

Standard
Personal

The wilderness years

One year ago today, I was fired from my job leading software engineers in a startup.

I’d been unemployed before, but never had I been so brutalized on my way out the door. I’ve had plenty of time to process it now, and I believe that the new VP wanted all of her own people in place. Two of my three peers were fired within her first month, and a third saw which way things were going and quit a month later. I didn’t feel great about things, but having just lost my father the last thing I could handle was a job search.

I was politically well connected and well liked, and I believe she knew it and realized she’d have to play a longer game to get rid of me. She strung me along with promises of a big promotion, and gave me duties she said were in line with that role but which ultimately removed me from the day-to-day duties of leading the engineers. I also participated heavily in preparing for the company’s Series A funding round. The lead investment firm, by the way, praised our engineering team, saying it executed better than any engineering team in their portfolio.

After the funding was secured, I found I had little to do. I started being left out of meetings and decisions. The VP also started questioning my ability to lead, offering as evidence that the chief architect and head of DevOps had lost respect for me. When I asked those two gentlemen about it, both expressed what looked to me to be genuine puzzlement over the VP’s statements. And then the axe fell, and I was out.

Astonishingly, six weeks later that VP was terminated.

As I’ve written before, it was very challenging to cut through my intense anger as I searched for my next job. But I managed to land a position that started the first of January. I still led engineers, albeit with a lesser title. It was a decent enough place to work and so I got on with it and tried to put what had happened behind me.

In January, a remarkable thing happened. The CEO of that startup contacted me to apologize for how badly I’d been treated. At first, it felt like he’d reopened the wound. But after my emotions settled, his apology helped me start the long process toward forgiveness.

I stayed at the new company just five months. I was lured away to an engineering leadership role at a growing, vibrant company with better pay and more responsibility — more than I had at that startup. I’ve been there about five months now, and I’m pleased to report that I’m truly happy there.

I’m happier than I’ve been in my career since 2011, when a big company bought the company I worked for. I’d been extremely happy there in a great job working with great people I trusted and enjoyed, but the big company ruined everything. I decided to try my hand in the startup world, which I did starting in 2013. I worked for three different startups between then and 2018.

But since 2011, it’s felt like I’ve been wandering in the career wilderness. I’m glad the wilderness years are over.

You can read all the posts in this saga here. If you’re curious, my LinkedIn profile is here.

Standard
Blogosphere

Pasting Flickr embed codes into WordPress blocks no longer works

Software engineers all over the world continuously deliver new and changed functionality to WordPress.com. This is great when you like the changes, and not so great when you don’t. Especially when you have to learn all new steps to do something you’d already learned to do and were happy with.

One major change was the new block editor. It was a whole new way of approaching creating content. I found it to be easy to learn and I like it a great deal better than any other editor WordPress has ever offered.

One thing I especially liked about it was how easily I could embed images from Flickr, which is where I host most of my images. In the old editors, embedding a Flickr image was a multi-step process. One of those steps was manually stripping out of the embed code a <script> tag that WordPress tripped up on.

WordPress actually doesn’t allow <script> tags in posts. This is wise, because those tags execute in your browser code that’s stored elsewhere. That code could be malicious. The code Flickr wants to run in your browser is harmless, but there’s no way for WordPress to know that.

In the block editor, simply pasting the Flickr embed code into an empty block stripped the <script> tag and made the image appear. Yay!

But this functionality was recently removed with neither warning nor explanation. Pasting a Flickr embed code into a block now results in a blank block.

But not an empty block. When you switch the block to HTML view, some HTML code appears. WordPress converted the Flickr embed code to the image’s simple URL wrapped in a hyperlink tag, wrapped in a paragraph tag, like this:

<p><a href="URL_of_Flickr_image"></a></p>

This is a malformed hyperlink, in that it specifies the link target (the page to go to, here the URL of the Flickr image) but no text or image to which to attach the hyperlink. The browser correctly renders this as blank.

Thinking I’d found a bug, I opened a case with WordPress.com support. They told me that simply pasting the Flickr embed code should never have worked because of the <script> tag. They didn’t explain why.

I pointed out to them that before this change, blocks flawlessly stripped out <script> tags. I asked if they would restore the old functionality. They said with no explanation that they would not.

They gave me two alternatives. The first is to paste the Flickr image’s URL into an empty block. This does work, but the image is of a fixed size, which is narrower than the block on some screens. I did it below, so you can see. There doesn’t appear to be any way to increase the image size. I almost always want the image to scale to full width, so this alternative won’t work for me.

Pay parking

The other alternative they offered is to paste the Flickr embed code into a block of type Custom HTML. This adds three extra steps I didn’t have to do before:

  1. Convert the automatically created default block to a Custom HTML block.
  2. After pasting the Flickr embed code, manually delete the <script> tags.
  3. Open the block menu and choose Convert to Blocks to show the embedded image rather than its underlying HTML code.

This is not onerous, but it is disappointing because several days ago I did not have to do these steps. A real benefit I gained with the block editor is now lost. These steps give me the same end result I had before, at least.

Pay parking

In my work as a software engineering manager in a company that delivers a software product over the Internet, I’ve personally led engineers to deliver changes that have caused users frustration. There are a lot of valid reasons to do it. But users hate to be surprised by changes that alter their workflows, especially when they don’t know why it had to change.

I’d love it if WordPress.com would revert to the old functionality so I can just copy and paste those Flickr embed codes and move on. But I’d have an easier time accepting this loss of functionality if someone had given me even a flimsy explanation of why.

To get Down the Road in your inbox or reader, click here to subscribe!

Standard
Personal

Last day

Today is my last day at my job. Yes, the one I started in January. I start a new job on Monday.

My soon-to-be-former employer has been a decent place to work and I haven’t been unhappy. I lucked into a good boss who was helping me see some of my blind spots and was challenging me to grow as a leader.

There were things I didn’t enjoy about this company, things typical of a company in its business climate at its phase of life. And I didn’t see a growth path beyond perhaps a promotion to Senior Manager. But given that it didn’t hurt to work there, I thought I’d soak up as much experience as I could. I’m still early in my engineering-leadership career and I need to build credibility.

About eight weeks ago a recruiter from another prominent local employer of software engineers contacted me about joining them as an engineering manager. I know that this company has completed a business and technology transformation that was starting to pay off in their marketplace. They were also using more modern processes and delivery methods. That’s exciting stuff. But the job was a lateral move at the same pay and I told them that I couldn’t consider a change unless it was for a higher position and more money.

I figured that would be the last I heard from them. I was stunned when they contacted me again a couple weeks later, saying they’d recast the position one level higher with a compensation package to match.

Having worked for many software companies in this market over nearly 30 years, I know people pretty much everywhere software engineers work in central Indiana. So I contacted a couple people I know at this company and asked what they think. They were enthusiastic about the work environment and about the company’s prospects, and said I should join them.

So I went in for an interview. It went well, and they offered me the job. It was easy to say yes. This choice is right for my family now and for my career in the future.

But it feels all kinds of wrong to quit a job after just five months. Having managed people for 20 years I know full well how disruptive it is. I did not enjoy telling my boss, who has treated me well; or my team, which I enjoyed very much, that I was resigning. Fortunately, they took it well.

I’ll come home tonight with my things in box, which I’ll carry with me to my new job on Monday.

Standard
Personal

I suppose having my midlife crisis in startup software companies was better than buying a sports car or dating younger women

I’d been a first-level manager in the software industry for 15 years, leading testers and technical writers, when I was passed over for a promotion to Director. It pissed me off. I was a good manager who had accomplished a lot for that company, and I was ready to stretch into the next level. I thought I deserved the chance. I don’t think it’s just my ego talking when I say I would have done a better job than the man they brought in and for whom I had to work.

Then I got a call from a startup software company: was I interested in being a Director for them?

Why yes. Yes I was!

I don’t know where my ambition came from, as I’d had little of it before then. Since I was a teen I had wanted only to work in the software industry. For a long time I was perfectly happy writing technical documentation and testing software to make sure it worked as intended. I didn’t seek to move up the ladder; my first management job fell into my lap.

Office
I’ve had a lot of desks in my career, but only twice a private office.

Yet through my early 40s I felt pangs of discontent. I could see ways to do things better, but as a manager I lacked the authority to do much about it. I itched to have more clout and make a bigger impact. Also, as my kids were headed toward their college years, the extra money of the Director level appealed to me.

I got the job and dived belly first into boiling water. What a mess things were there. Not only did I build their test team from scratch, but I also turned around their broken software delivery system. I wasn’t able to fix the company’s fatal flaw, however: the product was a hard sell, and we kept widely missing our sales goals. We rolled and pitched as upper leadership had us build this and then that into the software hoping something would catch on in the marketplace. Nothing ever did, not enough to make a dent in the market, not enough to satisfy investors. Sales became frightfully poor for six months and it became clear they’d have to cut staff. They showed me the door.

I moved on surprisingly quickly to another young company, beyond its startup stage but not yet mature. I built a couple functions from the ground up as a Director there — another testing team, and a program management team. It was great fun and I liked it there a lot.

Yet I’d started dreaming of being a Director of Engineering. Testing had become old hat for me, and because of changes in the industry opportunities were drying up. But also, I knew that quality starts at the top — you have to build it in. To deliver software as well as I knew it could be done, I’d have to do it by leading the software developers.

My chance came two years ago. An executive I knew and admired wanted me to lead engineering at his startup. I jumped at the chance.

Office
The view from the Director of Engineering’s desk.

I proved there what I wanted to prove all along: that building a product well from the start is better and faster all around. Our product had few bugs, it held up under load, and it scaled with the business.

But after we built the core product, there were internal disagreements about what to build next. It undermined everything. The executive who hired me had ideas, but he didn’t win over the rest of the execs and in the end he resigned. The person they brought in to replace him treated me badly, and as you know if you’ve been reading this blog for the last six months she fired me with neither explanation nor warning.

I had proved to myself that I could do all the things I wanted to do — but so what? It didn’t save these companies, it didn’t give me the feelings of accomplishment I wanted, and it sure as hell didn’t bring me the respect and admiration I was secretly looking for. Instead, I wound up on the street.

The job I was able to get before my family’s finances got rough is as a first-level manager. It stings a lot to have been essentially demoted.

At least I’m still in engineering. Also, I’m a deeply experienced first-level manager; this is a job I can do well. Even better, I’m in an organization that, while not perfect, functions reasonably well. As in all companies there are business challenges, but there are agreed-upon plans to work through them. If you’ve ever worked for me, you’ve heard me say it: even a mediocre plan will work if everybody follows it. Also, because the company is mature it pays market rate, something startups don’t do. I make the same money I did before as Director of Engineering.

I’m dancing on a fine line. To accept where I am feels like giving up on my dream. Even though I found out my dream isn’t all it’s cracked up to be, a part of me wants to double down on it to prove it was good all along. Maybe I should get a new dream. Or maybe I should stop dreaming and be content with what I have, because it is objectively good.

Standard
Personal

Day one

I start my new job today, as a manager of engineers in a large software company.

I’m happy to be going back to work. It was nice in a way to have the last month off, unpaid as it was. I needed some serious downtime and I got it. But I felt unmoored. I like to work.

The job search was challenging for a number of reasons. First, in the last couple months of the year many companies just push off hiring to January. I heard it over and over: we could use someone like you during the first quarter of next year. Awesome, but I’ll be homeless by then.

Second, I began looking while I was still reeling from getting the sack. I was fired after a crazy difficult ten months under new executive leadership. I think I did an exceptional job leading the engineers through a chaotic time, and I had been praised for my work. To find myself no longer wanted was deeply confusing and upsetting.

Everyone asked why I was let go, and I struggled to tell the story. As the days stretched into weeks, I kept unpacking what happened and it changed how I told it. No two people heard the same story, though everything I said to everyone was true. Also, I was still angry and really wanted to say some things that, while true, put some people at my past company in an unflattering light. That never goes over well, so I avoided it. But that left gaps in my story, which led to questions I couldn’t answer well.

One way to Lucas Oil

Third, despite my successes I had a weak story to tell about being a leader of engineers. I just hadn’t been doing it long enough — only 16 months. I had been in QA (software testing) leadership for the previous 18 years.

I was fortunate to shift into engineering, as changes in my industry are leading to fewer QA leadership roles. And I was ready for new mountains to climb — I’d done everything I ever wanted to do in QA.

I have a great story to tell about delivering a very good quality “version 1.0” software product in a short time. It impressed everyone who heard it. But as people asked questions that would reveal my depth, I had to lean on my QA experience, which didn’t connect with them.

Fourth, my technical skills kept being a concern to interviewers. I’m far more technical than the average person, but I lack a deep understanding of the technologies my last few employers used. I am convinced that it’s a rare unicorn who can be deeply good both in technology and in leadership. Becoming the leader I am has required my full attention over the last 10 years and it meant letting my technical skills go stale. But I feel certain that the leader who had focused on technology would not have had the same success I did building leadership alignment on direction, and bringing my engineers through that startup’s “version 1.0” delivery as well as through the chaotic, difficult months that followed. 

Yet nearly everyone I spoke to had some level of concern — dare I call it bias? — that I’d need to be a committed technologist to be able to lead engineers. It’s bunk. Here’s a great article that explains how your VP (or Director) of Engineering is different from your Chief Architect or Chief Technology Officer. Search Google for “VP Engineering vs CTO” — you’ll find many similar articles. I’m a classic Director of Engineering, with strong people and process skills, and enough technical skills to get by.

Still, there’s no way to escape that I did not spend enough time in the technology at my last company. I took a JavaScript course online and read a book on functional programming so I could understand the approach and language the engineers were using. But I can’t draw you an architectural diagram of that application, can’t tell you much about how the application is configured on the server, and know little about the state of the codebase and what challenges lie ahead in it. I needed to know those things as Director of Engineering. There were just so many challenges I needed to solve at that company with straight-up leadership that I kept deferring getting into the tech. I will not make that mistake again.

This reminds me of 18 years ago when I pivoted from technical writing into QA. I’d been a technical writer for a long time, and I’d done all I cared to do in the field. I liked to joke that if I had to write open the File menu and choose Print one more time I was gonna go postal. The company I worked for offered me a QA role, leading a test-automation team and building a lab of testing hardware. I did that job for barely two years, during which time the dot-com bubble burst and September 11 happened. Software companies everywhere went into tailspins. The one where I worked went through waves of layoffs. I got caught in one of them.

After three months of unemployment I got picked up by a large health-insurance company. I was to be a QA engineer, testing software applications for them. My QA story was weak; I had not done it long enough. I think they liked that they could pick me up for cheap. I’m glad they did as it kept the wolves from the door. 

It was both a difficult place to work because of its top-down control culture, and an easy place to work because the expectations weren’t high. On that job I built solid experience as a tester, and then as a manager of testers. And then in the craziest thing that ever happened to me in my career, I was fired and un-fired from that company. Read that story here. I eventually left on my own, my QA cred well established. I had zero trouble getting jobs, and had great success building QA practices from scratch at several other software companies.

I hope I’m in a similar place in this job that begins today: about to build deeper experience and credibility as an engineering leader. I’m going to rest on my leadership skills as they are and switch back to learning technology. I will know how the product is architected, will understand what headwinds we face in the codebase, will know how it is deployed to and configured on the servers that run it, and will learn how to do at least basic things in the programming language they use (Java). I was able to do all of these things early in my career, and I know I can learn it all again in these modern technologies. That will set me up well for the rest of my career, wherever it leads.

Standard