<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marko Krstic</title>
    <description>The latest articles on DEV Community by Marko Krstic (@krstak).</description>
    <link>https://dev.to/krstak</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3216418%2F4fd81c58-423e-4629-b90a-7e4044a4d9d9.jpg</url>
      <title>DEV Community: Marko Krstic</title>
      <link>https://dev.to/krstak</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/krstak"/>
    <language>en</language>
    <item>
      <title>DockStats: Lightweight Docker Monitoring for Logs and Metrics</title>
      <dc:creator>Marko Krstic</dc:creator>
      <pubDate>Sat, 21 Jun 2025 10:43:18 +0000</pubDate>
      <link>https://dev.to/krstak/dockstats-lightweight-docker-monitoring-for-logs-and-metrics-1945</link>
      <guid>https://dev.to/krstak/dockstats-lightweight-docker-monitoring-for-logs-and-metrics-1945</guid>
      <description>&lt;p&gt;In the world of modern software development, where agility and scalability rule, Docker has become a cornerstone technology. It enables developers to package applications and dependencies into containers that can run anywhere, from local development environments to vast production clusters. But as helpful as Docker is for deployment, it poses a challenge for monitoring and observability, especially for teams managing multiple containers across several hosts.&lt;/p&gt;

&lt;p&gt;That’s where &lt;a href="https://dockstats.com" rel="noopener noreferrer"&gt;DockStats&lt;/a&gt; steps in.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is DockStats?
&lt;/h2&gt;

&lt;p&gt;DockStats is a lightweight yet powerful monitoring platform built for developers and teams who run Docker containers in production. It provides real-time access to logs and system metrics from all Docker containers across all your hosts, all in one centralized dashboard. Whether you deploy applications on a single machine or manage multiple Docker hosts, DockStats makes it easy to keep tabs on everything.&lt;/p&gt;

&lt;p&gt;Unlike many traditional monitoring tools that are often bulky, expensive, or designed for Kubernetes-heavy environments, DockStats is specifically engineered for simplicity, efficiency, and flexibility. It was created with a clear focus: empower developers with deep visibility into their Dockerized infrastructure without introducing unnecessary complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Monitoring Docker is Hard
&lt;/h2&gt;

&lt;p&gt;Monitoring Docker isn't always straightforward. Containers can start and stop quickly, and when they do, their logs often disappear. Tracking performance and usage across different hosts can be complicated and usually involves using several tools with complex setup steps. For developers who want simple and reliable observability, this quickly becomes frustrating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Common Challenges:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Short-lived containers&lt;/strong&gt;: Logs and data vanish when containers stop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiple hosts&lt;/strong&gt;: It's tough to gather everything in one place.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Too many tools&lt;/strong&gt;: Often need separate solutions for logs, metrics, and alerts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Complicated setup&lt;/strong&gt;: Many tools require lots of configuration to get started.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  DockStats to the Rescue
&lt;/h2&gt;

&lt;p&gt;DockStats tackles these challenges with a minimalistic yet effective approach:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy Integration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Just run the DockStats Agent on any Docker host. That’s it. The agent automatically detects all running containers and starts collecting logs and metrics without the need for manual configuration. It works seamlessly in any Docker environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Centralized Dashboard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;All collected data is sent to the DockStats Hub — your unified monitoring interface. No matter how many hosts or containers you have, everything is aggregated and displayed in one place. You get a holistic view of your system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Secure and Lightweight&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent is built to be lightweight and efficient, so it doesn’t burden your system resources. All data is encrypted in transit. If you choose the cloud version, nothing is stored locally — logs and metrics stream securely to the cloud dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud or Self-Hosted Options&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DockStats offers complete flexibility. Use the fully managed cloud platform, or deploy DockStats Hub on your own infrastructure. This dual model makes DockStats suitable for both startups and enterprises with strict compliance requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of DockStats
&lt;/h2&gt;

&lt;p&gt;Let’s dig deeper into what makes DockStats such a powerful tool for Docker observability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Automatic Log Collection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As soon as the DockStats Agent is running, it begins collecting logs from all containers on that host. No need to modify container definitions or volumes. It understands the Docker runtime and hooks into the right places.&lt;/p&gt;

&lt;p&gt;Logs are aggregated and made available for search and filtering through the central dashboard. This means that even if you have containers running on 10 different VMs, all their logs are unified.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Log Classification and Filtering
&lt;/h2&gt;

&lt;p&gt;DockStats organizes logs by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Log level (INFO, WARN, ERROR, etc.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Application name&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Environment (e.g., production, staging)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also search and filter logs by message content or custom fields embedded in structured logs (e.g., JSON-formatted logs). This makes it easy to pinpoint issues or track behavior across your microservices.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Basic Log Analytics
&lt;/h2&gt;

&lt;p&gt;DockStats gives you a visual understanding of log activity over time. Spot spikes in errors, identify unusual patterns, or analyze trends in system output. This is especially helpful for post-mortems or understanding cascading failures.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Host and Container Metrics
&lt;/h2&gt;

&lt;p&gt;On the metrics side, DockStats monitors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Host-level resources: CPU, memory, disk, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Per-container metrics: CPU and memory usage per container, no matter which host it's on.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This level of granularity helps you understand how each container behaves and how it contributes to overall system load.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Alerts and Thresholds
&lt;/h2&gt;

&lt;p&gt;Get notified when things go wrong. DockStats lets you set alerts for key resource thresholds (e.g., container CPU usage exceeds 80%, memory usage above 90%). This way, you can react before your application crashes or slows down.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;DevOps Monitoring&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Track and monitor Docker containers in real-time across environments. Whether it’s dev, staging, or production, you’ll always know what’s happening inside your containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Incident Response&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use DockStats to dig into logs during outages, pinpoint the root cause, and correlate metrics with application behavior.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance Optimization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Spot resource-hungry containers or inefficient memory usage. Use this insight to optimize your infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Audit and Compliance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're in a regulated industry, having a complete log trail across all containers is vital. DockStats gives you that historical record.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture Behind DockStats
&lt;/h2&gt;

&lt;p&gt;DockStats is composed of two core components:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DockStats Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A small, efficient binary that runs on each Docker host. It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Detects all containers on the host&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Streams logs and metrics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Requires no extra setup&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DockStats Hub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The central dashboard that ingests and visualizes all data. You can use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;cloud-hosted version&lt;/strong&gt; (fast and managed for you)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The &lt;strong&gt;self-hosted version&lt;/strong&gt; (for full control and data privacy)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Designed for Developers
&lt;/h2&gt;

&lt;p&gt;Many monitoring tools are built for IT Ops teams and come with a steep learning curve. DockStats is different. It’s built with the developer experience in mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Easy to set up&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Works out of the box&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No vendor lock-in&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clear, clean UI&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Affordable pricing (and free tier for small teams)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Observability shouldn't be a luxury reserved for large enterprises or Kubernetes-native applications. With DockStats, developers finally get a tool that is lightweight, powerful, and tailored for monitoring Docker containers in production.&lt;/p&gt;

&lt;p&gt;If you’re tired of cobbling together logs, metrics, and alerts from three or more different systems, give DockStats a try. It could be the missing piece in your DevOps toolkit.&lt;/p&gt;

&lt;p&gt;Learn more or sign up at &lt;a href="https://dockstats.com" rel="noopener noreferrer"&gt;dockstats.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>monitoring</category>
      <category>logging</category>
    </item>
    <item>
      <title>From Freelance to Founder: The Simple Rules That Keep Clients Coming Back</title>
      <dc:creator>Marko Krstic</dc:creator>
      <pubDate>Fri, 13 Jun 2025 08:51:55 +0000</pubDate>
      <link>https://dev.to/krstak/from-freelance-to-founder-the-simple-rules-that-keep-clients-coming-back-5gop</link>
      <guid>https://dev.to/krstak/from-freelance-to-founder-the-simple-rules-that-keep-clients-coming-back-5gop</guid>
      <description>&lt;p&gt;In a world full of freelancers, agencies, and tech startups, standing out isn’t about having the flashiest portfolio or charging the highest rates. Often, it comes down to something much simpler: reliability, honesty, and consistent communication. I’m currently a freelance developer working toward the long-term goal of building a successful development company. So far, I haven’t lost a single client — and I intend to keep it that way.&lt;/p&gt;

&lt;p&gt;How? I follow four core principles that have helped me deliver exceptional results, build lasting client relationships, and create a reputation strong enough to fuel growth. They’re not groundbreaking, but they are effective. This blog post dives into each one, explains why they matter, and explores how any freelancer or aspiring entrepreneur can adopt them to build a solid foundation for long-term success.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Always Overdeliver: Underpromise, Overdeliver
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Never promise more than you can do; it's better to promise less and deliver more."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Overdelivering isn’t about working yourself to the bone for free. It’s about creating a margin of excellence in your client’s mind. When you deliver more than what was agreed upon, you create delight. Clients don’t just feel satisfied — they feel impressed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Expectation management: When you underpromise (without compromising on value), you leave room to exceed expectations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trust builder: Overdelivering shows you're invested in the project, not just the paycheck.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Marketing advantage: Happy clients become advocates. They refer you, promote you, and come back with more work.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Overdeliver Without Burning Out:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Add a simple extra feature or functionality that wasn’t scoped but adds clear value.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide documentation, user guides, or videos that go beyond what was expected.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Anticipate problems before the client notices them and offer solutions proactively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deliver ahead of schedule when possible.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overdelivering shouldn’t become the norm that you get taken advantage of — it should be a deliberate strategy to make your work memorable.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Radical Honesty: Own Every Mistake
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Always be honest. Never lie. Even if you make a mistake, admit it. That builds trust."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It sounds simple, but radical honesty is rare. Most people instinctively try to cover up mistakes, shift blame, or justify errors. But in client relationships, trust is everything. The minute a client senses you’re hiding something, the relationship deteriorates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Transparency is refreshing: It sets you apart in a market where many overhype their capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trust breeds loyalty: Clients who trust you are more likely to be patient, collaborative, and understanding.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mistakes are inevitable: Owning them turns problems into opportunities for growth and better systems.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Practice Radical Honesty:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you make a mistake, tell the client immediately, explain what went wrong, and propose a solution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you’re uncertain about a request or technology, say so. Then offer to research or bring in someone who knows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Avoid vague updates. Be clear about setbacks, delays, or roadblocks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your honesty is your reputation. Long-term business success isn’t built on perfection, but on trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Be Unshakably Reliable: Deadlines Are Sacred
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"Always be on time and never miss a deadline."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In freelance work, your word is your bond. You don’t have a massive brand backing you or a big-name agency on your resume. What you do have is the power to show up exactly when you say you will and deliver exactly what you promised.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Deadlines reduce uncertainty: When clients know you’re dependable, they stop micromanaging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reliability scales: As you build a team or grow your business, the same discipline creates a culture of punctuality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Most freelancers flake: Being reliable automatically puts you in the top tier.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Maintain Deadline Discipline:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Scope your work accurately and always include buffers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Break the project into smaller deliverables with internal milestones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use tools like Trello, Notion, or Asana to keep track of progress.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Say no when your schedule is full. Overcommitting is the enemy of reliability.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One missed deadline can erase months of goodwill. Being known as someone who always delivers on time is a competitive edge few people take seriously enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Communicate Early, Communicate Often
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;"If the client is asking 'how is the project going?', you’re already behind."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Communication is one of the most underrated aspects of client service. You might be doing brilliant work behind the scenes, but if your client doesn’t hear from you, their confidence starts to erode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Works:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Reduces anxiety: Regular updates keep clients relaxed and engaged.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Eliminates surprises: Issues caught early are easier to fix.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Builds a narrative: Frequent communication creates a story of progress that the client can follow and share.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Communicate Well:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Schedule weekly check-ins via Zoom or Slack.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Send progress summaries after major milestones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proactively inform clients of changes, risks, or delays.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask for feedback early and often, not just at the end.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good communication is the glue that holds projects together. Great communication is the reason clients come back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Compound Effect: What Happens When You Apply All Four&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Individually, these rules create trust, efficiency, and satisfaction. Together, they create a reputation. Clients don’t just see you as a contractor; they see you as a partner. That’s the difference between someone who gets one-off gigs and someone who builds a business with long-term clients, referrals, and growth opportunities.&lt;/p&gt;

&lt;p&gt;Here’s what happens when you stick to these rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You stop competing on price. Clients are happy to pay a premium for peace of mind.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You get consistent referrals. Word-of-mouth becomes your best marketing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You build long-term partnerships. Repeat business means fewer sales calls and more time doing actual work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You create a foundation for scaling. When it’s time to hire or start an agency, you already have clients who trust you to lead a team.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Building a Dev Company: Why These Rules Matter Even More at Scale&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As I work toward turning my freelance work into a development company, these rules aren’t changing. They’re becoming even more essential.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;When I hire, I’ll look for people who embody the same principles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When I build processes, they’ll be designed around trust, communication, and delivery.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When I market the company, our brand will stand for reliability and transparency.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Clients don’t care if you’re a solo freelancer or a 10-person team. They care about outcomes, communication, and whether they can sleep at night knowing their project is in good hands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Success Doesn’t Have to Be Complicated&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A lot of people overcomplicate freelancing and business-building. They chase hacks, trends, and tools. But if you focus on doing the basics well — overdelivering, being honest, meeting deadlines, and communicating consistently — you’ll be ahead of 90% of the field.&lt;/p&gt;

&lt;p&gt;Clients remember how you made them feel. If they felt confident, informed, respected, and impressed, they’ll never forget you. And they’ll never leave.&lt;/p&gt;

&lt;p&gt;That’s how I’ve kept 100% of my clients so far. And that’s how I plan to keep growing from freelancer to founder.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;About Me&lt;/strong&gt;&lt;br&gt;
I'm a freelance developer and founder of &lt;a href="https://www.cyberoutput.net" rel="noopener noreferrer"&gt;Cyberoutput&lt;/a&gt; — a dev company in the making focused on delivering high-quality software with clarity and precision. I'm also building &lt;a href="https://dockstats.com" rel="noopener noreferrer"&gt;DockStats&lt;/a&gt;, a tool for aggregating Docker logs and metrics to make container monitoring easier and more efficient.&lt;/p&gt;

&lt;p&gt;If you're curious about my work or want to collaborate, feel free to explore either platform.&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>founder</category>
      <category>programming</category>
      <category>sass</category>
    </item>
    <item>
      <title>Why Golang Is Such a Powerful Language</title>
      <dc:creator>Marko Krstic</dc:creator>
      <pubDate>Mon, 02 Jun 2025 12:00:53 +0000</pubDate>
      <link>https://dev.to/krstak/why-golang-is-such-a-powerful-language-1gag</link>
      <guid>https://dev.to/krstak/why-golang-is-such-a-powerful-language-1gag</guid>
      <description>&lt;p&gt;When I first started learning Go (or Golang), I didn’t expect much. It looked very simple, maybe even too simple. But after spending time with it and building real projects, I realized that this simplicity is actually what makes Go so powerful. In this blog post, I’ll try to explain why Go is such a great programming language, especially for people who want to build solid, fast, and reliable software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simplicity Is Power
&lt;/h2&gt;

&lt;p&gt;Go is very easy to learn. The syntax is small, and you can understand most of it in a day or two. You don’t need to learn a huge number of features to be productive. There are no crazy complex patterns, and you won’t find tons of hidden magic. What you write is what you get.&lt;/p&gt;

&lt;p&gt;This simplicity helps teams move faster. Everyone understands the code easily. There are fewer bugs because there is less complexity. And when there are bugs, they are easier to find and fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Explicit Code Wins
&lt;/h2&gt;

&lt;p&gt;In Go, everything is very explicit. You see what the code is doing. There is no guessing. This might feel a bit annoying at first because you have to write a little more, but in the long run, it pays off. It makes reading and understanding code much easier, especially for new developers joining the project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Great Standard Library
&lt;/h2&gt;

&lt;p&gt;Go comes with a very clean and powerful standard library. It doesn’t have everything, but what it does have works very well. You can write a web server, handle JSON, work with files, deal with networking, and more – all with the standard library.&lt;/p&gt;

&lt;p&gt;Because the library is not bloated, it’s also easier to learn. You don’t have to remember hundreds of packages. You focus on what matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concurrency Made Easy
&lt;/h2&gt;

&lt;p&gt;Concurrency is the ability to run many things at the same time. It’s super important for modern software, especially when building servers or systems that do a lot of things at once.&lt;/p&gt;

&lt;p&gt;Go has something called goroutines and channels. They make concurrency very simple and safe. Instead of dealing with threads and locks, you use goroutines to run tasks and channels to communicate between them.&lt;/p&gt;

&lt;p&gt;This is one of the biggest reasons people love Go. You can write fast, scalable programs without a lot of pain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Easy to Learn and Use
&lt;/h2&gt;

&lt;p&gt;Many developers say that Go is boring. But that’s a good thing! Boring means stable, predictable, and safe. It means fewer surprises and more time to focus on building your app.&lt;/p&gt;

&lt;p&gt;If you’re coming from languages like JavaScript, Python, or Java, you will find Go very refreshing. It doesn’t try to be clever. It just works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Popularity and Job Market
&lt;/h2&gt;

&lt;p&gt;Go is very popular right now. Big companies use it, and many startups love it too. It’s especially popular for backend systems, cloud tools, and microservices.&lt;/p&gt;

&lt;p&gt;Because of this, there are lots of job opportunities for Go developers. And since the language is so efficient and simple, companies can move fast and hire Go devs who can get things done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Famous Tools Written in Go
&lt;/h2&gt;

&lt;p&gt;A lot of very powerful and popular tools are written in Go. This shows that Go is not just a toy language. It’s used for serious stuff. Here are a few of them:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes (k8s)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kubernetes.io" rel="noopener noreferrer"&gt;Kubernetes&lt;/a&gt; is a system for managing containers. It helps you run apps across many servers. It handles scaling, failover, and more. It’s used by big tech companies and is one of the most important cloud tools today. Written in Go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.docker.com" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; is a tool that lets you package apps into containers. These containers run anywhere. It changed how we deploy software. The core of Docker is written in Go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.hashicorp.com/terraform" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt; is used to manage infrastructure. You can define your servers, databases, and networks in code, and Terraform will create them for you. It’s like DevOps magic. Written in Go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prometheus&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://prometheus.io" rel="noopener noreferrer"&gt;Prometheus&lt;/a&gt; is a monitoring system. It collects metrics from your apps and systems and lets you alert when something goes wrong. It’s also written in Go and is part of the Cloud Native stack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dockstats&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dockstats.com" rel="noopener noreferrer"&gt;DockStats&lt;/a&gt; is a tool for monitoring Docker containers. It has a hub and agents, and it helps track what containers are doing. It’s written in Go and is easy to use. A nice feature is that it collects logs and metrics from many hosts and puts them all in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Go Makes You a Better Developer
&lt;/h2&gt;

&lt;p&gt;Because Go doesn’t have a lot of "magic," you end up learning a lot about how things really work. You understand how to design software. You learn how to handle errors, how to test code, and how to think in a simple way.&lt;/p&gt;

&lt;p&gt;Go helps you focus on real engineering. Not on tools or frameworks.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's Not All Perfect, But That's Okay
&lt;/h2&gt;

&lt;p&gt;Go is not perfect. Sometimes it can feel too simple. Generics were missing for a long time (they were added recently). Error handling is a bit repetitive. But even with these flaws, Go gets the job done. And the simplicity often turns out to be an advantage, not a downside.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Go is a great language for building real-world software. It’s simple, fast, and powerful. It makes it easy to write code that is easy to understand, maintain, and scale. Many of the most important tools in the cloud-native world are written in Go.&lt;/p&gt;

&lt;p&gt;If you’re thinking about learning Go or using it for your next project, I highly recommend it. It might feel strange at first, but once you get used to it, you’ll see why so many developers love it.&lt;/p&gt;

&lt;p&gt;Go is not just another language. It’s a tool that helps you build amazing software, stay productive, and grow as a developer.&lt;/p&gt;

</description>
      <category>go</category>
      <category>docker</category>
      <category>tooling</category>
      <category>devops</category>
    </item>
    <item>
      <title>Centralized Logging for Docker: What Are Your Options?</title>
      <dc:creator>Marko Krstic</dc:creator>
      <pubDate>Wed, 28 May 2025 07:58:18 +0000</pubDate>
      <link>https://dev.to/krstak/centralized-logging-for-docker-what-are-your-options-3l8</link>
      <guid>https://dev.to/krstak/centralized-logging-for-docker-what-are-your-options-3l8</guid>
      <description>&lt;p&gt;When you run a lot of Docker containers, it can be hard to see what is going on. Each container writes logs and these logs might be important. They help you know if something is broken. They also help you understand how your app is working.&lt;/p&gt;

&lt;p&gt;But logs from many containers on many servers? That can get messy. This is why people use centralized logging. Centralized logging means all logs go to one place so that you can look at them easily.&lt;/p&gt;

&lt;p&gt;In this post, we will talk about how to collect logs from Docker. We will see what tools people use. And we will look at the pros and cons of each.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Logs Matter
&lt;/h2&gt;

&lt;p&gt;Logs are like notes that your app writes. These notes say what the app is doing. If the app crashes, the logs can tell you why. If users have problems, the logs help you understand them.&lt;/p&gt;

&lt;p&gt;Without logs, fixing bugs is like guessing. Logs are your flashlight in the dark.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Docker Logs Work
&lt;/h2&gt;

&lt;p&gt;Docker containers run apps. These apps write logs. By default, Docker collects these logs. You can see them with:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;docker logs &amp;lt;container-name&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;But this only works for one container at a time. If you have 10 containers, you must run the command 10 times. Not fun.&lt;/p&gt;

&lt;p&gt;Also, if your container crashes and restarts, old logs may be gone. So we need a better way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Centralized Logging
&lt;/h2&gt;

&lt;p&gt;Centralized logging means you collect all logs from all containers. You send them to one place and this place stores the logs. It shows you the logs in a nice way.&lt;/p&gt;

&lt;p&gt;There are many tools for this. Let’s look at some of them.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. ELK Stack (Elasticsearch, Logstash, Kibana)
&lt;/h3&gt;

&lt;p&gt;🔗 &lt;a href="https://www.elastic.co/what-is/elk-stack" rel="noopener noreferrer"&gt;ELK Stack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ELK Stack is a popular open-source solution for log management.&lt;br&gt;
Logstash collects and processes logs from different sources, and sends them to Elasticsearch. Elasticsearch stores and indexes the data so you can search it quickly. Kibana lets you view and explore the logs in a dashboard. It’s powerful, but setting it up and running it can be heavy on resources and hard to manage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Powerful query and search capabilities.&lt;/li&gt;
&lt;li&gt;Tons of community support and documentation.&lt;/li&gt;
&lt;li&gt;Kibana has rich visualizations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complex to deploy and maintain.&lt;/li&gt;
&lt;li&gt;High resource usage (RAM, CPU, disk).&lt;/li&gt;
&lt;li&gt;Too complex for small apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Big teams with time to manage it.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Loki + Promtail + Grafana
&lt;/h3&gt;

&lt;p&gt;🔗 &lt;a href="https://grafana.com/oss/loki/" rel="noopener noreferrer"&gt;Loki&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Loki is a log aggregation system made by the creators of Grafana. Promtail is the agent that collects logs from files or containers and sends them to Loki. Grafana is used to search and visualize the logs. It’s much lighter than ELK and easy to use if you already work with Grafana. Loki works best with Grafana — using it without Grafana is possible, but not ideal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Easier than ELK.&lt;/li&gt;
&lt;li&gt;Uses less memory.&lt;/li&gt;
&lt;li&gt;Works well with Prometheus.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Less powerful than ELK.&lt;/li&gt;
&lt;li&gt;Needs many pieces to work.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; People who already use Grafana.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Graylog
&lt;/h3&gt;

&lt;p&gt;🔗 &lt;a href="https://www.graylog.org/" rel="noopener noreferrer"&gt;Graylog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Graylog is a log management tool that works with structured and unstructured logs. You can collect logs from Docker using the GELF log driver or tools like Filebeat. It stores and indexes the logs so you can search and filter them later. Graylog can be self-hosted for free, or used as a managed cloud service if you want. Setup is flexible but might need more steps compared to simpler tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean UI.&lt;/li&gt;
&lt;li&gt;Easy to use search.&lt;/li&gt;
&lt;li&gt;More user-friendly than raw ELK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Still needs Elasticsearch.&lt;/li&gt;
&lt;li&gt;Scaling can get complex.&lt;/li&gt;
&lt;li&gt;Not super light.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Teams who want ELK but easier.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. DockStats
&lt;/h3&gt;

&lt;p&gt;🔗 &lt;a href="https://dockstats.com?utm_source=dev.to&amp;amp;utm_medium=organic"&gt;DockStats&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DockStats is a lightweight, and probably the simplest, cloud-based platform made for Docker users. You install a small agent on your servers, and it collects logs and system metrics. The data is sent securely to the DockStats dashboard where you can search and filter it. There's no need for complex setup — just one agent and you're ready to go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No configuration needed — plug and play&lt;/li&gt;
&lt;li&gt;Collects logs from all Docker containers.&lt;/li&gt;
&lt;li&gt;Logs and metrics in one place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Still new, many features still coming.&lt;/li&gt;
&lt;li&gt;Small but growing community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Developers who run Docker without Kubernetes. Especially if you self-host everything.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Should You Use?
&lt;/h3&gt;

&lt;p&gt;It really depends on what you need and how much time and energy you want to spend.&lt;/p&gt;

&lt;p&gt;If you want something powerful and flexible, and you don’t mind a complex setup, the ELK Stack is a strong choice. But be ready to deal with memory usage, configuration files, and maybe even a full-time person to manage it.&lt;/p&gt;

&lt;p&gt;If you already use Grafana and like simple tools, then Loki + Promtail might be perfect. It’s easier to run than ELK, and it works well for most use cases. But keep in mind, it’s mainly built for Grafana, so if you don’t use Grafana, it might feel limited.&lt;/p&gt;

&lt;p&gt;If you like to customize everything and want a mix of open-source and enterprise features, Graylog could work. It gives you a lot of control and different ways to collect logs. But again, setup can take some time, especially if you're new to it.&lt;/p&gt;

&lt;p&gt;If you're self-hosting apps in Docker and just want something quick, easy, and made for developers, DockStats is worth trying. You just drop in one agent, and you get a clean dashboard for logs and metrics, without having to manage big systems or deal with Elasticsearch. It’s also a nice fit if you're running many small servers and want everything in one place without stress.&lt;/p&gt;

&lt;p&gt;There’s no one-size-fits-all, but now you have a better idea of what each tool does — so pick the one that feels right for your project. ✅&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Words
&lt;/h3&gt;

&lt;p&gt;Logs are important. If you run Docker apps, logs help you stay in control.&lt;/p&gt;

&lt;p&gt;Start with something simple. You can always change later.&lt;/p&gt;

&lt;p&gt;Happy logging! 🐳&lt;/p&gt;

</description>
      <category>docker</category>
      <category>devops</category>
      <category>logging</category>
    </item>
  </channel>
</rss>
