Explaining the correct way to match bound functions in Jest tests.
Great ideas often fail.
When you’re working for a large corporation, that notion might be very familiar. It’s often hard to push through your ideas, to implement real change, to transform the organization for the better.
For every yes, there are a dozen no’s, for every win, there’s a dozen losses.
I’ve come to understand over the years, the only real way to make transformative change at a large corporation where politics run deep is to be willing to make compromises and to give up your ideas to someone else, someone who can implement them.
Sometimes we have a vision for a product. To you, that vision might be a no-brainer, a clear path forward, a path that has crazy ROI in the long run.
Most of us have a tendency to take the all or nothing way. If my idea can’t be implemented, it’s a loss. If only we could shift our attitudes towards compromise, we could win so much.
The thought of compromising away 3/4 of your idea, meeting somewhere not-so-in-the-middle might seem disappointing, but it’s a way to make progress. If you have an idea and there is opposition and friction, be willing to accept losses and move on with whatever wins you can extract from that idea. 1/4 of a great idea is better than 0/4 of that great idea.
Giving Up Your Ideas
Sometimes a great idea in your hands might not be actionable, but if it’s pitched to someone in a higher position of authority, or someone in the spotlight, it might go a long way. Having the willingness to pitch your idea to the right set of people, and letting them take credit for the win is crucial in some circumstances when making compromises is simply not enough.
When I got my first job as a software developer 6 years ago, the on-boarding I received consisted of wiki pages, diagrams, keynotes, and many meetings to walk through various architectures and system diagrams.
I thought there had to be a better way, but as a junior developer, I wasn't sure.
There is a better way.
UX design process is often preached as the best way to design the think that suits the customer needs best. Which such process might be highly effective in some cases, it cannot be applied as a one-size-fits-all solution. Teams tasked with solving problems quickly and creatively, should bypass formal UX process for sake of delivering into market quickly, failing fast, and learning from the experiments.
Recently I was working on building a DoJo-based widget (DoJo 1.X uses VanillaJS in the background) and I've spent a lot of time trying to figure out why a globally-defined array is getting updated across different instances of that widget.
New this week, Liberty Mutual's responsive policy quoting and bind website (currently available for Renters insurance on mobile devices 9" and smaller) boasts a clean and modern design, heavy reliance on native HTML5 functionality and a streamlined interview process.
Now that this application is public, I've decided to post a short design analysis outlining key new features behind the new application, which has been designed with the customer in mind from the first page, to the last.
The world of CSS just keeps getting better as new specs are introduced and eventually adopted by major browsers. One of those exciting specs is CSS Masking. While not fully supported across the major browser line up, it’s an interesting addition that’s generating a lot of attention. One absolutely outstanding example of what can be achieved with css masking is a project by Bryan James - Species in Pieces that showcases a collection of endangered species, made and animated using clip-path.
Defined in the CSS Masking Module Level 1 spec, CSS masking provides two ways to hide sections of full images or objects: masking and clipping. Masking allows the use of another element to create a luminance or an alpha mask. Clipping simply provides a mechanism to only show a certain section of an object. Think of it as taking scissors and cutting a part of a piece of paper into a shape you want.
In this post, I want to explore specifically the clip-path property and show a quick example of what can be achieved by it.