41554 blogs · [ { "id": "01a087b9-f65a-7137-8e27-20c522621fc3", "title": "All-In-One platform architecture", "url": "https://oprea.rocks/blog/platform-architecture-advice.html", "published_at": "2026-03-03T15:30:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c522cb685c", "title": "OpenClaw can get your Gmail disabled", "url": "https://oprea.rocks/blog/openclaw-disabled-gmail.html", "published_at": "2026-02-24T11:44:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52306e423", "title": "Updated config lookup algorithm in ESLint 10", "url": "https://oprea.rocks/blog/eslint-10-config-lookup.html", "published_at": "2026-02-23T14:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c523e52dff", "title": "Agent token costs = yearly senior dev wage", "url": "https://oprea.rocks/blog/jason-calacanis-ai-agent-token-cost.html", "published_at": "2026-02-20T15:45:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c523e53503", "title": "Code brevity", "url": "https://oprea.rocks/blog/code-brevity.html", "published_at": "2023-12-20T14:41:26+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c5248122d6", "title": "Let’s become web developers again", "url": "https://oprea.rocks/blog/web-developer-again.html", "published_at": "2023-12-19T15:27:40+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c5256e0118", "title": "Circuit breakers", "url": "https://oprea.rocks/blog/circuit-breakers.html", "published_at": "2023-08-22T12:38:30+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c525b8e1fb", "title": "Core Web Vitals - The DevTools coverage report", "url": "https://oprea.rocks/blog/core-web-vitals-devtools-coverage-report.html", "published_at": "2021-06-30T13:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c526822e05", "title": "How to remove the trailing slash of a URL on a Hugo static website running on Netlify", "url": "https://oprea.rocks/blog/remove-hugo-trailing-slash.html", "published_at": "2021-04-05T13:30:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c526eca53d", "title": "Contact", "url": "https://oprea.rocks/hire/success.html", "published_at": "2021-03-30T17:46:56+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c526edc92b", "title": "Fixing Golang GIN-debug WARNING Headers were already written.", "url": "https://oprea.rocks/blog/fix-gin-warning-headers-already-written.html", "published_at": "2020-02-16T21:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c5279b05e8", "title": "Handling errors is an essential skill", "url": "https://oprea.rocks/blog/handling-errors-is-an-essential-skill.html", "published_at": "2020-01-31T15:30:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c5284aebfa", "title": "A Markdown Story", "url": "https://oprea.rocks/blog/a-markdown-story.html", "published_at": "2020-01-14T07:50:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c5290e78ef", "title": "Small steps", "url": "https://oprea.rocks/blog/power-of-small-steps.html", "published_at": "2020-01-14T07:50:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c5293fcd78", "title": "How I learned to talk about WeRemote.eu during Y Combinator Startup School sessions", "url": "https://oprea.rocks/blog/weremote-eu-core-values-ycombinator.html", "published_at": "2019-11-16T19:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c529a6642f", "title": "🚨 Proper conduct when shopping for web design or development services", "url": "https://oprea.rocks/blog/proper-conduct-when-shopping-for-web-design-or-development-services.html", "published_at": "2019-11-16T18:40:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c529dc6446", "title": "Custom-coding a landing page in 45 minutes", "url": "https://oprea.rocks/blog/custom-coding-a-landing-page-in-45-minutes.html", "published_at": "2019-11-16T18:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52ad4e4d4", "title": "How to fix GitHub Actions error docker build requires exactly 1 argument.", "url": "https://oprea.rocks/blog/how-to-fix-github-actions-error-docker-build-requires-exactly-1-argument.html", "published_at": "2019-08-08T09:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52bcba392", "title": "On sophists and sophisms", "url": "https://oprea.rocks/blog/on-sophists-and-sophisms.html", "published_at": "2019-06-27T17:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52c729888", "title": "What's your financial freedom goal?", "url": "https://oprea.rocks/blog/whats-your-financial-freedom-goal.html", "published_at": "2019-06-24T17:50:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52cd1921f", "title": "Stop storing JWT in LocalStorage! And stop using JWT.", "url": "https://oprea.rocks/blog/stop-storing-jwt-in-localstorage-and-stop-using-jwt.html", "published_at": "2019-06-04T12:30:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52d9029ba", "title": "Be yourself all the time so you don't have to be someone else", "url": "https://oprea.rocks/blog/communicating-naturally-on-social-media-and-on-video.html", "published_at": "2019-05-31T10:45:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52e46c130", "title": "I launched a remote jobs platform — let's talk about the numbers", "url": "https://oprea.rocks/blog/i-launched-a-remote-jobs-platform-lets-talk-about-the-numbers.html", "published_at": "2019-05-20T09:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52eb838d5", "title": "I removed some apps from my phone...", "url": "https://oprea.rocks/blog/removed-social-media-apps-from-phone.html", "published_at": "2019-04-02T17:30:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52ef7d4bb", "title": "On the importance of visualization", "url": "https://oprea.rocks/blog/on-the-importance-of-visualization.html", "published_at": "2019-04-02T09:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c52f97a3fb", "title": "How to check if a JavaScript object is empty", "url": "https://oprea.rocks/blog/is-javascript-object-empty.html", "published_at": "2019-01-18T09:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c5303004f9", "title": "12 things about JavaScript business owners and recruiters MUST know", "url": "https://oprea.rocks/blog/12-things-about-javascript-business-owners-and-recruiters-must-know.html", "published_at": "2019-01-15T10:30:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c53050a353", "title": "Does reading in a foreign language affect learning?", "url": "https://oprea.rocks/blog/reading-foreign-language-learning.html", "published_at": "2019-01-03T14:00:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c530520ffa", "title": "My fear of publishing", "url": "https://oprea.rocks/blog/publishing-fear.html", "published_at": "2019-01-02T16:45:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c5314a7b35", "title": "Blasphemy! Multiple microservices, shared database.", "url": "https://oprea.rocks/blog/multiple-microservices-shared-database.html", "published_at": "2018-12-19T19:30:00+00:00" }, { "id": "01a087b9-f65a-7137-8e27-20c53234921f", "title": "The techpreneur's productivity dilemma", "url": "https://oprea.rocks/blog/techpreneur-productivity-dilemma.html", "published_at": "2018-11-22T15:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a61fc75b1e", "title": "Harsh Truths I Learned As a Junior Developer", "url": "https://oprea.rocks/blog/harsh-truths-junior-developer.html", "published_at": "2018-09-20T06:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62032b7d0", "title": "Here’s Why We Just Can't Agree on One JavaScript Framework", "url": "https://oprea.rocks/blog/using-one-javascript-framework.html", "published_at": "2018-09-13T14:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62101a7f8", "title": "Six Things About JavaScript Which If You Don't Know, Signal to Others That You Are Still A Beginner", "url": "https://oprea.rocks/blog/six-things-that-tell-youre-still-a-junior.html", "published_at": "2018-09-08T11:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a621469e8e", "title": "What are STATIC SITE GENERATORS and why YOUR BUSINESS NEEDS to use one", "url": "https://oprea.rocks/blog/what-are-static-site-generators-and-why-you-need-to-use-one.html", "published_at": "2018-08-30T05:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a621e6786f", "title": "What do the three dots (...) mean in JavaScript?", "url": "https://oprea.rocks/blog/what-do-the-three-dots-mean-in-javascript.html", "published_at": "2018-08-22T12:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62261dbe1", "title": "How to manage i18n translation files for web applications", "url": "https://oprea.rocks/blog/manage-i18n-translation-files-for-web-apps.html", "published_at": "2018-08-10T14:55:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6232a0d8f", "title": "Podcast The eslint-scope virus and Ryan Dahl's JSConf presentation", "url": "https://oprea.rocks/blog/podcast-eslint-scope-ryan-dahl-jsconf.html", "published_at": "2018-07-24T14:10:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6234a38b9", "title": "ESLint backdoor what it is and how to fix the issue", "url": "https://oprea.rocks/blog/fix-eslint-scope-backdoor.html", "published_at": "2018-07-13T09:40:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6239292c5", "title": "Environment variables in Webpack builds vs. Node.js apps", "url": "https://oprea.rocks/blog/environment-variables-webpack-nodejs.html", "published_at": "2018-07-12T16:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a623ef9371", "title": "Here's why your software developers are delivering so slow.", "url": "https://oprea.rocks/blog/software-developers-are-slow.html", "published_at": "2018-07-09T14:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a624b3dfe5", "title": "Enable JWT authentication for the Wordpress REST API", "url": "https://oprea.rocks/blog/enable-jwt-authentication-for-the-wordpress-rest-api.html", "published_at": "2018-06-29T13:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a624c90a4c", "title": "Centralized vs. decentralized CI / CD strategies for multiple teams", "url": "https://oprea.rocks/blog/centralized-vs-decentralized-ci-cd-strategies-for-multiple-teams.html", "published_at": "2018-06-29T12:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62567c3da", "title": "Go from Node.js app to microservices with MONOLITHSPL/T", "url": "https://oprea.rocks/blog/go-from-node-js-app-to-microservices-with-monolithsplit-com.html", "published_at": "2018-06-29T11:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a625aa841c", "title": "Is it better to be a software development generalist or should I specialise?", "url": "https://oprea.rocks/blog/is-it-better-to-be-a-software-development-generalist-or-should-i-specialise.html", "published_at": "2018-06-29T11:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62640848c", "title": "Monoliths are bad and so are microservices!", "url": "https://oprea.rocks/blog/microservices-are-bad-so-are-monoliths.html", "published_at": "2018-06-29T11:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a626c41bac", "title": "The ultimate list of articles on the JavaScript frameworks to learn in 2018", "url": "https://oprea.rocks/blog/javascript-frameworks-to-learn-in-2018.html", "published_at": "2018-06-29T11:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6279dbb2e", "title": "How I reduced the bounce rate on my GatsbyJS website", "url": "https://oprea.rocks/blog/related-articles-gatsby-js.html", "published_at": "2018-06-29T06:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62898bb44", "title": "🔧 Make your Swagger configuration files dynamic using Node.js", "url": "https://oprea.rocks/blog/use-env-vars-swagger-codegen.html", "published_at": "2018-06-27T16:50:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6297cc013", "title": "How I built a product that failed and won", "url": "https://oprea.rocks/blog/how-i-built-a-product-that-failed-and-won.html", "published_at": "2018-06-10T08:35:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a629c12be8", "title": "How to test Node.js modules installed from NPM locally", "url": "https://oprea.rocks/blog/test-nodejs-modules-locally.html", "published_at": "2018-06-06T11:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62a536e40", "title": "How to get the real type of any JavaScript variable", "url": "https://oprea.rocks/blog/how-to-get-the-real-type-of-any-javascript-variable.html", "published_at": "2018-06-04T11:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62abd52d8", "title": "Why do data scientists use Sklearn's StandardScaler and what does it do?", "url": "https://oprea.rocks/blog/why-use-sklearn-preprocessing-standardscaler.html", "published_at": "2018-06-02T18:20:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62b18c150", "title": "How to create a CSV using template strings in Node.js", "url": "https://oprea.rocks/blog/how-to-create-a-csv-using-template-strings-in-node-js.html", "published_at": "2018-06-01T20:55:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62b5c7d50", "title": "What is your story of going from zero to hero and changing your life completely in the face of failure?", "url": "https://oprea.rocks/blog/quora-question-zero-to-hero-story.html", "published_at": "2018-05-23T19:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62bc42824", "title": "Be a good citizen, write code for humans.", "url": "https://oprea.rocks/blog/write-code-for-humans.html", "published_at": "2018-05-17T06:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62cc06908", "title": "Quick checkout and rebase in Git", "url": "https://oprea.rocks/blog/quick-checkout-and-rebase-in-git.html", "published_at": "2018-05-14T06:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62d61d8c4", "title": "Reading BigInt in Chrome, how to handle big numbers in JavaScript & CSS architecture", "url": "https://oprea.rocks/blog/bigint-chrome-how-to-handle-big-numbers-in-javascript-and-css-architecture.html", "published_at": "2018-05-10T20:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62dc333d9", "title": "I'm learning Go", "url": "https://oprea.rocks/blog/learning-golang.html", "published_at": "2018-05-09T05:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62e093f75", "title": "Can I learn React.js if I don't know JavaScript?", "url": "https://oprea.rocks/blog/learning-react-with-no-javascript-experience.html", "published_at": "2018-05-06T10:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62e621d40", "title": "My twisted Git workflow ⛏", "url": "https://oprea.rocks/blog/my-git-workflow.html", "published_at": "2018-05-05T10:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62e7d5065", "title": "How to fix Bootstrap Datetimepicker reset to 12/31/1899", "url": "https://oprea.rocks/blog/bootstrap-datetimepicker-reset.html", "published_at": "2018-05-04T21:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62ef62fd3", "title": "The quality paradox in software products", "url": "https://oprea.rocks/blog/the-quality-paradox-in-software-products.html", "published_at": "2018-05-02T04:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a62fe1179a", "title": "🙇‍♂️ Thoughts on software development process", "url": "https://oprea.rocks/blog/thoughts-on-software-development-process.html", "published_at": "2018-04-26T05:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63041aef1", "title": "5 Getting Into Web Development in 2018", "url": "https://oprea.rocks/blog/devtimestories-episode-5.html", "published_at": "2018-02-20T14:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6306bf325", "title": "4 Frustration, new microphone, broken keyboards and Apple updates", "url": "https://oprea.rocks/blog/devtimestories-episode-4.html", "published_at": "2018-02-16T10:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a631508caa", "title": "🚀 🚀 🚗 🌍 Software is eating the world! What are we doing about it?", "url": "https://oprea.rocks/blog/automation-ai-and-ml.html", "published_at": "2018-02-09T10:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a631a71f79", "title": "Dev Time Stories Episode 3 — Five steps to quickly track down and handle uncaught exceptions in Node.js", "url": "https://oprea.rocks/blog/five-steps-to-quickly-track-and-handle-uncaught-exception-nodejs.html", "published_at": "2018-02-07T10:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63235bff7", "title": "Dev Time Stories Episode 2 — Should you remain a generalist or should you specialize?", "url": "https://oprea.rocks/blog/dev-time-stories-podcast-episode-2-software-generalist-vs-specialist.html", "published_at": "2018-02-05T12:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6325c5beb", "title": "Two strategies for migrating an existing application to a new framework", "url": "https://oprea.rocks/blog/two-strategies-for-migrating-an-existing-application-to-a-new-framework.html", "published_at": "2018-01-29T14:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a632bbad8e", "title": "I started my own podcast — Dev Time Stories", "url": "https://oprea.rocks/blog/i-started-my-own-podcast-dev-time-stories.html", "published_at": "2018-01-27T16:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6332778f3", "title": "Five reasons big software rewrites fail", "url": "https://oprea.rocks/blog/five-reasons-big-software-rewrites-fail.html", "published_at": "2018-01-22T14:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a633bdda72", "title": "WIP Keeping up to date with JavaScript development in 2018", "url": "https://oprea.rocks/blog/keep-up-to-date-with-javascript-in-2018.html", "published_at": "2018-01-10T06:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a634435631", "title": "How to make sure your articles get written and published", "url": "https://oprea.rocks/blog/changing-the-way-i-publish-articles.html", "published_at": "2018-01-10T05:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a634f5f5d7", "title": "Keeping up to date with JavaScript development in 2015", "url": "https://oprea.rocks/blog/development-war-tactics-staying-current.html", "published_at": "2018-01-10T05:15:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a635e513e5", "title": "Google Chrome extensions every software developer should use", "url": "https://oprea.rocks/blog/google-chrome-extensions-every-software-developer-should-use.html", "published_at": "2018-01-08T16:25:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a635e574cd", "title": "ES6 dynamic import and Webpack memory leaks", "url": "https://oprea.rocks/blog/es6-dynamic-import-and-webpack-memory-leaks.html", "published_at": "2018-01-04T06:45:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a636134333", "title": "Debug Yourself Through®", "url": "https://oprea.rocks/blog/debug-yourself-through-problem-solving-technique.html", "published_at": "2017-12-29T15:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a636cf1107", "title": "2 things new consultants must know", "url": "https://oprea.rocks/blog/2-things-new-consultants-must-know-about-backups-and-fees.html", "published_at": "2017-12-27T07:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a637b5b067", "title": "Apple just cost me one week’s worth of work", "url": "https://oprea.rocks/blog/high-sierra-update-messed-up-my-computer.html", "published_at": "2017-12-26T06:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63815c726", "title": "Not all spikes yield positive results", "url": "https://oprea.rocks/blog/not-all-agile-spikes-should-yield-positive-results.html", "published_at": "2017-12-14T05:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a638810f44", "title": "Stop chasing squirrels", "url": "https://oprea.rocks/blog/programmers-stop-chasing-squirrels.html", "published_at": "2017-12-13T07:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a6391b4906", "title": "Why software estimates are just guesswork", "url": "https://oprea.rocks/blog/why-software-estimates-are-just-guesswork.html", "published_at": "2017-12-12T07:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63940dab2", "title": "Set up a RabbitMQ cluster on your laptop using Docker", "url": "https://oprea.rocks/blog/set-up-a-rabbitmq-cluster-on-your-laptop-using-docker.html", "published_at": "2017-11-28T13:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a639de023b", "title": "Having a software development process is crucial", "url": "https://oprea.rocks/blog/having-a-software-development-process-is-curcial.html", "published_at": "2017-11-28T05:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63a611558", "title": "How to set default values using ES6 destructuring assignment", "url": "https://oprea.rocks/blog/how-to-set-default-values-using-es6-destructuring-assignment.html", "published_at": "2017-11-28T05:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63a79aec4", "title": "How to stop sabotaging yourself on projects", "url": "https://oprea.rocks/blog/how-to-stop-sabotaging-yourself-on-projects.html", "published_at": "2017-11-28T05:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63b4a8f8a", "title": "WHY DID I CREATE A YOUTUBE CHANNEL? 🤦‍", "url": "https://oprea.rocks/blog/why-did-i-create-a-youtube-channel.html", "published_at": "2017-11-28T05:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63ba17823", "title": "The Trade Show — A story about JavaScript frameworks and libraries", "url": "https://oprea.rocks/blog/the-trade-show-a-story-about-javascript-frameworks-and-libraries.html", "published_at": "2017-11-27T15:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63bcac833", "title": "YouTube demonetization doesn't hurt that much", "url": "https://oprea.rocks/blog/youtube-demonetization-doesnt-hurt-that-much.html", "published_at": "2017-11-24T10:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63c9a9f18", "title": "My talk at JSTalks Sofia", "url": "https://oprea.rocks/blog/my-talk-at-jstalks-sofia.html", "published_at": "2017-11-22T13:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63d02feae", "title": "Automatically fix ESLint code validation errors in Visual Studio Code", "url": "https://oprea.rocks/blog/automatically-fix-eslint-code-validation-errors-in-visual-studio-code.html", "published_at": "2017-09-07T13:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63daa329c", "title": "Copy files from a Docker container to the host", "url": "https://oprea.rocks/blog/copy-files-from-a-docker-container-to-the-host.html", "published_at": "2017-09-06T16:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63df4473f", "title": "Improve your Node.js code readability with this simple trick", "url": "https://oprea.rocks/blog/improve-your-node-js-code-readability-with-this-simple-trick.html", "published_at": "2017-06-06T14:00:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63dfeb658", "title": "Technical advice for startups", "url": "https://oprea.rocks/blog/technical-advice-for-startups.html", "published_at": "2017-05-23T13:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63e93ebd3", "title": "jQuery, Babel, React Native and the importance of making mistakes", "url": "https://oprea.rocks/blog/jquery-babel-react-native-and-the-importance-of-making-mistakes.html", "published_at": "2017-05-19T13:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63e99c17f", "title": "X in a box - containers for developers video series?", "url": "https://oprea.rocks/blog/x-in-a-box-containers-for-developers-video-series.html", "published_at": "2017-05-17T13:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63ebb4635", "title": "React Native + NavigatorIOS + Bad Habits = 2 wasted hours", "url": "https://oprea.rocks/blog/react-native-navigatorios-bad-habits-2-wasted-hours.html", "published_at": "2017-05-08T13:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a63f7d8c2b", "title": "Working with Vue.js after React and Angular", "url": "https://oprea.rocks/blog/working-with-vue-js-after-react-and-angular.html", "published_at": "2017-05-04T13:30:00+00:00" }, { "id": "01a087b9-f65b-72bc-8cf8-95a64070fd8d", "title": "How are regular functions and function expressions different in JavaScript?", "url": "https://oprea.rocks/blog/how-are-regular-functions-and-function-expressions-different-in-javascript.html", "published_at": "2017-02-06T09:30:00+00:00" } ] posts Claim your blog
Back to oprea.rocks
Blog · corpus.blog/blogs/oprea.rocks/posts

oprea.rocks

oprea.rocks

2026

2023

2021

2020

2019

2018

2017