Introducing the Jakarta EE website refresh: clearer, simpler, and built for the future of enterprise Java

Introducing the Jakarta EE website refresh: clearer, simpler, and built for the future of enterprise Java

The Jakarta EE community thrives on collaboration, innovation, and a shared vision for the future of enterprise Java. As the ecosystem continues to evolve, so must the ways we communicate, educate, and engage with developers and organisations around the world.

This is why we’re excited to share the first phase of the Jakarta EE website refresh, designed to make the platform easier to navigate, more informative, and aligned with the needs of our global community.

Beyond the visual redesign, this update marks the beginning of a broader effort to modernise how we tell the Jakarta EE story.

Image
Jakarta EE website

Phase 1: a fresh home page and improved navigation

We are just launching the first set of updates, which introduce a cleaner, more modern look and a smoother user experience. These changes include:

A redesigned homepage

The updated homepage presents Jakarta EE with a bold, clear identity while making it easier for visitors to understand what Jakarta EE is and how to get started.
We’ve improved content clarity, reduced friction for new users, and provided more direct entry points for developers, architects, and decision-makers.

New mega menus for easier navigation

The new navigation structure makes key content discoverable within seconds. Whether you’re looking for specifications, learning materials, compatibility information, joining the Working Group or contribution paths, the mega menus help you find it quickly and intuitively.

Clearer story: Why Jakarta EE? A new way of telling our story

One of the new additions in this refresh is the “Why Jakarta EE” section, created to help developers and organisations clearly understand what Jakarta EE is, why it matters in today’s cloud native landscape, and how it powers many of the world’s most widely used Java frameworks and enterprise applications.

Also, as part of our improvements to structure and clarity, the homepage now includes a dedicated space for the latest Jakarta EE release, featuring a visual specification diagram that links directly to the latest release pages for each specification.

This helps ensure newcomers and returning community members can immediately see the most current version of the platform.

Phase 2 coming later in 2026: a deeper transformation

The work doesn’t stop here.

In early 2026, we will continue modernising the Jakarta EE website with:

  • Enhanced messaging across core pages
  • A more consistent visual identity from page to page
  • New and expanded pages, including a developer-focused hub, clearer “get involved” pathways, and improved recognition of community contributions
  • Revamped content structures to better support both new and experienced developers
  • Improved calls to action to guide visitors toward the information or action they need

Our goal is to create a website that not only reflects the strength of the Jakarta EE community but also helps accelerate adoption, contribution, and understanding of Jakarta EE. A modern platform deserves a modern experience, and this rebrand is a step forward in telling the Jakarta EE story with the clarity and impact it deserves.

Thank you to our community

None of this would be possible without the collaboration and feedback of the Jakarta EE Working Group, especially the Jakarta EE Marketing Committee, our webdev and marketing team, and our global community. Your work continues to shape the future of enterprise Java.

We’re excited for you to explore the refreshed website and look forward to delivering even more improvements in 2026.

Stay tuned, this is just the beginning.

Shabnam Mayel


Hashtag Jakarta EE #315

Hashtag Jakarta EE #315

Welcome to issue number three hundred and fifteen of Hashtag Jakarta EE!

The 27th of January, the date for Milestone 2 of Jakarta EE 12, is fast approaching. You can check out the status on the Jakarta EE 12 GitHub planning board. As you can see, there is still a lot of work to be done in order to get all the specifications past Milestone 2. My guess is that most of the work will be carried out in the last week before the deadline, as it was done with Milestone 1 last year. If you want to avoid this stress and you have some time over, now is the time to look at what your favorite specification needs to do before January 27 for it to be a part of Milestone 2.

I am happy to announce that Bruno Souza will visit Malmö and speak at Javaforum on February 10 at Foo Café. He will talk about how The Reputation Formula can help you turbocharge your career.

Ivar Grimstad


The story of modernising the Eclipse Platform and IDE

The story of modernising the Eclipse Platform and IDE

Initiative 31 Final Report: proving an OS-agnostic future for SWT

The Eclipse Platform has been powering the Eclipse IDE and a large ecosystem of Eclipse RCP applications for more than two decades. It is one of those technologies that quietly keeps critical tools running, in software engineering teams and across many industries, every day.

But the reality of building and maintaining desktop tooling has changed. Operating systems evolve faster, UI stacks become more complex, and expectations around rendering quality, theming, HiDPI support, and cross platform consistency keep rising. At the same time, the cost and complexity of maintaining OS-specific integrations keeps increasing.

That is why, in 2021, a group of companies came together to create the Eclipse IDE Working Group: to collectively ensure the long term sustainability of the Eclipse Platform, also known as Eclipse RCP, and of the Eclipse IDE built on top of it.

By 2024, the Eclipse Standard Widget Toolkit (SWT) had become one of the most strategic areas to address. SWT remains a cornerstone of the Eclipse Platform, but it also comes with a structural challenge: it relies on three separate, OS-specific implementations for Windows, Linux, and macOS. That means high maintenance effort, complex behavioural differences, and limited control over look and feel and customisability.

This is the context in which Initiative 31 was launched.

Initiative 31 is an evaluation project supported by the Eclipse IDE Working Group, focused on the long term sustainability of Eclipse SWT, the Eclipse Platform, and the products built on top of them.

🕰️ 2024 was the year of exploration, selection, and early prototypes:

Image
Illustration of the three technologies considered for implementing an OS Agnostic SWT version of the Eclipse IDE: Skia, GTK 4 and Swing

Illustration of the three technologies considered for implementing an OS Agnostic SWT version of the Eclipse IDE: Skia, GTK 4 and Swing

🚀 2025 became the year of the “big prototype”: turning the chosen approach into a functional demonstrator on GitHub that can launch and operate the Eclipse SDK while rendering SWT widgets through the graphics library Skia.

✅ What has been achieved

Initiative 31 has concluded with a successful demonstrator implementation showing the feasibility of reimplementing SWT in an OS-agnostic way and mitigating relevant risks.

As a result, a productively usable implementation is no longer a matter of conceptual or technological uncertainty, but rather of execution effort and engineering capacity.

All artefacts, including the demonstrator and the final report, are publicly available here: https://github.com/swt-initiative31/

🧠 TLDR

📌 SWT can be reimplemented in an OS agnostic way.

📌 Skia plus custom-implemented widgets is a validated and promising direction.

📌 The Eclipse SDK can be launched and operated on the demonstrator.

📌 Key risks were addressed: complex widgets, event handling, performance, GC capabilities.

📌 The path to production is now mainly a question of investment, not feasibility.

🔬 What has been learned, at a high level

Initiative 31 started with a broad evaluation of the technology landscape, looking for candidates that could support a new SWT implementation with minimal OS dependence, while preserving SWT’s API and key behaviour.

Three candidates were prototyped: GTK, Swing, and Skia.

As the work progressed, the direction converged towards Skia combined with custom-implemented widgets. This was primarily driven by:

⚙️ Productivity and debuggability: the custom widget approach is largely pure Java, making iteration fast and accessible for SWT developers.

🧱 Incrementality: widgets and behaviours can be replaced step by step while keeping SWT-based products running.

🔁 Reduced dependency risk: Skia is “just” a rendering engine. The SWT side can expose a lean interface, and the rendering backend can be exchanged if needed.

🎛️ Future enablement: a custom widget stack is a natural foundation for more consistent cross-platform behaviour, improved theming, and deeper customisability, without being locked into OS widget constraints.

The detailed decision and rationale, including why GTK and Swing were dropped and what was learned from them, are covered in the report.

🛡️ What risks have been addressed

A key goal of Initiative 31 was not only “make widgets appear”, but also to validate that the difficult parts are feasible.

The demonstrator and targeted prototypes specifically addressed several high risk areas, including:

🧾 Complex widgets: feasibility was demonstrated with StyledText, adapted to work with Skia to a high degree. The result is not perfect yet, but the main risk was retired.

🧠 Event handling: feasibility of OS-independent event handling was evaluated in a dedicated prototype, demonstrating that fully custom input and interaction handling is achievable.

🖌️ Graphics Context capabilities: significant SWT GC functionality was implemented on top of Skia, validating the idea of a rendering engine as an interchangeable backend behind SWT’s graphics layer.

⚡ Performance characteristics: dedicated prototypes validated decent performance in hardware accelerated mode and via OS buffer rendering paths. The demonstrator is not performance optimised yet, but the feasibility and potential are confirmed.

For the deep technical detail, the report is the best entry point: https://github.com/swt-initiative31/documents/blob/main/report/overall_report.md

🧱 A realistic migration path: incrementality works

One of the most important outcomes is that this work can be done incrementally.

Throughout the initiative, the goal was to keep SWT based products running while progressively replacing widgets and behaviours. The SWT Control Examples and the Eclipse SDK were used as continuous checkpoints.

This is critical because it makes a future transition practical for the Eclipse ecosystem. It enables progressive testing, and controlled risk management, rather than a disruptive rewrite. While gradual adoption of incremental changes for products in production is technically possible, it is still important to note that this is not recommended due to the mixture of different technologies. Among others, this can especially lead to performance drawbacks until one technology completely replaces the other.

🧭 What happens next

Initiative 31 was initiated and driven by Eclipse IDE Working Group members on a voluntary basis, without central funding. The capacity available was sufficient to deliver prototypes, mitigate key risks, and build the demonstrator, but not to produce a full, production-ready SWT implementation.

The final report includes a realisation plan that outlines the main steps to move from demonstrator to production quality, and provides a capacity estimate.

📊 The minimum estimate for a full implementation usable by most consumers is 20 person years.

To deliver in a timeframe around 2 years, the recommendation is to start only if at least 10 full time equivalent developers can be committed.

This is a significant investment, but it is now a measurable engineering plan. The core uncertainty has been retired.

🔧 Immediate follow-up work, even without a full rewrite

The report also identifies work that can deliver value even if a full OS agnostic SWT implementation is not started immediately:

🎯 Skia-based GC in SWT A Skia based graphics backend can improve performance for custom drawn content, for example GEF diagrams. Work exists in a dedicated repository: https://github.com/swt-initiative31/skija-canvas

🧩 Contributing strong custom widgets back into SWT Some custom widget implementations may become superior to native ones and could be contributed back to existing SWT implementations as emulated widgets or targeted improvements.

📣 Call to action

If your organisation relies on Eclipse SWT or Eclipse RCP, or if you care about the long-term sustainability of open source developer tooling, now is a good time to engage, feel free to contact me for more information.

Initiative 31 has reduced the risk: feasibility is proven, the technical direction is validated, and the work ahead is well understood. What is needed now is a critical mass of companies and contributors willing to fund and staff the effort.

🎤 This work and the realisation plan will be presented by Heiko Klare at Open Community for Tooling, part of Open Community Experience #OCX 2026 in Brussels, Belgium, taking place 21 to 23 April 2026. 📝 Registration is open here

🔗 Links

🗂️ Initiative 31 GitHub organisation, final report, prototypes: https://github.com/swt-initiative31/

📌 Skia demonstrator: https://github.com/swt-initiative31/prototype-skija

📌 Skia based GC work: https://github.com/swt-initiative31/skija-canvas

📄 Context article (JavaPro, July 2025): https://javapro.io/2025/07/16/a-new-generations-chance-to-shape-the-future-building-the-next-great-java-ide-in-open-source/

🙏 Acknowledgements

Thanks to everyone who participated in and contributed to Initiative 31. This project was driven openly, collaboratively, and on a voluntary basis, and it produced results that materially improved the long term sustainability outlook for SWT and the Eclipse Platform.

Thomas Froment


Adoptium 2025: A year of momentum, innovation, and trust in open source Java runtimes

Adoptium 2025: A year of momentum, innovation, and trust in open source Java runtimes

As we begin the new year, it’s a great time to reflect on what the Adoptium community accomplished in 2025. From ongoing releases and a redesigned website to the growing success of the Eclipse Temurin, 2025 was a year of growth, stability, and renewed commitment to delivering high-quality, open source Java runtimes to the world.

Temurin momentum: Approaching 1 billion downloads

Adoptium’s Eclipse Temurin continued to see strong global adoption last year. With over 800 million cumulative downloads, Temurin is rapidly approaching 1 billion lifetime downloads, a milestone that highlights the trust and confidence developers place in its quality and reliability.

Image
Eclipse Temurin Downdloas over the years since October 2021

Temurin’s popularity is driven by its consistent quality, timely updates, and the trust earned through Adoptium’s rigorous AQAvit test suite. Enterprises, developers, and platforms around the globe rely on Temurin to deliver secure and performant Java applications.

A full year of Temurin releases and Adoptium’s projects updates

The Adoptium community successfully delivered multiple releases throughout 2025, including the long-term support (LTS) release of JDK 25 under the celebration of 30 years of Java, support for JDK 24 that enabled JEP 493, and quarterly updates across supported versions in  January, April, July, and October.
The community also implemented advancements in the rigorous AQAvit test suite, further strengthening the quality and security assurance process for all Eclipse Temurin releases

The community also announced that support for Solaris and Win32 platforms will be retired in 2026, ensuring continued focus on widely used, modern platforms.

Launch of the Temurin Sustainer Program

In 2025, the Adoptium Working Group launched the Eclipse Temurin Sustainer Program, designed to support the long-term sustainability of open source Java runtimes. This initiative provides a way for individuals and organisations of all sizes to contribute financially and ensure the continued availability of high-quality, free-to-use Temurin binaries. ​​Whether you’re supporting the technologies your business depends on or giving back to the tools that make your work possible, your contributions ensure the continued success and resilience of open source Java runtimes. 

Image
Eclipse Temurin Sustainer program  Key initiatives

To further highlight why sustainability matters, we also shared Keeping Temurin Strong, a community session featuring Shelley Lambert, Senior Principal Software Engineer at IBM and an Eclipse Adoptium PMC member and Committer. From a committer’s perspective, Shelley explains what it takes to maintain Eclipse Temurin at scale, from ensuring reproducible builds and meeting compliance requirements to continuously improving automation and quality processes. Her perspective reinforces a core message from 2025: Temurin’s reliability and trust are the result of sustained, collaborative effort, and the Temurin Sustainer Program plays a critical role in ensuring this work can continue long term.

​​A new look for adoptium.net

Adoptium launched a completely redesigned website in May 2025, featuring clearer navigation, improved accessibility, and updated community resources. Notable additions include:

  • A new sustainers page
  • A refreshed members page
     

These changes reflect the project’s evolution and make it easier for users, contributors, and potential members to find what they need. 

This was a major undertaking, and we want to extend our thanks to all the community members: George Adams, Xavier, Jessie and the Adoptum Marketing Subcommittee members who contributed, whose work made this milestone possible. Your efforts brought a fresh look, streamlined navigation, and a foundation we continue to build on with ongoing improvements.

Highlighting real‑world impact: Bloomberg Temurin case study

This year, we published a featured case study with Bloomberg, illustrating how the company has strengthened its technology infrastructure by adopting Eclipse Temurin and engaging with the Adoptium Working Group. The case study explores how Bloomberg standardised its Java runtime strategy to support thousands of engineers and mission‑critical applications, and why Temurin’s secure software supply chain and transparent Software Bill of Materials (SBOM) are important to its global operations. It also reflects on how using Temurin and participating in the Adoptium community has helped Bloomberg reduce risk, lower costs, maintain reliability, and innovate with confidence across its platforms.

Read my full blog to learn more and download the full case study here.

 

Community events and global presence

Adoptium continued to grow its community through both virtual and in-person engagements:

  • Adoptium Summit 2025 featured eight sessions with speakers from seven countries, attracting increased registrations, higher satisfaction scores (94 percent), and over 500,000 YouTube views.
     
  • The team presented talks or hosted booths at in-person events, including FOSDEMDevNexusJavalandJCon EuropeOSCAFestFOSS BackstageCommitConfSFSCon, Nerdearla, WeAreDevelopersDevFest Vienna and Open Source Experience Paris

These events played a key role in growing awareness and community collaboration around Adoptium and Temurin.

Looking ahead to 2026 and beyond

As we look forward, the Adoptium Working Group remains committed to delivering secure, high-quality Java runtimes and building an even more inclusive and engaged community. But sustaining this work requires continued investment and support, from both new contributors and sponsors.

To help:

  • Consider joining as a Temurin Sustainer
  • Contribute to the release effort or test automation
  • Join the community on Slack

Together, we can ensure a vibrant and sustainable future for open source Java runtimes.
 

Carmen Delgado


Hashtag Jakarta EE #314

Hashtag Jakarta EE #314

Welcome to issue number three hundred and fourteen of Hashtag Jakarta EE!

Happy New Year!

My first post of 2026 will be very similar to the last of 2025. I hope everyone has had a wonderful couple of weeks of time during the Holidays. The first Jakarta EE Platform call will be on Tuesday, January 6. All meeting minutes for 2025 have been published. Check them out if you want to update yourself on the discussions. In total, we had 46 meetings last year.

By the way, when I asked Copilot to calculate the number of meetings, it gave me 49. When I pointed out that I got 46, it changed its mind and agreed. Gemini gave me 44 with the same prompt, but when I pointed out that it should be 46, it insisted on it being right and that I was wrong. It turned out that it had ignored the meetings in December. So I guess it was operating on old data, even if it was provided a fresh link. The joy of fact-checking Artificial Intelligence continues in 2026…

Ivar Grimstad


Smashing Animations Part 8: Theming Animations Using CSS Relative Colour

I’ve recently refreshed the animated graphics on my website with a new theme and a group of pioneering characters, putting into practice plenty of the techniques I shared in this series. A few of my animations change appearance when someone interacts with them or at different times of day.

The colours in the graphic atop my blog pages change from morning until night every day. Then, there’s the snow mode, which adds chilly colours and a wintery theme, courtesy of an overlay layer and a blending mode.

While working on this, I started to wonder whether CSS relative colour values could give me more control while also simplifying the process.

Note: In this tutorial, I’ll focus on relative colour values and the OKLCH colour space for theming graphics and animations. If you want to dive deep into relative colour, Ahmad Shadeed created a superb interactive guide. As for colour spaces, gamuts, and OKLCH, our own Geoff Graham wrote about them.

Repeated use of elements was key. Backgrounds were reused whenever possible, with zooms and overlays helping construct new scenes from the same artwork. It was born of necessity, but it also encouraged thinking in terms of series rather than individual scenes.

The problem With Manually Updating Colour Palettes

Let’s get straight to my challenge. In Toon Titles like this one — based on the 1959 Yogi Bear Show episode “Lullabye-Bye Bear” — and my work generally, palettes are limited to a select few colours.

I create shades and tints from what I call my “foundation” colour to expand the palette without adding more hues.

In Sketch, I work in the HSL colour space, so this process involves increasing or decreasing the lightness value of my foundation colour. Honestly, it’s not an arduous task — but choosing a different foundation colour requires creating a whole new set of shades and tints. Doing that manually, again and again, quickly becomes laborious.

I mentioned the HSL — H (hue), S (saturation), and L (lightness) — colour space, but that’s just one of several ways to describe colour.

RGB — R (red), G (green), B (blue) — is probably the most familiar, at least in its Hex form.

There’s also LAB — L (lightness), A (green–red), B (blue–yellow) — and the newer, but now widely supported LCH — L (lightness), C (chroma), H (hue) — model in its OKLCH form. With LCH — specifically OKLCH in CSS — I can adjust the lightness value of my foundation colour.

Or I can alter its chroma. LCH chroma and HSL saturation both describe the intensity or richness of a colour, but they do so in different ways. LCH gives me a wider range and more predictable blending between colours.

I can also alter the hue to create a palette of colours that share the same lightness and chroma values. In both HSL and LCH, the hue spectrum starts at red, moves through green and blue, and returns to red.

Why OKLCH Changed How I Think About Colour

Browser support for the OKLCH colour space is now widespread, even if design tools — including Sketch — haven’t caught up. Fortunately, that shouldn’t stop you from using OKLCH. Browsers will happily convert Hex, HSL, LAB, and RGB values into OKLCH for you. You can define a CSS custom property with a foundation colour in any space, including Hex:

/* Foundation colour */
--foundation: #5accd6;

Any colours derived from it will be converted into OKLCH automatically:

--foundation-light: oklch(from var(--foundation) [...]; }
--foundation-mid: oklch(from var(--foundation) [...]; }
--foundation-dark: oklch(from var(--foundation) [...]; }

Relative Colour As A Design System

Think of relative colour as saying: “Take this colour, tweak it, then give me the result.” There are two ways to adjust a colour: absolute changes and proportional changes. They look similar in code, but behave very differently once you start swapping foundation colours. Understanding that difference is what can turn using relative colour into a system.

/* Foundation colour */
--foundation: #5accd6;

For example, the lightness value of my foundation colour is 0.7837, while a darker version has a value of 0.5837. To calculate the difference, I subtract the lower value from the higher one and apply the result using a calc() function:

--foundation-dark: 
  oklch(from var(--foundation)
  calc(l - 0.20) c h);

To achieve a lighter colour, I add the difference instead:

--foundation-light:
  oklch(from var(--foundation)
  calc(l + 0.10) c h);

Chroma adjustments follow the same process. To reduce the intensity of my foundation colour from 0.1035 to 0.0035, I subtract one value from the other:

oklch(from var(--foundation)
l calc(c - 0.10) h);

To create a palette of hues, I calculate the difference between the hue value of my foundation colour (200) and my new hue (260):

oklch(from var(--foundation)
l c calc(h + 60));

Those calculations are absolute. When I subtract a fixed amount, I’m effectively saying, “Always subtract this much.” The same applies when adding fixed values:

calc(c - 0.10)
calc(c + 0.10)

I learned the limits of this approach the hard way. When I relied on subtracting fixed chroma values, colours collapsed towards grey as soon as I changed the foundation. A palette that worked for one colour fell apart for another.

Multiplication behaves differently. When I multiply chroma, I’m telling the browser: “Reduce this colour’s intensity by a proportion.” The relationship between colours remains intact, even when the foundation changes:

calc(c * 0.10)

My Move It, Scale It, Rotate It Rules

  • Move lightness (add or subtract),
  • Scale chroma (multiply),
  • Rotate hue (add or subtract degrees).

I scale chroma because I want intensity changes to stay proportional to the base colour. Hue relationships are rotational, so multiplying hue makes no sense. Lightness is perceptual and absolute — multiplying it often produces odd results.

From One Colour To An Entire Theme

Relative colour allows me to define a foundation colour and generate every other colour I need — fills, strokes, gradient stops, shadows — from it. At that point, colour stops being a palette and starts being a system.

SVG illustrations tend to reuse the same few colours across fills, strokes, and gradients. Relative colour lets you define those relationships once and reuse them everywhere — much like animators reused backgrounds to create new scenes.

Change the foundation colour once, and every derived colour updates automatically, without recalculating anything by hand. Outside of animated graphics, I could use this same approach to define colours for the states of interactive elements such as buttons and links.

The foundation colour I used in my “Lullabye-Bye Bear” Toon Title is a cyan-looking blue. The background is a radial gradient between my foundation and a darker version.

To create alternative versions with entirely different moods, I only need to change the foundation colour:

--foundation: #5accd6;
--grad-end: var(--foundation);
--grad-start: oklch(from var(--foundation)
  calc(l - 0.2357) calc(c * 0.833) h);

To bind those custom properties to my SVG gradient without duplicating colour values, I replaced hard-coded stop-color values with inline styles:

<defs>
  <radialGradient id="bg-grad" […]>
    <stop offset="0%" style="stop-color: var(--grad-end);" />
    <stop offset="100%" style="stop-color: var(--grad-start);" />
  </radialGradient>
</defs>
<path fill="url(#bg-grad)" fill="#5DCDD8" d="[...]"/>

Next, I needed to ensure that my Toon Text always contrasts with whatever foundation colour I choose. A 180deg hue rotation produces a complementary colour that certainly pops — but can vibrate uncomfortably:

.text-light {
  fill: oklch(from var(--foundation)
    l c calc(h + 180));
}

A 90° shift produces a vivid secondary colour without being fully complementary:

.text-light {
  fill: oklch(from var(--foundation)
    l c calc(h - 90));
}

My recreation of Quick Draw McGraw’s 1959 Toon Title “El Kabong“ uses the same techniques but with a more varied palette. For example, there’s another radial gradient between the foundation colour and a darker shade.

The building and tree in the background are simply different shades of the same foundation colour. For those paths, I needed two additional fill colours:

.bg-mid {
  fill: oklch(from var(--foundation)
    calc(l - 0.04) calc(c * 0.91) h);
}

.bg-dark {
  fill: oklch(from var(--foundation)
    calc(l - 0.12) calc(c * 0.64) h);
}

When The Foundations Start To Move

So far, everything I’ve shown has been static. Even when someone uses a colour picker to change the foundation colour, that change happens instantly. But animated graphics rarely stand still — the clue is in the name. So, if colour is part of the system, there’s no reason it can’t animate, too.

To animate the foundation colour, I first need to split it into its OKLCH channels — lightness, chroma, and hue. But there’s an important extra step: I need to register those values as typed custom properties. But what does that mean?

By default, a browser doesn’t know whether a CSS custom property value represents a colour, length, number, or something else entirely. That often means they can’t be interpolated smoothly during animation, and jump from one value to the next.

Registering a custom property tells the browser the type of value it represents and how it should behave over time. In this case, I want the browser to treat my colour channels as numbers so they can be animated smoothly.

@property --f-l {
  syntax: "<number>";
  inherits: true;
  initial-value: 0.40;
}

@property --f-c {
  syntax: "<number>";
  inherits: true;
  initial-value: 0.11;
}

@property --f-h {
  syntax: "<number>";
  inherits: true;
  initial-value: 305;
}

Once registered, these custom properties behave like native CSS. The browser can interpolate them frame-by-frame. I then rebuild the foundation colour from those channels:

--foundation: oklch(var(--f-l) var(--f-c) var(--f-h));

This makes the foundation colour become animatable, just like any other numeric value. Here’s a simple “breathing” animation that gently shifts lightness over time:

@keyframes breathe {
  0%, 100% { --f-l: 0.36; }
  50% { --f-l: 0.46; }
}

.toon-title {
  animation: breathe 10s ease-in-out infinite;
}

Because every other colour in fills, gradients, and strokes is derived from --foundation, they all animate together, and nothing needs to be updated manually.

One Animated Colour, Many Effects

At the start of this process, I wondered whether CSS relative colour values could offer more possibilities while also making them simpler to implement. I recently added a new gold mine background to my website’s contact page, and the first iteration included oil lamps that glow and swing.

I wanted to explore how animating CSS relative colours could make the mine interior more realistic by tinting it with colours from the lamps. I wanted them to affect the world around them, the way real light does. So, rather than animating multiple colours, I built a tiny lighting system that animates just one colour.

My first task was to slot an overlay layer between the background and my lamps:

<path 
  id="overlay"
  fill="var(--overlay-tint)" 
  [...] 
  style="mix-blend-mode: color"
/>

I used mix-blend-mode: color because that tints what’s beneath it while preserving the underlying luminance. As I only want the overlay to be visible when animations are turned on, I made the overlay opt-in:

.svg-mine #overlay {
  display: none;
}

@media (prefers-reduced-motion: no-preference) {
  .svg-mine[data-animations=on] #overlay {
    display: block;
    opacity: 0.5;
  }
}

The overlay was in place, but not yet connected to the lamps. I needed a light source. My lamps are simple, and each one contains a circle element that I blurred with a filter. The filter produces a very soft blur over the entire circle.

<filter id="lamp-glow-1" x="-120%" y="-120%" width="340%" height="340%">
  <feGaussianBlur in="SourceGraphic" stdDeviation="56"/>
</filter>

Instead of animating the overlay and lamps separately, I animate a single “flame” colour token and derive everything else from that. First, I register three typed custom properties for OKLCH channels:

@property --fl-l {
  syntax: "<number>"; 
  inherits: true;
  initial-value: 0.86;
}
@property --fl-c {
  syntax: "<number>";
  inherits: true;
  initial-value: 0.12;
}
@property --fl-h {
  syntax: "<number>";
  inherits: true;
  initial-value: 95;
}

I animated those channels, deliberately pushing a few frames towards orange so the flicker reads clearly as firelight:

@keyframes flame {
  0%, 100% { --fl-l: 0.86; --fl-c: 0.12; --fl-h: 95; }
  6% { --fl-l: 0.91; --fl-c: 0.10; --fl-h: 92; }
  12% { --fl-l: 0.83; --fl-c: 0.14; --fl-h: 100; }
  18% { --fl-l: 0.88; --fl-c: 0.11; --fl-h: 94; }
  24% { --fl-l: 0.82; --fl-c: 0.16; --fl-h: 82; }
  30% { --fl-l: 0.90; --fl-c: 0.12; --fl-h: 90; }
  36% { --fl-l: 0.79; --fl-c: 0.17; --fl-h: 76; }
  44% { --fl-l: 0.87; --fl-c: 0.12; --fl-h: 96; }
  52% { --fl-l: 0.81; --fl-c: 0.15; --fl-h: 102; }
  60% { --fl-l: 0.89; --fl-c: 0.11; --fl-h: 93; }
  68% { --fl-l: 0.83; --fl-c: 0.16; --fl-h: 85; }
  76% { --fl-l: 0.91; --fl-c: 0.10; --fl-h: 91; }
  84% { --fl-l: 0.85; --fl-c: 0.14; --fl-h: 98; }
  92% { --fl-l: 0.80; --fl-c: 0.17; --fl-h: 74; }
}

Then I scoped that animation to the SVG, so the shared variables are available to both the lamps and my overlay:

@media (prefers-reduced-motion: no-preference) {
  .svg-mine[data-animations=on] {
    animation: flame 3.6s infinite linear;
    isolation: isolate;

    /* Build a flame colour from animated channels */
    --flame: oklch(var(--fl-l) var(--fl-c) var(--fl-h));

    /* Lamp colour derived from flame */
    --lamp-core: oklch(from var(--flame) calc(l + 0.05) calc(c * 0.70) h);

    /* Overlay tint derived from the same flame */
    --overlay-tint: oklch(from var(--flame)
      calc(l + 0.06) calc(c * 0.65) calc(h - 10));
  }
}

Finally, I applied those derived colours to the glowing lamps and the overlay they affect:

@media (prefers-reduced-motion: no-preference) {
  .svg-mine[data-animations=on] #mine-lamp-1 > circle,
  .svg-mine[data-animations=on] #mine-lamp-2 > circle {
    fill: var(--lamp-core);
  }

  .svg-mine[data-animations=on] #overlay {
    display: block;
    fill: var(--overlay-tint);
    opacity: 0.5;
  }
}

When the flame shifts toward orange, the lamps warm up, and the scene warms with them. When the flame cools, everything settles together. The best part is that nothing is written manually. If I change the foundation colour or tweak the flame animation ranges, the entire lighting system updates simultaneously.

You can see the final result on my website.

Reuse, Repurpose, Revisited

Those Hanna-Barbera animators were forced to repurpose elements out of necessity, but I reuse colours because it makes my work more consistent and easier to maintain. CSS relative colour values allow me to:

  • Define a single foundation colour,
  • Describe how other colours relate to it,
  • Reuse those relationships everywhere, and
  • Animate the system by changing one value.

Relative colour doesn’t just make theming easier. It encourages a way of thinking where colour, like motion, is intentional — and where changing one value can transform an entire scene without rewriting the work beneath it.

UX And Product Designer’s Career Paths In 2026

As the new year begins, I often find myself in a strange place — reflecting back at the previous year or looking forward to the year ahead. And as I speak with colleagues and friends at the time, it typically doesn’t take long for a conversation about career trajectory to emerge.

So I thought I’d share a few thoughts on how to shape your career path as we are looking ahead to 2026. Hopefully you’ll find it useful.

Run A Retrospective For Last Year

To be honest, for many years, I was mostly reacting. Life was happening to me, rather than me shaping the life that I was living. I was making progress reactively and I was looking out for all kinds of opportunities. It was easy and quite straightforward — I was floating and jumping between projects and calls and making things work as I was going along.

Years ago, my wonderful wife introduced one little annual ritual which changed that dynamic entirely. By the end of each year, we sit with nothing but paper and pencil and run a thorough retrospective of the past year — successes, mistakes, good moments, bad moments, things we loved, and things we wanted to change.

We look back at our memories, projects, and events that stood out that year. And then we take notes for where we stand in terms of personal growth, professional work, and social connections — and how we want to grow.

These are the questions I’m trying to answer there:

  • What did I find most rewarding and fulfilling last year?
  • What fears and concerns slowed me down the most?
  • What could I leave behind, give away or simplify?
  • What tasks would be good to delegate or automate?
  • What are my 3 priorities to grow this upcoming year?
  • What times do I block in my calendar for my priorities?

It probably sounds quite cliche, but these 4–5h of our time every year set a foundation for changes to introduce for the next year. This little exercise shapes the trajectory that I’ll be designing and prioritizing next year. I can’t recommend it enough.

UX Skills Self-Assessment Matrix

Another little tool that I found helpful for professional growth is UX Skills Self-Assessment Matrix (Figma template) by Maigen Thomas. It’s a neat little tool that’s designed to help you understand what you’d like to do more of, what you’d prefer to do less, and where your current learning curve lies vs. where you feel confident in your expertise.

The exercise typically takes around 20–30 minutes, and it helps identify the UX skills with a sweet spot — typically the upper half of the canvas. You’ll also pinpoint areas where you’re improving, and those where you are already pretty good at. It’s a neat reality check — and a great reminder once you review it year after year. Highly recommended!

UX Career Levels For Design Systems Teams

A while back, Javier Cuello has put together a Career Levels For Design System Teams (Figma Kit), a neat little helper for product designers looking to transition into design systems teams or managers building a career matrix for them. The model maps progression levels (Junior, Semi-Senior, Senior, and Staff) to key development areas, with skills and responsibilities required at each stage.

What I find quite valuable in Javier’s model is the mapping of strategy and impact, along with systematic thinking and governance. While as designers we often excel at tactical design — from elegant UI components to file organization in Figma — we often lag a little bit behind in strategic decisions.

To a large extent, the difference between levels of seniority is moving from tactical initiatives to strategic decisions. It’s proactively looking for organizational challenges that a system can help with. It’s finding and inviting key people early. It’s also about embedding yourself in other teams when needed.

But it’s also keeping an eye out for situations when design systems fail, and paving the way to make it more difficult to fail. And: adapting the workflow around the design system to ship on a tough deadline when needed, but with a viable plan of action on how and when to pay back accumulating UX debt.

Find Your Product Design Career Path

When we speak about career trajectory, it’s almost always assumed that the career progression inevitably leads to management. However, this hasn’t been a path I preferred, and it isn’t always the ideal path for everyone.

Personally, I prefer to work on intricate fine details of UX flows and deep dive into complex UX challenges. However, eventually it might feel like you’ve stopped growing — perhaps you’ve hit a ceiling in your organization, or you have little room for exploration and learning. So where do you go from there?

A helpful model to think about your next steps is to consider Ryan Ford’s Mirror Model. It explores career paths and expectations that you might want to consider to advocate for a position or influence that you wish to achieve next.

That’s typically something you might want to study and decide on your own first, and then bring it up for discussion. Usually, there are internal opportunities out there. So before changing the company, you can switch teams, or you could shape a more fulfilling role internally.

You just need to find it first. Which brings us to the next point.

Proactively Shaping Your Role

I keep reminding myself of Jason Mesut’s observation that when we speak about career ladders, it assumes that we can either go up, down, or fall off. But in reality, you can move up, move down, and move sideways. As Jason says, “promoting just the vertical progression doesn’t feel healthy, especially in such a diverse world of work, and diverse careers ahead of us all.”

So, in the attempt to climb up, perhaps consider also moving sideways. Zoom out and explore where your interests are. Focus on the much-needed intersection between business needs and user needs. Between problem space and solution space. Between strategic decisions and operations. Then zoom in. In the end, you might not need to climb anything — but rather just find that right spot that brings your expertise to light and makes the biggest impact.

Sometimes these roles might involve acting as a “translator” between design and engineering, specializing in UX and accessibility. They could also involve automating design processes with AI, improving workflow efficiency, or focusing on internal search UX or legacy systems.

These roles are never advertised, but they have a tremendous impact on a business. If you spot such a gap and proactively bring it to senior management, you might be able to shape a role that brings your strengths into the spotlight, rather than trying to fit into a predefined position.

What About AI?

One noticeable skill that is worth sharpening is, of course, around designing AI experiences. The point isn’t about finding ways to replace design work with AI automation. Today, it seems like people crave nothing more than actual human experience — created by humans, with attention to humans’ needs and intentions, designed and built and tested with humans, embedding human values and working well for humans.

If anything, we should be more obsessed with humans, not with AI. If anything, AI amplifies the need for authenticity, curation, critical thinking, and strategy. And that’s a skill that will be very much needed in 2026. We need designers who can design beautiful AI experiences (and frankly, I do have a whole course on that) — experiences people understand, value, use, and trust.

No technology can create clarity, structure, trust, and care out of poor content, poor metadata, and poor value for end users. If we understand the fundamentals of good design, and then design with humans in mind, and consider humans’ needs and wants and struggles, we can help users and businesses bridge that gap in a way AI never could. And that’s what you and perhaps your renewed role could bring to the table.

Wrapping Up

The most important thing about all these little tools and activities is that they help you get more clarity. Clarity on where you currently stand and where you actually want to grow towards.

These are wonderful conversation starters to help you find a path you’d love to explore, on your own or with your manager. However, just one thing I’d love to emphasize:

Absolutely, feel free to refine the role to amplify your strengths, rather than finding a way to match a particular role perfectly.

Don’t forget: you bring incredible value to your team and to your company. Sometimes it just needs to be highlighted or guided to the right spot to bring it into the spotlight.

You’ve got this — and happy 2026! ✊🏼✊🏽✊🏾

Meet “Design Patterns For AI Interfaces”

Meet design patterns that work for AI products in Design Patterns For AI Interfaces, Vitaly’s shiny new video course with practical examples from real-life products — with a live UX training happening soon. Jump to a free preview. Use code SNOWFLAKE to save 20% off!

Meet Design Patterns For AI Interfaces, Vitaly’s video course on interface design & UX.

  • Video + UX Training
  • Video only

Video + UX Training

$ 450.00 $ 799.00

Get Video + UX Training

30 video lessons (10h) + Live UX Training.
100 days money-back-guarantee.

Video only

$ 275.00$ 395.00

Get the video course

30 video lessons (10h). Updated yearly.
Also available as a UX Bundle with 3 video courses.

Useful Resources

  • UX Skills Self-Assessment Matrix (Figma template), by Maigen Thomas
  • “Product Designer’s Career Levels Paths” + PNG, by Ryan Ford
  • Career Decision Map For UX Designers (PNG), by Lily Yue
  • Diverse Career Paths For UX Designers (PNG), by Lily Yue
  • Shaping Designers and Design Teams, by Jason Mesut
  • UX Skills Self-Assessment Map template (Miro), by Paóla Quintero
  • UX Skill Mapping Template (Google Sheets), by Rachel Krause, NN/g
  • “Design Team’s Growth Matrix”, by Shannon E. Thomas
  • Figma Product Design & Writing Career Levels, by Figma
  • Content Design Role Frameworks, by Tempo
  • “UX Research Career Framework”, by Nikki Anderson
  • UX Career Ladders (free eBook), by Christopher Nguyen
  • Product Design Level Expectations, by Aaron James

Penpot Is Experimenting With MCP Servers For AI-Powered Design Workflows

This article is a sponsored by Penpot

Imagine that your Penpot file contains a full icon set in addition to the design itself, which uses some but not all of those icons. If you were to ask an AI such as Claude or Gemini to export only the icons that are being used, it wouldn’t be able to do that. It’s not able to interact with Penpot files.

However, a Penpot MCP server can. It can perform a handpicked number of operations under set rules and permissions, especially since Penpot has an extensive API and even more so because it’s open-source.

The AI’s job is simply to understand your intent, choose the right operation for the MCP server to perform (an export in this case), and pass along any parameters (i.e., icons that are being used). The MCP server then translates this into a structured API request and executes it.

It might help to think of AI as a server in a restaurant that takes your order, the MCP server as both the menu and chef, and the API request as (hopefully) a hot pizza pie on a warm plate.

Why MCP servers, exactly? Well, Penpot isn’t able to understand your intent because it’s not an LLM, nor does it allow third-party LLMs to interact with your Penpot files for the security and privacy of your Penpot data. Although Penpot MCP servers do act as a secure bridge, translating AI intent into API requests using your Penpot files and data as context.

What’s even better is that because Penpot takes a design-expressed-as-code approach, designs can be programmatically created, edited, and analyzed on a granular level. It’s more contextual, more particular, and therefore more powerful in comparison to what other MCP servers offer, and far more thoughtful than the subpar ‘Describe → Generate’ AI workflow that I don’t think anybody really wants. Penpot’s AI whitepaper describes this as the bad approach and the ‘Convert to Code’ approach as the ugly approach, whereas MCP servers are more refined and adaptable.

Features And Technical Details

Before we move on to use cases, here are some features and technical details that further explain how Penpot MCP servers work:

  • Complies with MCP standards;
  • Integrates with the Penpot API for real-time design data;
  • Includes a Python SDK, REST API, plugin system, and CLI tools;
  • Works with any MCP-enabled AI assistant (Claude in VS Code, Claude in Cursor, Claude Desktop, etc.);
  • Supports sharing design context with AI models, and letting them see and understand components;
  • Facilitates communication with Penpot using natural language.

What, then, could MCP servers enable us to do in Penpot, and what have existing experiments already achieved? Let’s take a look.

Penpot MCP Server Use-Cases

If you just want to skip to what Penpot MCP servers can do, Penpot have a few MCP demos stashed in a Google Drive that are more than worth watching. Penpot CEO Pablo Ruiz-Múzquiz mentioned that videos 03, 04, 06, 08, and 12 are their favorites.

An even faster way to summarize MCP servers is to watch the unveiling from Penpot Fest 2025.

Otherwise, let’s take a look at some of the more refined examples that Penpot demonstrated in their public showcase.

Design-to-Code and Back Again (and More)

Running on from what I was saying earlier about how Penpot designs are expressed as code, this means that MCP servers can be used to convert design to code using AI, but also code to design, design to documentation, documentation to design system elements, design to code again based on said design system, and then completely new components based on said design system.

It sounds surreal, but the demo below shows off this transmutability, and it’s not from vague instruction but rather previous design choices, regardless of how they were expressed (design, code, or documentation). There are no surprises — these are simply the decisions that you would’ve made anyway based on previous decisions, executed swiftly.

In the demo, Juan de la Cruz García, Designer at Penpot, frictionlessly transmutes some simple components into documentation, design system elements, code, new components, and even a complete Storybook project like a piece of Play-Doh:

Design-to-Code, Design/Code Validation, And Simple Operations

In a similar demo below, Dominik Jain, Co-Founder at Oraios AI, creates a Node.js web app based on the design before updating the frontend styles, saves names and identifiers to memory to ensure smooth design-to-code translation before checking it for consistency, adds a comment next to the selected shape in Penpot, and then replaces a scribble in Penpot with an adapted component. There’s a lot happening here, but you can see exactly what Dominik is typing into Claude Desktop as well as Claude’s responses, and it’s very robust:

By the way, the previous demo used Claude in VS Code, so I should note that Penpot MCP servers are LLM-agnostic. Your tech stack is totally up to you. IvanTheGeek managed to set up their MCP server with the JetBrains Rider IDE and Junie AI.

More Use Cases

Translate a Penpot board to production-ready semantic HTML and modular CSS while leveraging any Penpot design tokens (remember that Penpot designs are already expressed as code, so this isn’t a shot in the dark):

Generate an interactive web prototype without changing the existing HTML:

As shown earlier, convert a scribble into a component, leveraging existing design and/or design system elements:

Create design system documentation from a Penpot file:

And here are some more use-cases from Penpot and the community:

  • Advanced exports,
  • Search for design elements using natural language,
  • Pull data from external APIs using natural language,
  • Easily connect Penpot to other external tools,
  • Saving repetitive tasks to memory and executing them,
  • Visual regression testing,
  • Design consistency and redundancy checking,
  • Accessibility and usability analysis and feedback,
  • Design system compliance checking,
  • Guideline compliance checking (brand, content, etc.),
  • Monitor adoption and usage with design analytics,
  • Automatically keep documentation in sync with design,
  • Design file organization (e.g., tagging/categorization).

Essentially, Penpot MCP servers lead the way to an infinite number of workflows thanks to the efficiency and ease of your chosen LLM/LLM client, but without exposing your data to it.

What Would You Use MCP Servers For?

Penpot MCP servers aren’t even at the beta stage, but it is an active experiment that you can be a part of. Penpot users have already begun exploring use cases for MCP servers, but Penpot wants to see more. To ensure that the next generation of design tools meets the needs of designers, developers, and product teams in general, they must be built collectively and collaboratively, especially where AI is concerned.

Note: Penpot is looking for beta testers eager to explore, experiment with, and help refine Penpot’s MCP Server. To join, write to support@penpot.app with the subject line “MCP beta test volunteer.”

Is there anything that you feel Penpot MCP servers could do that current tools aren’t able to do well enough, fast enough, or aren’t able to do at all?

You can learn how to set up a Penpot MCP server right here and start tinkering today, or if your brain’s buzzing with ideas already, Penpot want you to join the discussion, share your feedback, and talk about your use-cases. Alternatively, the comment section right below isn’t a bad place to start either!

Countdown To New Adventures (January 2026 Wallpapers Edition)

A new year is the perfect opportunity to break free from routines, reset habits, and refine how you do things. And while you may have made plenty of New Year’s resolutions, sometimes it’s the small changes that work wonders — a tidy desktop and a new wallpaper, for example, that give you a little motivation boost when you need it.

In this post, you’ll find desktop wallpapers to accompany you through your first adventures of 2026, to make you smile, and to bring some happy pops of color to a cold and dark winter day. As every month since we started our monthly wallpapers series more than 14 years ago, all of them were created with love by artists and designers from across the globe and can be downloaded for free.

A huge thank-you to everyone who shared their designs with us this month — you are truly smashing! Have a happy and healthy new year, everyone!

  • You can click on every image to see a larger preview.
  • We respect and carefully consider the ideas and motivation behind each and every artist’s work. This is why we give all artists the full freedom to explore their creativity and express emotions and experience through their works. This is also why the themes of the wallpapers weren’t anyhow influenced by us but rather designed from scratch by the artists themselves.
  • Submit your wallpaper design! 🎨
    We are always looking for creative talent and would love to feature your desktop wallpaper in one of our upcoming posts. Join in ↬

Moonwalker

Designed by Ricardo Gimenes from Spain.

  • preview
  • with calendar: 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 3840×2160
  • without calendar: 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 3840×2160

Home Office

Designed by Ricardo Gimenes from Spain.

  • preview
  • with calendar: 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 3840×2160
  • without calendar: 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 3840×2160

Winter Magic At Home

“Snow drifted quietly as a child and their loyal dog paused beside the glowing Christmas tree, each ornament holding a small piece of winter wonder. In that still moment, the cold faded away, replaced by warmth, curiosity, and the simple joy of being together.” — Designed by PopArt Studio from Serbia.

  • preview
  • with calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Enjoy The Little Things

“Inspired by the little things in life! Stop for a moment and look around — find the little things that can bring true joy to you. This illustration is hand-drawn on a piece of paper, then scanned and adjusted with Photoshop (for the calendar UI). No AI tools have been used! Enjoy!” — Designed by Martin Nikolchev from Bulgaria.

  • preview
  • with calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

A Message Of Peace And Hope

“In the city where I live, the weather in January could be unpredictable. Sometimes it is freezing cold, and sometimes there is rain and no snow at all. I like it when there is an open sky and the sun is shining. The sky is cold and has a wonderful blue color, especially in the evenings. You look at it and think about what heart desires the most.” — Designed by Wolfie from Russia.

  • preview
  • with calendar: 1366×768, 1440×900, 1600×900, 1920×1080, 2560×1440
  • without calendar: 1366×768, 1440×900, 1600×900, 1920×1080, 2560×1440

Snowflakes

Designed by Eike Otto from Berlin, Germany.

  • preview
  • with calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1440×900, 1440×1050, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1440×900, 1440×1050, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440

Blue Monday

“Blue Monday may be a PR stunt, but your mental health isn’t. Do your best to protect it all year round.” — Designed by Ginger It Solutions from Serbia.

  • preview
  • with calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Open The Doors Of The New Year

“January is the first month of the year and usually the coldest winter month in the Northern hemisphere. The name of the month of January comes from ‘ianua’, the Latin word for door, so this month denotes the door to the new year and a new beginning. Let’s open the doors of the new year together and hope it will be the best so far!” — Designed by PopArt Studio from Serbia.

  • preview
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Winter Leaves

Designed by Nathalie Ouederni from France.

  • preview
  • without calendar: 320×480, 1024×768, 1280×1024, 1440×900, 1600×1200, 1680×1200, 1920×1200, 2560×1440

Bird Bird Bird Bird

“Just four birds, ready for winter.” — Designed by Vlad Gerasimov from Georgia.

  • preview
  • without calendar: 800×480, 800×600, 1024×600, 1024×768, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1440×960, 1600×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 2560×1600, 2880×1800, 3072×1920, 3840×2160, 5120×2880

Start Somewhere

“If we wait until we’re ready, we’ll be waiting for the rest of our lives. Start today — somewhere, anywhere.” — Designed by Shawna Armstrong from the United States.

  • preview
  • without calendar: 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Squirrel Appreciation Day

“Join us in honoring our furry little forest friends this Squirrel Appreciation Day! Whether they’re gathering nuts, building cozy homes, or brightening up winter days with their playful antics, squirrels remind us to treasure nature’s small wonders. Let’s show them some love today!” — Designed by PopArt Studio from Serbia.

  • preview
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Cold… Penguins!

“The new year is here! We waited for it like penguins. We look at the snow and enjoy it! — Designed by Veronica Valenzuela from Spain.

  • preview
  • without calendar: 640×480, 800×480, 1024×768, 1280×720, 1280×800, 1440×900, 1600×1200, 1920×1080, 1920×1440, 2560×1440

Cheerful Chimes City

Designed by Design Studio from India.

  • preview
  • without calendar: 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Boom!

Designed by Elise Vanoorbeek from Belgium.

  • preview
  • without calendar: 1024×768, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Peaceful Mountains

“When all the festivities are over, all we want is some peace and rest. That’s why I made this simple flat art wallpaper with peaceful colors.” — Designed by Jens Gilis from Belgium.

  • preview
  • without calendar: 640×480, 800×600, 1024×768, 1152×864, 1280×720, 1280×800, 1280×960, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Yogabear

Designed by Ricardo Gimenes from Spain.

  • preview
  • without calendar: 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 3840×2160

Be Awesome Today

“A little daily motivation to keep your cool during the month of January.” — Designed by Amalia Van Bloom from the United States.

  • preview
  • without calendar: 640×960, 1024×768, 1280×800, 1280×1024, 1440×900, 1920×1200, 2560×1440

A Fresh Start

Designed by Ricardo Gimenes from Spain.

  • preview
  • without calendar: 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 3840×2160

Winter Getaway

“What could be better than a change of scene for a week? Even if you are too busy, just think about it.” — Designed by Igor Izhik from Canada.

  • preview
  • without calendar: 1024×768, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 2560×1600

Happy New Year ’86

Designed by Ricardo Gimenes from Spain.

  • preview
  • without calendar: 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 3840×2160

Angel In Snow

Designed by Brainer from Ukraine.

  • preview
  • without calendar: 800×600, 1024×768, 1152×864, 1280×800, 1280×960, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1260, 1920×1200, 1920×1440

January Fish

“My fish tank at home inspired me to make a wallpaper with a fish.” — Designed by Arno De Decker from Belgium.

  • preview
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Dare To Be You

“The new year brings new opportunities for each of us to become our true selves. I think that no matter what you are — like this little monster — you should dare to be the true you without caring what others may think. Happy New Year!” — Designed by Maria Keller from Mexico.

  • preview
  • without calendar: 320×480, 640×480, 640×1136, 750×1334, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1242×2208, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1440, 2560×1440, 2880×1800

Oaken January

“In our country, Christmas is celebrated in January when oak branches and leaves are burnt to symbolize the beginning of the new year and new life. It’s the time when we gather with our families and celebrate the arrival of the new year in a warm and cuddly atmosphere.” — Designed by PopArt Studio from Serbia.

  • preview
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

The Little Paradox

Designed by Ricardo Gimenes from Spain.

  • preview
  • without calendar: 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440, 3840×2160

New Year’s Resolution

Designed by Elise Vanoorbeek from Belgium.

  • preview
  • without calendar: 800×480, 1024×768, 1152×864, 1280×800, 1280×960, 1440×1050, 1400×900, 1680×1050, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Don Quijote, Here We Go!

“This year we are going to travel through books, and you couldn’t start with a better one than Don Quijote de la Mancha!” — Designed by Veronica Valenzuela Jimenez from Spain.

  • preview
  • without calendar: 640×480, 800×480, 1024×768, 1280×720, 1280×800, 1440×900, 1600×1200, 1920×1080, 1920×1440, 2560×1440

Rubber Ducky Day

“Winter can be such a gloomy time of the year. The sun sets earlier, the wind feels colder, and our heating bills skyrocket. I hope to brighten up your month with my wallpaper for Rubber Ducky Day!” — Designed by Ilya Plyusnin from Belgium.

  • preview
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

A New Beginning

“I wanted to do a lettering-based wallpaper because I love lettering. I chose January because for a lot of people the new year is perceived as a new beginning and I wish to make them feel as positive about it as possible! The idea is to make them feel like the new year is (just) the start of something really great.” — Designed by Carolina Sequeira from Portugal.

  • preview
  • without calendar: 320×480, 1280×1024, 1680×1050, 2560×1440

Japanese New Year

Designed by Evacomics from Singapore.

  • preview
  • without calendar: 320×480, 768×1024, 1024×768, 1280×800, 1280×1024, 1440×900, 1920×1080, 2560×1440

Happy Hot Tea Month

“You wake me up to a beautiful day; lift my spirit when I’m feeling blue. When I’m home you relieve me of the long day’s stress. You help me have a good time with my loved ones; give me company when I’m all alone. You’re none other than my favourite cup of hot tea.” — Designed by Acodez IT Solutions from India.

  • preview
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Don’t Forget Your Vitamins

“Discover the seasonal fruits and vegetables. In January: apple and banana enjoying the snow!” — Designed by Vitaminas Design from Spain.

  • preview
  • without calendar: 320×480, 1280×800, 1280×1024, 1440×900, 1920×1080, 2560×1440

Wolf Month

“Wolf-month (in Dutch ‘wolfsmaand’) is another name for January.” — Designed by Chiara Faes from Belgium.

  • preview
  • without calendar: 640×480, 800×600, 1024×768, 1152×864, 1280×720, 1280×800, 1280×960, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1920×1080, 1920×1200, 1920×1440, 2560×1440

A New Start

“The new year brings hope, festivity, lots and lots of resolutions, and many more goals that need to be achieved.” — Designed by Damn Perfect from India.

  • preview
  • without calendar: 320×480, 640×480, 800×480, 800×600, 1024×768, 1024×1024, 1152×864, 1280×720, 1280×800, 1280×960, 1280×1024, 1366×768, 1400×1050, 1440×900, 1600×1200, 1680×1050, 1680×1200, 1920×1080, 1920×1200, 1920×1440, 2560×1440

Get Featured Next Month

Feeling inspired? We’ll publish the February wallpapers on January 31, so if you’d like to be a part of the collection, please don’t hesitate to submit your design. We are already looking forward to it!

Pivoting Your Career Without Starting From Scratch

Has work felt “different” to you? You show up, do your work, fix what needs fixing, and get the job done, but the excitement isn’t quite the same anymore. Maybe the work has become too routine, or maybe you’ve grown in a way your role hasn’t kept up with. You catch yourself thinking, “I’ve been doing this for years, but where do I go from here?”

It’s not always about the burnouts or frustrations. Sometimes it’s just curiosity. You’ve learned a lot, built things, solved problems, and now a small part of you wants to see what else you can do. Maybe the rise of AI is making you look at your job differently, or maybe you feel ready for a new kind of challenge that does not look like your current day-to-day.

I have seen many people across different fields go through this. Developers moving into product work, designers shifting to UX research, engineers getting into teaching, or support folks building communities. Everyone reaches that point where they want their work to feel meaningful again.

The good thing is you are not starting from zero. The experience you already have, like solving problems, making decisions, working, and communicating with people, those are real, valuable skills that carry over anywhere. Most of the time, the next step is not about leaving tech behind. It’s about finding where your skills make the most sense next.

This article is about that: How to rethink your path when things start to feel a bit stale, and how to move toward something new without losing everything you’ve built so far.

Redefining Your Toolkit

When people start thinking about changing careers, the first thing they usually do is focus on what they do not have. The missing skills, the new tools they need to learn, or how far behind they feel. It is a normal reaction, but it is not always the best place to begin.

Instead, try looking at what is already there. You have probably built more useful skills than you realize. Many of us get used to describing ourselves by our job titles, such as developer, designer, or analyst, but those titles do not fully explain what we actually do. They just tell us where we sit on a team. The real story is the work behind the title.

Think of a developer, for example. On paper, the job is to write code, but in reality, a developer spends most of their time solving problems, making decisions, and building systems that make sense to other people. The same goes for designers. They do not just make things look good; they pay attention to how people think, how they move through a screen, and how to make something feel clear and simple.

Your skills don’t disappear when your title changes. They just find new ways to show up.

These are what people call transferable skills, but you do not need the fancy term to get the idea. These are abilities that stay useful no matter where you go. Problem-solving, curiosity, clear communication, empathy, and learning fast — these are the things that make you good at what you do, even if the tools or roles change.

You already use them more than you think. When you fix a bug, you are learning how to track a problem back to its roots. When you explain a technical idea to someone non-technical, you are practicing clarity. When you deal with tight deadlines, you are learning how to manage priorities. None of these disappear if you switch fields. You apply it somewhere else.

So, before you worry about what you do not know, take a moment to see what you already do well. Write it down if you have to. Not just the tasks, but the thinking behind them. That is where your real value is.

Four Real-World Paths to Explore

Once you start seeing your skills beyond your job title, you may realize how many directions you can actually take. The tech world keeps changing fast: tools change, teams change, new roles show up every year, and people move in ways they never planned.

Here are four real paths that many people in tech are taking today.

From To What Changes Why It Works
Developer Product Manager You move from building the product to shaping what gets built and why. Developers already understand tradeoffs, user needs, and how features come together. That is product thinking in action.
Engineer Developer Advocate You focus less on code delivery and more on helping others succeed with your product. You already know the technology inside out, so turning that knowledge into clear communication makes you a natural teacher.
Back-end Engineer Solutions Engineer You bring your problem-solving mindset to real client challenges. It is not about selling, it is about understanding problems deeply and building trust through technical skill.
Designer UX Researcher or Service Designer You shift from visuals to understanding how people think, feel, and interact. Good design starts with empathy, and that same skill fits perfectly in research and experience design.

What many people discover when they take one of these steps is that their daily work changes, not their identity. The tools and routines might be different, but the core way they think and solve problems stays the same.

The biggest change is usually perspective. Instead of focusing on how something gets built, you begin to care more about why it matters, who it helps, and what impact it has. For many people, that shift often brings back the excitement they might have lost somewhere along the way.

Your First Steps Towards A New Path

When you find a direction that feels interesting, the next step is figuring out how to move toward it without losing your footing where you are. This is where curiosity turns into a plan.

1. Take A Look At What You Bring

Start by checking your strengths. It does not have to be anything complex. Write down what you do well, what feels natural to you, and what people usually ask you for help with.

If you want a simple guide, Learning People has a good breakdown for auditing your personal skills, including a template for identifying and evaluating your skills. Try filling it out; it’s well worth the few minutes it takes to complete.

After listing your strengths, try matching them with roles you’re curious about. For example, if you’re a developer who enjoys explaining things, that could connect well with mentoring, writing tutorials, or developer advocacy.

2. Learn By Getting Close To It

Job descriptions aren’t a perfect reflection of the realities of working a specific job. Talking with people who do that job will. So, reach out to people who already do what you’re interested in and ask them what their day-to-day looks like, what parts they enjoy, and what surprised them when they started.

And if possible, shadow someone or volunteer to help on a project. You don’t need a job change to explore something new. Short, hands-on experiences often teach you far more than any course, and many people are more than willing to take you under their wing, especially if you are offering your time and help in exchange for experience.

3. Build Proof Through Small Experiments

Do something small that points in the direction you want to go. Maybe build a simple tool, write a short piece about what you’re learning, or help a local startup or open-source team. These don’t need to be perfect, but they just need to exist. They show direction, not completion.

Blogging has always been a perfect way to share your learning path and demonstrate your excitement about it. Plus, it establishes a track record of the knowledge you acquire.

4. Shape Your Story As You Grow

Instead of going with the idea of “I’m switching careers,” try thinking of it as “I’m building on what I already do.” That simple shift makes your journey clearer. It shows that you’re not starting from zero — you’re simply moving forward with more intention.

Navigating The Mental Hurdles

Every career shift, even when it feels exciting, comes with doubts. You might ask yourself, “What if I’m not ready?” or “What if I can’t keep up?” These thoughts are more common than people admit.

Imposter Syndrome

One fear that shows up a lot is imposter syndrome, that feeling you do not belong or that others are “better” or “smarter” at something than you. A recent piece from Nordcloud shared that more than half (58%) of IT professionals have felt this at some point in their career.

Comparison is a silent thief of confidence. Seeing others move faster can make you feel late. But everyone has different opportunities and different timing. What matters is the direction you are moving in, not how fast you go.

Here’s a thought worth remembering:

People who have successfully changed their careers did not wait until they felt brave. Most of them still had doubts, but they just moved anyway, one small step at a time.

Starting Again

Another worry is the idea of starting over. You may feel that you’ve spent too many years in one space to move into another. But you are not returning to the beginning. You are moving with experience. Your habits, discipline, and problem-solving stay with you. They just show up in a different way.

It’s hard — and self-defeating — to imagine the work it takes to start all over again, especially when you have invested many years into what you do. But remember, it’s not always too late. Even Kurt Vonnegut was 47 when he wrote his seminal book, Slaughterhouse Five. You can still enjoy a very long and fruitful career, even in middle age.

Finances

Money and stability also weigh a lot. The fear of losing income or looking uncertain can hold you back. And everyone’s money situation can be wildly different. You may have family to support, big loans to pay back, a lack of reserves, or any number of completely valid reasons for not wanting to give up a steady paycheck when you’re already receiving one.

A simple way to reduce that pressure is to start with small steps. Take a small side gig, try part-time work, or help on a short project in the area you’re curious about. These small tests give you clarity without shaking your foundation.

Conversations With Industry Experts

Below are short interviews with a handful of tech professionals serving in different roles. I wanted to talk with real people who have recently switched careers or are in the process of doing so because it helps illustrate the wide range of situations, challenges, and opportunities you might expect to encounter in a career change.

Thomas Dodoo: Graphic Designer, 5 Years Of Experience

Background: Thomas has an IT background. He first got interested in tech through game development in school, but later discovered that design was what he enjoyed more. Over time, he moved fully into graphic design and branding.

Question: When you were starting, what confused you the most about choosing your path?

Thomas: I wasn’t sure if I should stay with game development or follow design. I liked both, but design came more naturally, so I just kept learning little by little.

Question: Was there a moment that made you take your design work more seriously?

Thomas: Yes, the first time someone trusted me with their full brand. It made me realise this could be more than a hobby.

Question: What skills did you carry over from development into your design work?

Thomas: My background in development helped me think more logically about design. I break things down, think in steps, and focus on how things work, not just how they look.

Adwoa Mensah: Product Manager, 4 Years Of Experience

Background: Adwoa moved from software testing to product management.

Question: When did you realize it was time to change careers?

Adwoa: I realised it when I started caring more about why things were being built, not just checking if they worked. I enjoyed asking questions, giving input, and thinking about the bigger picture, and testing alone started to feel limiting.

Question: What new skills did you need to learn to move into your new field?

Adwoa: I had to learn how to communicate better, especially with designers, developers, and stakeholders. I also worked on planning, prioritising work, and understanding users more deeply. I learned most of this by watching product managers I worked with, asking questions, reading, and slowly taking on more responsibility on real projects.

Konstantinos Tournas: AI Engineer

Background: Konstantinos started programming with zero experience. He had no technical background at first, but he developed a strong interest in artificial intelligence and worked his way into the field.

Question: What moments in your journey made you question yourself, and how did you move past them?

Konstantinos: There were many moments in my career journey when I doubted myself, mainly because I started completely from zero, with no programming background and no connections in the field. What helped me push through was the motivation I had to learn and my genuine love for artificial intelligence. Every time I questioned myself, I reminded myself where I started and how far I had come in such a short amount of time.

Question: When you feel pressure or doubt in your work, what helps you stay grounded?

Konstantinos: When I feel pressure or self-doubt, I usually take a walk in nature. It helps me clear my mind and think creatively about how I can improve my work. In programming, the work rarely stops when your shift ends; problems in the code follow you throughout the day, and overcoming them requires creativity. Walking helps me reset and return with better ideas.

Question: How do you deal with comparing yourself to others in your field?

Konstantinos: Even though I’m competitive by nature, I constantly try to learn from others in my field. I don’t like showing off; I prefer listening. I know I can become great at what I do, but that doesn’t happen overnight. Comparison can be healthy, as long as it pushes you to grow rather than discourages you.

Question: What would you say to someone who feels like they are not good enough to pursue the path they want?

Konstantinos: I started programming without a university degree and with an entirely different background. Patience and persistence truly are the keys to success; it might sound cliché, but they were precisely what helped me. In less than six months, with long hours of focused work, consistency, and determination, I managed to get hired for my dream job simply because I believed in myself and wanted it badly enough.

Yinjian Huang: Product Designer (AI, SaaS), 5 Years Of Experience

Background: Yinjian works in product design across AI, SaaS, and B2B products. Her work focuses on building early-stage products, shaping user experience, and working closely with engineering and product teams on AI-driven features.

Question: Looking back, what is one decision you made that you think others in your field could learn from?

Yinjian: Keep learning across disciplines: design, PM, AI, and engineering. The broader your fluency, the better you can design and reason holistically. Cross‑functional knowledge compounds and unlocks better product judgment.

Question: What do you wish you had known about handling stress, workload, or expectations earlier in your career?

Yinjian: Communicate early if the workload is too heavy or a deadline is at risk. Flag constraints, renegotiate scope, and make trade‑offs explicit. Early clarity beats late surprises.

Question: How do you evaluate whether a new opportunity or challenge is worth taking on?

Yinjian: I evaluate opportunities on three axes: the learning delta (skills I’ll gain), the people I’ll work with, and alignment with my interests.

Question: What advice would you give to someone who wants to grow in your field but feels stuck or unsure of where to start?

Yinjian: Growth can feel overwhelming at first because there’s so much to learn. Build a simple roadmap: start by making your craft solid, then expand adjacent skills. Find the best resources, practice relentlessly, and seek feedback on tight cycles. Momentum comes from small, consistent wins.

The Bottom Line

This whole piece is just a reminder that it’s fine to question where you are and want something different. Everyone hits that moment when things stop feeling exciting, and you start wondering what’s next. It doesn’t mean you’ve failed. It usually means you’re growing.

I wrote this because I’ve been in that space too, still figuring out what direction makes the most sense for me. So if you’re feeling stuck or unsure, I hope this gave you something useful. You don’t need to have everything sorted out right now. Just keep learning, stay curious, and take one small step at a time.