41554 blogs · [ { "id": "01a0879b-984a-7130-806f-4786e9be0da5", "title": "Bootstrapping All the Way Up: Build the System That Builds the System", "url": "https://liviutudor.com/2026/06/08/bootstrapping-all-the-way-up-build-the-system-that-builds-the-system/", "published_at": "2026-06-08T16:14:54+00:00" }, { "id": "01a0879b-984a-7130-806f-4786ea9995d9", "title": "Stop Building Systems. Build the System That Builds Them.", "url": "https://liviutudor.com/2026/06/02/stop-building-systems-build-the-system-that-builds-them/", "published_at": "2026-06-02T14:49:06+00:00" }, { "id": "01a0879b-984a-7130-806f-4786eb31d26e", "title": "Ideas Were Never Cheap. Execution Just Got Free.", "url": "https://liviutudor.com/2026/05/30/ideas-were-never-cheap-execution-just-got-free/", "published_at": "2026-05-30T20:27:10+00:00" }, { "id": "01a0879b-984a-7130-806f-4786ebdd26c0", "title": "20 Years of liviutudor.com: From ‘New Error’ to AI Era", "url": "https://liviutudor.com/2026/05/06/20-years-of-liviutudor-com-from-new-error-to-ai-era/", "published_at": "2026-05-06T19:26:00+00:00" }, { "id": "01a0879b-984a-7130-806f-4786ec684219", "title": "Agents, MCP, and what a 19-hour build changed about how I think", "url": "https://liviutudor.com/2026/04/23/agents-mcp-and-what-a-19-hour-build-changed-about-how-i-think/", "published_at": "2026-04-23T22:51:43+00:00" }, { "id": "01a0879b-984a-7130-806f-4786eced445c", "title": "Voice + MCP: The Interface That Finally Kills the Dashboard", "url": "https://liviutudor.com/2026/04/10/voice-mcp-the-interface-that-finally-kills-the-dashboard/", "published_at": "2026-04-10T20:18:25+00:00" }, { "id": "01a0879b-984a-7130-806f-4786ed3ed357", "title": "UIs Are Becoming Optional — MCP and the End of the Dashboard Era", "url": "https://liviutudor.com/2026/04/09/uis-are-becoming-optional-mcp-and-the-end-of-the-dashboard-era/", "published_at": "2026-04-09T20:09:54+00:00" }, { "id": "01a0879b-984a-7130-806f-4786ed81e43c", "title": "The AI-Native Product: What Happens When You Design for AI Consumers First", "url": "https://liviutudor.com/2026/04/04/the-ai-native-product-what-happens-when-you-design-for-ai-consumers-first/", "published_at": "2026-04-04T17:31:08+00:00" }, { "id": "01a0879b-984a-7130-806f-4786ee324fc7", "title": "Buy vs Build in the Age of AI: The Calculus Has Changed", "url": "https://liviutudor.com/2026/03/31/buy-vs-build-in-the-age-of-ai-the-calculus-has-changed/", "published_at": "2026-03-31T05:38:10+00:00" }, { "id": "01a0879b-984a-7130-806f-4786ee5c6bd3", "title": "Building a Privacy-First Product with AI as Your Engineering Partner", "url": "https://liviutudor.com/2026/03/25/building-a-privacy-first-product-with-ai-as-your-engineering-partner/", "published_at": "2026-03-25T16:18:50+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb3cfb5e9", "title": "How AI Wrote Seven Blog Posts for My Product in Forty Minutes", "url": "https://liviutudor.com/2026/03/21/how-ai-wrote-seven-blog-posts-for-my-product-in-forty-minutes/", "published_at": "2026-03-21T18:53:31+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb443e682", "title": "How I Revived a 3-Year Side Project in One Week Using AI Agents", "url": "https://liviutudor.com/2026/03/07/how-i-revived-a-3-year-side-project-in-one-week-using-ai-agents/", "published_at": "2026-03-07T19:02:46+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb5374e57", "title": "A 10-Year-Old Just Made the News — and He’s My Son", "url": "https://liviutudor.com/2026/02/26/a-10-year-old-just-made-the-news-and-hes-my-son/", "published_at": "2026-02-26T23:11:06+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb5fea0b7", "title": "AI Engineering: Doing the Right Thing vs Doing the Thing Right — And Why It Matters", "url": "https://liviutudor.com/2025/12/05/ai-engineering-doing-the-right-thing-vs-doing-the-thing-right-and-why-it-matters/", "published_at": "2025-12-05T21:53:03+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb61624d4", "title": "“Error: -1”, a trip down memory lane", "url": "https://liviutudor.com/2025/06/19/error-1-a-trip-down-memory-lane/", "published_at": "2025-06-19T17:55:55+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb6f5570e", "title": "AI-Generated Code and the Trust Factor", "url": "https://liviutudor.com/2025/05/19/ai-generated-code-and-the-trust-factor/", "published_at": "2025-05-19T15:13:31+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb7caed01", "title": "Happy 19th birthday to my blog!", "url": "https://liviutudor.com/2025/05/06/happy-19th-birthday-to-my-blog/", "published_at": "2025-05-07T02:00:00+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb8548e44", "title": "Build vs Buy in the AI Era", "url": "https://liviutudor.com/2025/05/01/build-vs-buy-in-the-ai-era/", "published_at": "2025-05-01T12:54:03+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb8e51b9b", "title": "Next iteration of software engineers", "url": "https://liviutudor.com/2025/03/31/next-iteration-of-software-engineers/", "published_at": "2025-03-31T14:00:00+00:00" }, { "id": "01a0bb4e-40a9-7136-9d35-d08bb9790dc6", "title": "Thoughts on AI from a software engineer (at heart)", "url": "https://liviutudor.com/2025/03/25/thoughts-on-ai-from-a-software-engineer-at-heart/", "published_at": "2025-03-25T22:31:34+00:00" }, { "id": "01a0bb58-4de7-712c-b3c1-bf63a1fdb247", "title": "Implementing a “Login with Microsoft” for a web app", "url": "https://liviutudor.com/2021/10/11/implementing-a-login-with-microsoft-for-a-web-app/", "published_at": "2021-10-11T16:00:37+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e6f853eb", "title": "The problem with calendars nowadays", "url": "https://liviutudor.com/2021/08/12/the-problem-with-calendars-nowadays/", "published_at": "2021-08-13T05:41:00+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e70b97f2", "title": "Experience or institutional knowledge?", "url": "https://liviutudor.com/2020/08/31/experience-or-institutional-knowledge/", "published_at": "2020-08-31T15:47:43+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e740bcd0", "title": "Working with senior engineers", "url": "https://liviutudor.com/2020/08/17/working-with-senior-engineers/", "published_at": "2020-08-17T15:00:00+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e760544e", "title": "Polyglot or poly-framework?", "url": "https://liviutudor.com/2020/08/13/polyglot-or-poly-framework/", "published_at": "2020-08-13T15:00:00+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e7c9abb6", "title": "What makes a good CTO?", "url": "https://liviutudor.com/2020/08/10/what-makes-a-good-cto/", "published_at": "2020-08-10T19:01:45+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e862ae80", "title": "I’m a senior engineer and I want a promotion!", "url": "https://liviutudor.com/2020/08/08/im-a-senior-engineer-and-i-want-a-promotion/", "published_at": "2020-08-08T22:37:27+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e8c9c722", "title": "How to read version number and other details from Java manifest", "url": "https://liviutudor.com/2019/11/20/how-to-read-version-number-and-other-details-from-java-manifest/", "published_at": "2019-11-21T07:46:39+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e8ffd9d7", "title": "Adding Apache Commons CLI to your Java Project", "url": "https://liviutudor.com/2019/11/17/adding-apache-commons-cli-to-your-java-project/", "published_at": "2019-11-17T22:25:03+00:00" }, { "id": "01a0bb58-4de8-709b-8b8e-2186e9e3efb1", "title": "Confessions of a software engineer: things I do", "url": "https://liviutudor.com/2019/09/25/confessions-of-a-software-engineer-things-i-do/", "published_at": "2019-09-26T05:29:19+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e3fc74d26", "title": "Thoughts on the Dubai tech ecosystem", "url": "https://liviutudor.com/2019/06/15/thoughts-on-the-dubai-tech-ecosystem/", "published_at": "2019-06-16T01:57:38+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e40895cd2", "title": "API World Conference 2018", "url": "https://liviutudor.com/2018/09/14/api-world-conference-2018/", "published_at": "2018-09-14T23:54:01+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e410d93db", "title": "The eternal issue about Object.hashCode() in Java", "url": "https://liviutudor.com/2018/09/07/the-eternal-issue-about-object-hashcode-in-java/", "published_at": "2018-09-07T07:46:18+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e418c8e7e", "title": "Parallel RxJava and Spock Oddity", "url": "https://liviutudor.com/2018/09/06/parallel-rxjava-and-spock-oddity/", "published_at": "2018-09-06T07:58:04+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e4270d616", "title": "Interesting Java Jersey + RxJava finding", "url": "https://liviutudor.com/2018/06/20/interesting-java-jersey-rxjava-finding/", "published_at": "2018-06-21T06:27:21+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e42fd8992", "title": "Anti-pattern for testing RxJava code", "url": "https://liviutudor.com/2018/06/04/anti-pattern-for-testing-rxjava-code/", "published_at": "2018-06-04T22:36:59+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e43a7765a", "title": "About composition and delegation in the Groovy language", "url": "https://liviutudor.com/2017/10/30/about-composition-and-delegation-in-the-groovy-language/", "published_at": "2017-10-31T06:15:56+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e43e9fb2b", "title": "Little-known yet useful Java annotation: ConstructorProperties", "url": "https://liviutudor.com/2017/09/15/little-known-yet-useful-java-annotation-constructorproperties/", "published_at": "2017-09-16T00:51:02+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e4477096c", "title": "Delivering a marketing site in the context of your product", "url": "https://liviutudor.com/2017/08/09/delivering-a-marketing-site-in-the-context-of-your-product/", "published_at": "2017-08-09T07:20:19+00:00" }, { "id": "01a0bb60-8b40-7254-abe9-d98e44d21fd2", "title": "Netflix Ads Engineering Offsite — 28-June-2017", "url": "https://liviutudor.com/2017/06/28/netflix-ads-engineering-offsite-28-june-2017/", "published_at": "2017-06-29T05:27:07+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5d9d911221", "title": "RxJava: Some Usage of Observable.zip", "url": "https://liviutudor.com/2017/06/28/rxjava-some-usage-of-observable-zip/", "published_at": "2017-06-28T07:24:33+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5d9d9cd154", "title": "Netflix 100 million members party — San Francisco", "url": "https://liviutudor.com/2017/06/12/netflix-100-million-members-party-san-francisco/", "published_at": "2017-06-12T22:15:28+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5d9df6b5b4", "title": "Using Optional in Java to check for null", "url": "https://liviutudor.com/2017/04/26/using-optional-in-java-to-check-for-null/", "published_at": "2017-04-27T05:15:38+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5d9ee7bba9", "title": "Common mistake when dealing with Reader in Java", "url": "https://liviutudor.com/2017/04/26/common-mistake-when-dealing-with-reader-in-java/", "published_at": "2017-04-27T00:38:49+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5d9f7d41e3", "title": "Disney and technology (or lack of!)", "url": "https://liviutudor.com/2017/04/21/disney-and-technology-or-lack-of/", "published_at": "2017-04-21T07:04:37+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5d9fbaa7d7", "title": "Dependency overload … or laziness?", "url": "https://liviutudor.com/2017/04/04/dependency-overload-or-laziness/", "published_at": "2017-04-04T16:43:58+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5da039b61d", "title": "Nicer implementations using Java streams", "url": "https://liviutudor.com/2017/03/31/nicer-implementations-using-java-streams/", "published_at": "2017-04-01T01:13:18+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5da0e7aa96", "title": "Beware of Governator’s @Configuration annotation", "url": "https://liviutudor.com/2017/03/29/beware-of-governators-configuration-annotation/", "published_at": "2017-03-29T08:08:51+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5da1e6a5e5", "title": "Java Dependency Injection and a Useless Annotation", "url": "https://liviutudor.com/2017/03/17/java-dependency-injection-and-a-useless-annotation/", "published_at": "2017-03-17T20:48:10+00:00" }, { "id": "01a0bb66-cc04-71d5-acb0-6d5da29d1768", "title": "AngularJS, Filters and $index", "url": "https://liviutudor.com/2017/03/10/angularjs-filters-and-index/", "published_at": "2017-03-11T01:10:04+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7a70090db", "title": "A bit about advertising psychology", "url": "https://liviutudor.com/2017/03/07/a-bit-about-advertising-psychology/", "published_at": "2017-03-07T17:48:23+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7a7c5c05d", "title": "Engineering Marketing", "url": "https://liviutudor.com/2017/03/06/engineering-marketing/", "published_at": "2017-03-06T09:23:44+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7a8ac1d0b", "title": "The Problem with the C-level Exec Who’s Leaving", "url": "https://liviutudor.com/2017/02/28/the-problem-with-the-c-level-exec-whos-leaving/", "published_at": "2017-02-28T08:36:01+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7a8fb32c9", "title": "The Power of Technical Jargon", "url": "https://liviutudor.com/2017/02/14/the-power-of-technical-jargon/", "published_at": "2017-02-14T08:02:56+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7a9f6ae78", "title": "Breaking into open source", "url": "https://liviutudor.com/2017/02/09/breaking-into-open-source/", "published_at": "2017-02-10T06:53:11+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7aae0e070", "title": "Reverse Engineering Las Vegas :-)", "url": "https://liviutudor.com/2017/02/07/reverse-engineering-las-vegas/", "published_at": "2017-02-08T07:36:08+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7ab3f7dca", "title": "Java, Map and Optional", "url": "https://liviutudor.com/2017/02/01/java-map-and-optional/", "published_at": "2017-02-02T00:27:31+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7ac1142b8", "title": "Netflix Party 25-Jan-2017", "url": "https://liviutudor.com/2017/01/25/netflix-party-25-jan-2017/", "published_at": "2017-01-25T23:49:03+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7ac807992", "title": "Thoughts on Programming and Its Challenges", "url": "https://liviutudor.com/2016/11/18/thoughts-on-programming-and-its-challenges/", "published_at": "2016-11-19T02:01:59+00:00" }, { "id": "01a0bb6b-3730-70f1-9b96-9ad7ad71a195", "title": "Gotcha When Building Gradle Plugins on Top of docker-java-plugin", "url": "https://liviutudor.com/2016/11/15/gotcha-when-building-gradle-plugins-on-top-of-docker-java-plugin/", "published_at": "2016-11-16T00:45:55+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b819783fad5", "title": "Disable PMD Plugin to Run for Test Sources", "url": "https://liviutudor.com/2016/11/09/disable-pmd-plugin-to-run-for-test-sources/", "published_at": "2016-11-09T21:33:35+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b81983d7508", "title": "PMD Rules", "url": "https://liviutudor.com/2016/11/08/pmd-rules/", "published_at": "2016-11-09T01:51:18+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b81987155fe", "title": "node.js Annoyance: url-download", "url": "https://liviutudor.com/2016/11/04/node-js-annoyance-url-download/", "published_at": "2016-11-04T09:11:07+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b8199472ed4", "title": "Small Request for Lodash Library: Concatenating JavaScript Array In-place", "url": "https://liviutudor.com/2016/10/31/small-request-for-lodash-library-concatenating-javascript-array-in-place/", "published_at": "2016-10-31T21:47:30+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b819986a382", "title": "Of Fibonacci’s Number and Groovy’s Memoization", "url": "https://liviutudor.com/2016/10/28/of-fibonaccis-number-and-groovys-memoization/", "published_at": "2016-10-29T06:19:48+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b819a6c78e2", "title": "Gradle Multi-module Projects — Centralized Configuration", "url": "https://liviutudor.com/2016/10/27/gradle-multi-module-projects-centralized-configuration/", "published_at": "2016-10-28T00:01:45+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b819b1b4f97", "title": "Collection Sorting — Java vs Groovy", "url": "https://liviutudor.com/2016/10/20/collection-sorting-java-vs-groovy/", "published_at": "2016-10-20T07:14:18+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b819b55f56d", "title": "Netflix Party — 18/Oct/2016", "url": "https://liviutudor.com/2016/10/18/netflix-party-18oct2016/", "published_at": "2016-10-18T23:42:58+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b819bf54dee", "title": "A Bit of Lovin’ for the Groovy Object Initialization", "url": "https://liviutudor.com/2016/10/17/a-bit-of-lovin-for-the-groovy-object-initialization/", "published_at": "2016-10-17T20:54:48+00:00" }, { "id": "01a0bb6f-2768-71d1-bacb-4b819c112e1a", "title": "Parallel : Groovy and Java Streams", "url": "https://liviutudor.com/2016/10/16/parallel-groovy-and-java-streams/", "published_at": "2016-10-16T07:26:47+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d29d2520b", "title": "The Big Data Scare", "url": "https://liviutudor.com/2016/10/15/the-big-data-scare/", "published_at": "2016-10-16T06:57:22+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d29f28a62", "title": "Goodies in Groovy from DefaultGroovyMethods", "url": "https://liviutudor.com/2016/10/14/goodies-in-groovy-from-defaultgroovymethods/", "published_at": "2016-10-15T00:17:28+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d2a497025", "title": "On Java Annotations and Type Safety", "url": "https://liviutudor.com/2016/10/02/on-java-annotations-and-type-safety/", "published_at": "2016-10-03T06:20:23+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d2a77d977", "title": "Small Note on gradle’s afterEvaluate", "url": "https://liviutudor.com/2016/10/02/small-note-on-gradles-afterevaluate/", "published_at": "2016-10-02T07:04:49+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d2ac66a27", "title": "Java … FunctionalInterface … WTF?", "url": "https://liviutudor.com/2016/09/12/java-functionalinterface-wtf/", "published_at": "2016-09-13T00:40:52+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d2b3bde1f", "title": "Why You Should Use Default Methods in Java 8 Interfaces", "url": "https://liviutudor.com/2016/08/07/why-you-should-use-default-methods-in-java-8-interfaces/", "published_at": "2016-08-08T04:51:49+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d2b766d38", "title": "Netflix Party — Get Down", "url": "https://liviutudor.com/2016/07/27/netflix-party-get-down/", "published_at": "2016-07-27T22:10:51+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d2bdb120c", "title": "Less Is More When It Comes To Advertising Too!", "url": "https://liviutudor.com/2016/07/24/less-is-more-when-it-comes-to-advertising-too/", "published_at": "2016-07-24T07:55:43+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d2c214231", "title": "App Idea — About.Me", "url": "https://liviutudor.com/2016/07/09/app-idea-about-me/", "published_at": "2016-07-10T01:17:08+00:00" }, { "id": "01a0bb72-dadf-7274-a746-866d2c8dbdbc", "title": "Liv’s Guide to London", "url": "https://liviutudor.com/2016/07/01/livs-guide-to-london/", "published_at": "2016-07-01T18:54:13+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-450082bb71ac", "title": "My Thoughts on Brexit", "url": "https://liviutudor.com/2016/06/27/my-thoughts-on-brexit/", "published_at": "2016-06-28T00:00:54+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-4500830f9e64", "title": "Java Map and Subtleties of getOrDefault vs computeIfAbsent", "url": "https://liviutudor.com/2016/06/23/java-map-and-subtleties-of-getordefault-vs-computeifabsent/", "published_at": "2016-06-23T22:54:21+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-450083468810", "title": "Sic Transit Gloria Mundi…", "url": "https://liviutudor.com/2016/06/17/sic-transit-gloria-mundi/", "published_at": "2016-06-18T04:00:48+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-4500841f7b89", "title": "Java 8 — Map and the Unknown “Niceties”", "url": "https://liviutudor.com/2016/06/16/java-8-map-and-the-unknown-niceties/", "published_at": "2016-06-16T23:58:27+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-45008445b8fc", "title": "TuneIn Advertising — Highlight", "url": "https://liviutudor.com/2016/06/10/tunein-advertising-highlight/", "published_at": "2016-06-10T19:07:21+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-450084875294", "title": "Of Customer Service — American Airlines (AA) Style", "url": "https://liviutudor.com/2016/06/08/of-customer-service-american-airlines-aa-style/", "published_at": "2016-06-09T04:56:08+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-450084f48b1e", "title": "Jamaica — May/2016", "url": "https://liviutudor.com/2016/06/05/jamaica-may2016/", "published_at": "2016-06-06T05:32:19+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-4500858e1b5a", "title": "A Case to be Made for Managing Advertising Inventory Better", "url": "https://liviutudor.com/2016/05/17/a-case-to-be-made-for-managing-advertising-inventory-better/", "published_at": "2016-05-17T20:39:56+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-45008678d871", "title": "Netflix Party — 06/May/2016", "url": "https://liviutudor.com/2016/05/06/netflix-party-06may2016/", "published_at": "2016-05-06T17:33:02+00:00" }, { "id": "01a0bb76-230d-7324-a1d3-4500874562b4", "title": "Sausalito and Golden Gate Bridge — 4/Apr/2016", "url": "https://liviutudor.com/2016/04/03/sausalito-and-golden-gate-bridge-4apr2016/", "published_at": "2016-04-04T06:45:25+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-57666040d17e", "title": "Netflix Nebula Gradle Plugin and project.version", "url": "https://liviutudor.com/2016/04/02/netflix-nebula-gradle-plugin-and-project-version/", "published_at": "2016-04-02T16:36:10+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-576660a2852a", "title": "Specify File Order for Combining JavaScript Files through gradle-js-plugin", "url": "https://liviutudor.com/2016/03/30/specify-file-order-for-combining-javascript-files-through-gradle-js-plugin/", "published_at": "2016-03-31T04:56:00+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-5766613b2cbc", "title": "Checkstyle, Findbugs, PMD and the Likes", "url": "https://liviutudor.com/2016/03/27/checkstyle-findbugs-pmd-and-the-likes/", "published_at": "2016-03-28T03:34:16+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-5766620341e0", "title": "Managing Project Dependencies with Gradle", "url": "https://liviutudor.com/2016/03/27/managing-project-dependencies-with-gradle/", "published_at": "2016-03-27T17:35:30+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-576662ea2348", "title": "Please Stop Using Thread.sleep() in Java!", "url": "https://liviutudor.com/2016/03/25/please-stop-using-thread-sleep-in-java/", "published_at": "2016-03-25T21:03:40+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-5766635d7b01", "title": "Issue with Jersey Multipart Libraries: Missing start boundary", "url": "https://liviutudor.com/2016/03/21/issue-with-jersey-multipart-libraries-missing-start-boundary/", "published_at": "2016-03-22T04:29:58+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-57666410bd8b", "title": "Frantic WordPress Theme — Update", "url": "https://liviutudor.com/2016/03/20/frantic-wordpress-theme-update/", "published_at": "2016-03-20T23:54:26+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-576664f9f5a9", "title": "Tales From Ole’ Romania: TV", "url": "https://liviutudor.com/2016/03/03/tales-from-ole-romania-tv/", "published_at": "2016-03-03T09:28:35+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-576665e68e77", "title": "London Eye — Feb/2016", "url": "https://liviutudor.com/2016/02/25/london-eye-feb2016/", "published_at": "2016-02-26T05:21:27+00:00" }, { "id": "01a0bb79-6afe-717f-9dcf-576665efcef9", "title": "Of Validating Inputs in Java and Designing for Extension", "url": "https://liviutudor.com/2016/02/18/of-validating-inputs-in-java-and-designing-for-extension/", "published_at": "2016-02-18T10:04:58+00:00" } ] posts Claim your blog
Back to liviutudor.com
Blog · corpus.blog/blogs/liviutudor.com/posts

liviutudor.com

liviutudor.com

2026

2025

2021

2020

2019

2018

2017

2016