<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>oooops.dev//stdout</title><description>Software is hard.</description><link>https://oooops.dev/</link><item><title>An Agile study path for junior to mid level developers</title><link>https://oooops.dev/blog/an-agile-study-path-for-junior-to-mid-level-developers/</link><guid isPermaLink="true">https://oooops.dev/blog/an-agile-study-path-for-junior-to-mid-level-developers/</guid><description>This is a learning path every new graduate or consultant developer can follow.</description><pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate></item><item><title>An Agile study path for lead developers</title><link>https://oooops.dev/blog/an-agile-study-path-for-lead-developers/</link><guid isPermaLink="true">https://oooops.dev/blog/an-agile-study-path-for-lead-developers/</guid><description>This is a learning path every developer looking to become “tech lead” can follow.</description><pubDate>Wed, 12 Oct 2022 00:00:00 GMT</pubDate></item><item><title>An Agile study path for senior developers</title><link>https://oooops.dev/blog/an-agile-study-path-for-senior-developers/</link><guid isPermaLink="true">https://oooops.dev/blog/an-agile-study-path-for-senior-developers/</guid><description>This is a learning path every developer looking to become “senior” can follow.</description><pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate></item><item><title>An Isolated Developer Setup with Docker</title><link>https://oooops.dev/blog/an-isolated-developer-setup-with-docker/</link><guid isPermaLink="true">https://oooops.dev/blog/an-isolated-developer-setup-with-docker/</guid><description>In this post I am going to propose a set up to run any kind of application on a developer laptop in complete isolation.</description><pubDate>Sat, 15 May 2021 00:00:00 GMT</pubDate><category>AWS</category><category>CI/CD</category><category>Docker</category></item><item><title>Cross-service “integration tests” have to go</title><link>https://oooops.dev/blog/cross-service-integration-tests-have-to-go/</link><guid isPermaLink="true">https://oooops.dev/blog/cross-service-integration-tests-have-to-go/</guid><description>tl;dr They are often broken in pipelines and that might be because they are broken as a concept. A typical issue in a microservices architecture is ensuring that the integration between services…</description><pubDate>Mon, 17 Oct 2022 00:00:00 GMT</pubDate><category>Agile</category><category>CI/CD</category><category>Refactoring</category><category>Software Architecture</category><category>Testing</category></item><item><title>File Limits and how the “Too many open files” error can pop up unexpectedly</title><link>https://oooops.dev/blog/file-limits-and-how-the-too-many-open-files-error-can-pop-up-unexpectedly/</link><guid isPermaLink="true">https://oooops.dev/blog/file-limits-and-how-the-too-many-open-files-error-can-pop-up-unexpectedly/</guid><description>I have recently come across a nasty Too many open files error, and noticed the information on the internet about what that might mean or how to solve it doesn’t always paint a clear picture.</description><pubDate>Sun, 17 Jan 2021 00:00:00 GMT</pubDate><category>Files</category><category>Snippets</category><category>Unix</category></item><item><title>[Meta] Hello World</title><link>https://oooops.dev/blog/hello-world/</link><guid isPermaLink="true">https://oooops.dev/blog/hello-world/</guid><description>Hi everyone, just set up this blog. It’s going to be a bit of a mix of new things I learn, handy code snippets, and obscure issues I find in my day to day work.</description><pubDate>Sat, 16 Jan 2021 00:00:00 GMT</pubDate><category>Meta</category></item><item><title>How to attach a remote profiler to a JVM running in EC2 (and maybe Docker)</title><link>https://oooops.dev/blog/how-to-attach-a-remote-profiler-to-a-jvm-running-in-ec2-and-maybe-docker/</link><guid isPermaLink="true">https://oooops.dev/blog/how-to-attach-a-remote-profiler-to-a-jvm-running-in-ec2-and-maybe-docker/</guid><description>Part of running big distributed systems at scale is encountering issues which are hard to debug. Memory leaks, sudden crashes, threads hanging… they might all manifest under extreme production…</description><pubDate>Sun, 21 Feb 2021 00:00:00 GMT</pubDate><category>AWS</category><category>Docker</category></item><item><title>Jumping SSH Hosts</title><link>https://oooops.dev/blog/jumping-ssh-hosts/</link><guid isPermaLink="true">https://oooops.dev/blog/jumping-ssh-hosts/</guid><description>Sometimes some servers are unreachable to us due to network topology barriers, which are put in place for security reasons.</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Snippets</category><category>Unix</category></item><item><title>One line Bash HTTP Server</title><link>https://oooops.dev/blog/one-line-bash-http-server/</link><guid isPermaLink="true">https://oooops.dev/blog/one-line-bash-http-server/</guid><description>Here is a quick snippet I use all the time when I want to set up an HTTP server on the fly, without leaving the comfort of my terminal.</description><pubDate>Sat, 16 Jan 2021 00:00:00 GMT</pubDate><category>Bash</category><category>Networking</category><category>Snippets</category></item><item><title>QAing in production</title><link>https://oooops.dev/blog/qa-testing-in-production/</link><guid isPermaLink="true">https://oooops.dev/blog/qa-testing-in-production/</guid><description>In this article, I want to challenge where software testing happens and suggest that most manual verification (desk checks, QA, demo) that is part of a team’s delivery lifecycle should happen in…</description><pubDate>Fri, 12 Aug 2022 00:00:00 GMT</pubDate><category>Agile</category><category>Testing</category></item><item><title>See which process is occupying a port</title><link>https://oooops.dev/blog/see-which-process-is-occupying-a-port/</link><guid isPermaLink="true">https://oooops.dev/blog/see-which-process-is-occupying-a-port/</guid><description>Sometimes during day to day development I get a Port already in use error (or a variant of it), and I quickly want to see which process I forgot to terminate.</description><pubDate>Sun, 14 Feb 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Processes</category><category>Snippets</category></item><item><title>Serializing and de-serializing ES6 class instances recursively</title><link>https://oooops.dev/blog/serializing-and-de-serializing-es6-class-instances-recursively/</link><guid isPermaLink="true">https://oooops.dev/blog/serializing-and-de-serializing-es6-class-instances-recursively/</guid><description>We have all been warned not to use ES6 classes. Perhaps by our colleagues, or perhaps by the endless amount of scary blog posts that show up if you dare Google the subject.</description><pubDate>Fri, 30 Sep 2022 00:00:00 GMT</pubDate><category>JavaScript</category><category>Snippets</category></item><item><title>Should we still design code for humans?</title><link>https://oooops.dev/blog/should-we-still-design-code-for-humans/</link><guid isPermaLink="true">https://oooops.dev/blog/should-we-still-design-code-for-humans/</guid><description>If agents write most of the code, does good software design still matter? Why humans have to stay at the code level, not just the spec level.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><category>Software Architecture</category><category>AI</category><category>Refactoring</category></item><item><title>Super Quick Node.js HTTP Server</title><link>https://oooops.dev/blog/snippet-quick-node-js-http-server/</link><guid isPermaLink="true">https://oooops.dev/blog/snippet-quick-node-js-http-server/</guid><description>This will start a simple server on port 3000. Save to a file index.js Run with: Output:</description><pubDate>Sat, 16 Jan 2021 00:00:00 GMT</pubDate><category>JavaScript</category><category>Networking</category><category>Snippets</category></item><item><title>Solving the Docker in Docker dilemma in your CI Pipeline</title><link>https://oooops.dev/blog/solving-the-docker-in-docker-dilemma-in-your-ci-pipeline/</link><guid isPermaLink="true">https://oooops.dev/blog/solving-the-docker-in-docker-dilemma-in-your-ci-pipeline/</guid><description>There are some tests (integration, end to end, component…) in most modern test suites that rely on some external resources in order to run.</description><pubDate>Sun, 14 Feb 2021 00:00:00 GMT</pubDate><category>CI/CD</category><category>Docker</category></item><item><title>SSH Agent</title><link>https://oooops.dev/blog/ssh-agent/</link><guid isPermaLink="true">https://oooops.dev/blog/ssh-agent/</guid><description>If you are using key pair based authentication with a passphrase for your keys, things can quickly get tedious as you have to input the passphrase every time you want to connect somewhere.</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Snippets</category><category>Unix</category></item><item><title>SSH Authentication methods</title><link>https://oooops.dev/blog/ssh-authentication-methods/</link><guid isPermaLink="true">https://oooops.dev/blog/ssh-authentication-methods/</guid><description>There are two ways of authenticating to a server with SSH: user/password based authentication (which is now by many considered outdated and insecure) and key pair based authentication.</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Snippets</category><category>Unix</category></item><item><title>SSH Config</title><link>https://oooops.dev/blog/ssh-config/</link><guid isPermaLink="true">https://oooops.dev/blog/ssh-config/</guid><description>As well as having to type passphrases, remembering the right user, key file, port and other settings for each host you want to SSH into might quickly become overwhelming.</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Operating Systems</category><category>Unix</category></item><item><title>[Series] SSH for Developers – Beyond the Basics</title><link>https://oooops.dev/blog/ssh-for-developers-beyond-the-basics-series/</link><guid isPermaLink="true">https://oooops.dev/blog/ssh-for-developers-beyond-the-basics-series/</guid><description>I have written this guide for developers who might be superficially familiar with the basics of SSH – maybe even fiddled with a file or two without really knowing what’s going on – and would like a…</description><pubDate>Mon, 25 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Unix</category></item><item><title>SSH Known Hosts</title><link>https://oooops.dev/blog/ssh-known-hosts/</link><guid isPermaLink="true">https://oooops.dev/blog/ssh-known-hosts/</guid><description>Much like how the authorized_keys file is used to authenticate clients on the server, there is another file in the ~/.ssh folder called known_hosts, which is used to authenticate servers to the…</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Snippets</category><category>Unix</category></item><item><title>SSH Multiplexing and Master Mode</title><link>https://oooops.dev/blog/ssh-multiplexing-and-master-mode/</link><guid isPermaLink="true">https://oooops.dev/blog/ssh-multiplexing-and-master-mode/</guid><description>When using SSH bastion hosts it is common to set up new connections for many of the use cases discussed in the previous section throughout the day.</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Snippets</category><category>Unix</category></item><item><title>SSH Tunnelling and Port Forwarding</title><link>https://oooops.dev/blog/ssh-tunnelling-and-port-forwarding/</link><guid isPermaLink="true">https://oooops.dev/blog/ssh-tunnelling-and-port-forwarding/</guid><description>In the previous section we saw how to make use of a jump host as a proxy to run commands into a remote machine.</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Snippets</category><category>Unix</category></item><item><title>SSH X11 Forwarding</title><link>https://oooops.dev/blog/ssh-x11-forwarding/</link><guid isPermaLink="true">https://oooops.dev/blog/ssh-x11-forwarding/</guid><description>If you are using SSH between Unix-like operating systems, you can also forward GUI applications over SSH.</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><category>Networking</category><category>Snippets</category><category>Unix</category></item><item><title>Surviving Continuous Deployment in Distributed Systems</title><link>https://oooops.dev/blog/surviving-continuous-deployment-in-distributed-systems/</link><guid isPermaLink="true">https://oooops.dev/blog/surviving-continuous-deployment-in-distributed-systems/</guid><description>Note: a shorter, summarised version of this article has been published on the Thoughtworks blog. Read the full article here or watch the talk delivered at XConf Europe: Introduction This is an…</description><pubDate>Fri, 30 Jul 2021 00:00:00 GMT</pubDate><category>Agile</category><category>CI/CD</category><category>Extreme Programming</category><category>Refactoring</category><category>Software Architecture</category></item><item><title>The same code with Callbacks vs Promises vs Async/Await</title><link>https://oooops.dev/blog/the-same-code-with-callbacks-vs-promises-vs-async-await/</link><guid isPermaLink="true">https://oooops.dev/blog/the-same-code-with-callbacks-vs-promises-vs-async-await/</guid><description>Sometimes in JavaScript to have to deal with different flavours of asynchronous code, so it is handy to be able to map back and forth between them.</description><pubDate>Sat, 13 Feb 2021 00:00:00 GMT</pubDate><category>JavaScript</category><category>Snippets</category></item><item><title>Visualising distance from the main sequence and other Clean Architecture metrics in Java</title><link>https://oooops.dev/blog/visualising-distance-from-the-main-sequence-and-other-clean-architecture-metrics-in-java/</link><guid isPermaLink="true">https://oooops.dev/blog/visualising-distance-from-the-main-sequence-and-other-clean-architecture-metrics-in-java/</guid><description>I must not have been the only one to read “Clean Architecture” by Uncle Bob (Robert Martin) and be immediately sold on the abstractness, instability, coupling and main sequence metrics.I must not…</description><pubDate>Sun, 21 Feb 2021 00:00:00 GMT</pubDate><category>Java</category><category>Software Architecture</category></item></channel></rss>