Today felt like a normal DAM day which is the whole point of having one. No drama. Just moving files from chaos to use and back again without breaking the flow of work. What a normal day in DAM looks like The morning started with a small traffic jam of…
Year: 2015
Bloomreach and Search: Personalization Foundations
Personalization starts with search. Not banners. Not popups. The box where people type what they want is the best intent signal you get. If we get that right, the rest of the page starts to make sense. BloomReach sits right on that intent. It watches behavior, reshapes queries, and suggests…
Cleaner APIs with Streams
I keep coming back to the same thought when I sketch APIs on a napkin at a cafe: streams make code cleaner. We ship more JSON across the wire every week. We smash more collections into memory than we want to admit. The more I build services, the more I…
JVM Concurrency Models: Lessons Across Languages
We build on the JVM because it is everywhere, runs fast enough, and lets us pick a language that fits our brain. The hard part is not syntax. The hard part is concurrency. Threads, actors, futures, channels, streams. Each one promises less pain, more throughput, fewer late night pages. Today…
The responsive approach that scales
Description: The responsive approach that scales, perspective, decisions, and practical tradeoffs. Story first, pixels later Last week I sat in a room with a product lead, a designer, two engineers, and a marketer who knows their way around spreadsheets and ad tags. The brief sounded simple. Our homepage needs to…
Mobile site or responsive the editorial tradeoffs
Everyone is asking the same thing right now. Do we ship a separate mobile site or go all in on responsive? That question is not just for the design crew. It hits the newsroom and the business side every single day. Why this debate is loud right now Search is…
Multisite Management in AEM: Structure before Scale
Multisite Management in AEM sounds fancy until a rollout splashes across twenty locales and breaks three markets before lunch. With AEM 6.1 fresh on our servers and Touch UI getting real use, the temptation is to stamp out sites first and sort out the tree later. That path is fast…
Bringing Omniture Data to the Team Room
Every team room I visit has screens with burndown charts, Git commits, and a wall with sticky notes that always fall off after lunch. The one thing that rarely makes it to that wall is the voice of the customer in numbers. I mean the actual click paths, search terms,…
Static Analysis that Pays for Itself
Static Analysis that Pays for Itself What if the next bug you prevent saves your sprint before it even starts? That is the bet behind static analysis. Not the buzzword kind. The practical kind that runs in your editor or on your build and points at mistakes you can fix…
Customizing Alfresco Workflows: Practical Notes
I still remember the Friday when a simple approval stalled right before a product launch. Everyone blamed the server. The real issue was a missing property in the workflow model that the task form expected. One tiny mismatch and the whole queue froze. That night taught me this: Alfresco workflows…