<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>TechOps.Services</title>
        <link>https://paragraph.com/@techops-services</link>
        <description>We provide TechOps, DevOps and IT Support Services to Web3 and Blockchain Projects worldwide 24/7/365.</description>
        <lastBuildDate>Tue, 07 Apr 2026 09:35:38 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>TechOps.Services</title>
            <url>https://storage.googleapis.com/papyrus_images/fb077dbc6f6d40669237c264a88d60592daaa6f0e0ddc0d811f7732d2967c9cb.jpg</url>
            <link>https://paragraph.com/@techops-services</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[TechOps News - January 2024]]></title>
            <link>https://paragraph.com/@techops-services/techops-news-january-2024</link>
            <guid>gIUSlSZmyKFiP4Z1OBHP</guid>
            <pubDate>Wed, 31 Jan 2024 08:40:13 GMT</pubDate>
            <description><![CDATA[This is a copy of our January newsletter, a short check-in on what’s happening at TechOps and some interesting things worth sharing.✨ TechOps NewsWe’ve got out tickets to ETHDenver!We’re proud sponsors of Pragma Denver! You can win a free ticket.We published a new Blog post about our experience building Blockchain Keepers.We’ve launched our partnership program that helps us and our trusted partners expand our networks and reach even more people. If you’re interested in hearing more, come talk...]]></description>
            <content:encoded><![CDATA[<p>This is a copy of our January newsletter, a short check-in on what’s happening at TechOps and some interesting things worth sharing.</p><h1 id="h-techops-news" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>✨ TechOps News</strong></h1><ul><li><p>We’ve got out tickets to <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=ae2fce2fab&amp;e=b1d37b387d">ETHDenver</a>!</p></li><li><p>We’re proud sponsors of <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=e7585b8a54&amp;e=b1d37b387d">Pragma Denver</a>! You can win a <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=17a0b8de81&amp;e=b1d37b387d">free ticket</a>.</p></li><li><p>We published <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=5bd8eaa7dc&amp;e=b1d37b387d">a new Blog post</a> about our experience building Blockchain Keepers.</p></li><li><p>We’ve launched our <strong>partnership program</strong> that helps us and our trusted partners expand our networks and reach even more people. If you’re interested in hearing more, come talk to us on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=fe81ba2c10&amp;e=b1d37b387d">Discord</a>.</p></li></ul><h1 id="h-terraform-cloud-workspaces-monitoring" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>🚀 Terraform Cloud Workspaces Monitoring</strong></h1><p>During one of our team’s knowledge-sharing sessions, Sasha, from our engineering team, showed how he solved a long-lasting issue that many DevOps teams suffer from. We asked him some questions:</p><p><strong>What issue were you trying to solve?</strong></p><p>We observed issues with Terraform workspaces sometimes being incorrectly attached to GitHub or not updated to the master branch. This could be because someone is working on a test branch or because they forgot to switch back. At TechOps, where we bill by the ticket resolution time and we often pick up where someone left off, this causes delays and complications in software development, as engineers have to spend time rectifying these discrepancies instead of working on new tickets.</p><p><strong>What solution did you find so far?</strong></p><p>For now, I have created an automation that checks Terraform Cloud&apos;s workspaces connection to GitHub, its attachment to the master branch, and whether there are any errors or pending actions. It then creates a report that gets automatically posted to one of our internal Discord Channels at 08:00 am CET as we hand over from APAC to EU work hours.</p><p><strong>Are you satisfied with the result?</strong></p><p>It’s a step in the right direction and has already proven itself useful by reminding us of something we may have forgotten; or sparked a conversation during our Standup meetings about why something has changed. You can’t beat clear facts with human memory.</p><p><strong>What would you like to build next?</strong></p><p>I don’t know yet but we’re constantly looking out for ways of improving our efficiency. And it’s often small tools like this that bring us the most value because they take care of the mundane and allow us to focus on bigger and harder things.</p><p>If you would like to know more, you can reach Sasha or anyone from our engineering team through the <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=b9a62c1362&amp;e=b1d37b387d">TechOps Discord</a>.</p><h1 id="h-content-worth-sharing" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>💌 Content worth sharing</strong></h1><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=ad90d93e96&amp;e=b1d37b387d">2023 Anual Crypto Report</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=e1cd40ba0d&amp;e=b1d37b387d">Bitcoin ETF Approval by the SEC</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=35cfde40e1&amp;e=b1d37b387d">OpenAI’s custom GPT’s and GPT Store</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=645052aabe&amp;e=b1d37b387d">Kaspersky Employees IPhone’s Hack</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=89b8b2c423&amp;e=b1d37b387d">DevOps Memes</a></p></li></ul><h1 id="h-meetups" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>🙌 Meetups</strong></h1><p>You can find us at <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=c1f26d18cd&amp;e=b1d37b387d">ETHDenver</a> between the <strong>24th of February</strong> and the <strong>4th of March</strong> and at <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=ec33b5c2f2&amp;e=b1d37b387d">Pragma Denver</a> on the <strong>28th of February</strong> (<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=3e838301cd&amp;e=b1d37b387d">Free Tickets</a>). If you’re not able to make those events, we can meet you in Copenhagen, Melbourne, or <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=f7f79c23d4&amp;e=b1d37b387d">online</a>.</p><p>-</p><p>Thank you for staying connected with TechOps! If you have any questions or feedback or would like to explore collaborations, you can chat with us on <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://services.us13.list-manage.com/track/click?u=86c59db0cb712f51cf1577ebf&amp;id=9fcf054945&amp;e=b1d37b387d">Discord</a> or any of our socials or simply reply to this email.</p>]]></content:encoded>
            <author>techops-services@newsletter.paragraph.com (TechOps.Services)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/b800f227e3465965d6c65bd21d730aa98ae804acc22b66ab87a6c543a854c4cd.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[Building Blockchain Keepers at TechOps Services]]></title>
            <link>https://paragraph.com/@techops-services/building-blockchain-keepers-at-techops-services</link>
            <guid>Zsf2FC9nT5MAqdAn2nG9</guid>
            <pubDate>Thu, 25 Jan 2024 16:55:29 GMT</pubDate>
            <description><![CDATA[BackgroundIn the evolving landscape of blockchain technology and smart contracts development, one of the key components that plays a pivotal role is the "Keeper." A Keeper is a programmable bot or script that automatically performs tasks on a Blockchain Network, such as executing smart contract functions when certain conditions are met, with the result of maintaining efficiency and stability in decentralized systems. At TechOps Services, crafting custom keepers is part of our regular day-to-d...]]></description>
            <content:encoded><![CDATA[<h2 id="h-background" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Background</h2><p>In the evolving landscape of blockchain technology and smart contracts development, one of the key components that plays a pivotal role is the &quot;Keeper.&quot;  A Keeper is a programmable bot or script that automatically performs tasks on a Blockchain Network, such as executing smart contract functions when certain conditions are met, with the result of maintaining efficiency and stability in decentralized systems. At TechOps Services, crafting custom keepers is part of our regular day-to-day activity, providing essential bridges between on-chain and off-chain worlds. So far we have built many keepers with different uses. Here are some examples:</p><ul><li><p>Governance Keeper - executing the latest governance passed proposal at the proper time when it has to be executed</p></li><li><p>Poker Keeper - posting the latest Oracle prices</p></li><li><p>CDP Keeper - actively manage open Collateral Debt Positions</p></li><li><p>Starknet Teleport Keeper - the bridge between Ethereum and Starknet networks</p></li></ul><p>In this post, we describe one instance of this process when developing these specialized components for a customer. Here’s our first-hand experience resolving the challenges we had to tackle with this project. Let’s dive in!</p><h2 id="h-initiating-the-keeper-development" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Initiating the Keeper Development</h2><p>The development process started with ensuring all necessary environment variables were set. Since we planned on Running this keeper in Docker, it meant this would be a trivial process. One of the first critical steps was establishing a connection to Etherscan to fetch ABIs (Application Binary Interfaces) for the smart contract in question. Choosing a dynamic retrieval of ABI, rather than static storage,  ensured that the keeper would always interact with the latest version of the smart contract, accommodating updates and changes without manual intervention, thereby enhancing flexibility and reducing maintenance effort, which streamlined our design and ensured efficiency right from the get-go.</p><h2 id="h-designing-the-keeper-workflow" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Designing the Keeper Workflow</h2><p>To begin we worked with smart contracts developers to clearly understand the desired flow keeper should follow. We usually end up with a very clear and easy to read flow diagram, we confirm it with all stakeholders and always keep it up to date. It would look a bit like this:</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9247be75909aa99290851436ecf7e244d8bf61d5adb8d3bd86140757bdfa2cab.png" alt="An example of what it ended up looking like" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">An example of what it ended up looking like</figcaption></figure><p>We need the keeper to operate in a continuous loop, constantly checking for new Ethereum block confirmations. After some monitoring and testing, the choice of a five-second sleep interval struck the right balance between effective monitoring and resource optimization, especially in the context of our Infura usage limitations. (Although, you will see in a moment that we opted for a more cost effective solution.)</p><p>Carefully managing our Infura request quota was essential for long-term operation considering resources and costs. We fine-tuned our polling intervals to maintain an effective balance between active monitoring and quota conservation, a critical aspect of a keeper&apos;s sustainable operation.</p><h2 id="h-the-use-of-websockets-with-infura" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">The Use of WebSockets with Infura</h2><p>To maintain real-time updates, we considered using Websocket with Infura. This would have established a persistent connection for event consumption, reducing latency and network load, and enabling a more responsive and efficient operational model. However, it necessitated a shift to asynchronous programming, which we decided to reserve for a future iteration, considering our existing progress and time constraints.</p><h2 id="h-self-hosted-ethereum-nodes-as-an-alternative" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Self-Hosted Ethereum Nodes as an alternative</h2><p>Utilizing our own Ethereum nodes offered significant cost savings compared to relying solely on Infura, so we decided to go with our own nodes. This strategy enhanced our operational flexibility and scalability, allowing us to manage a higher volume of requests without the constraints of third-party quotas. The move towards self-hosting was a strategic decision to optimize for our use case with the added benefit of supporting a more decentralized blockchain infrastructure.</p><h2 id="h-embracing-pythons-multithreading-capabilities" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Embracing Python’s Multithreading Capabilities</h2><p>A highlight of this project for us was leveraging the enhanced multi-threading capabilities in Python 3.11. This advancement brought us closer to the multi-threading efficiency of languages like Java, allowing each keeper to run in separate threads with improved performance. This makes sense because it can significantly improve the efficiency and responsiveness of the keeper. Multi-threading allows the keeper to perform multiple operations concurrently, such as monitoring different contracts or executing various tasks simultaneously. Enhanced multi-threading can lead to better resource utilization, faster execution, and overall improved performance of the keeper. As an example, this level of efficiency can be a huge win for DeFi when performing multiple market order liquidations.</p><h2 id="h-keeper-flow-event-management-and-exceptions-in-logical-flow" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Keeper Flow, Event Management and Exceptions in Logical Flow</h2><p>Our keepers start by aggregating all relevant past events from the blockchain, processing each sequentially. This approach required an in-depth understanding of blockchain&apos;s unique operational environment, different from the more traditional architectures.</p><p>In traditional programming, exceptions are errors that occur during the execution of a program. Software Developers try to minimize exceptions because they often indicate something has gone wrong. However, in the context of keepers interacting with smart contracts, exceptions can be reinterpreted in a more nuanced way.</p><p>Intriguingly, smart contract exceptions in our keeper&apos;s flow weren&apos;t indicators of errors but signals of timing for function execution. For us, this novel use of exceptions exemplified our adaptive approach to utilizing blockchain&apos;s functionalities effectively.</p><h2 id="h-understanding-the-nuances-of-solidity-functions" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Understanding the Nuances of Solidity Functions</h2><p>Differentiating between static and dynamic functions in Solidity was vital. While static functions can&apos;t initiate transactions (and don’t cost any gas), dynamic functions can. This understanding was crucial for our interactions with the blockchain, ensuring cost-effectiveness and functional accuracy.</p><h2 id="h-rigorous-testing-for-optimal-performance" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Rigorous Testing for Optimal Performance</h2><p>Testing was a cornerstone of our development process. Tools like CodeCov helped us identify untested code segments, guiding our testing strategy. Mock calls were used to simulate blockchain interactions, ensuring the reliability and accuracy of our keepers.</p><h2 id="h-deployment-and-monitoring-strategies" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Deployment and Monitoring Strategies</h2><p>Leveraging Kubernetes, we were able to deploy our keeper service efficiently using GitHub Actions and managing them with Terraform for any future continuous deployments. However, the real challenge lies in monitoring our wallet activities on-chain. Having developed a monitoring Lambda function to track success (or failure) of all the transactions via Etherscan API, we ensured the operational integrity of this service by closely monitoring its behavior over time.</p><p>This venture into blockchain keeper development wasn&apos;t just about understanding blockchain intricacies; it was about integrating modern software engineering practices into the decentralized world. Through this post, we aim to provide some valuable insights for those looking to navigate similar paths in the blockchain and smart contract arena.</p><p>If you&apos;re considering developing your own keepers and need expert guidance or assistance, TechOps Services is here to help. Our experienced team is well-equipped, up to date and ready to support projects in this innovative and rapidly evolving field. Feel free to reach out to us for collaboration, advice, or services tailored to your blockchain development needs. <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mailto:info@techops.services">info@techops.services</a></p>]]></content:encoded>
            <author>techops-services@newsletter.paragraph.com (TechOps.Services)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/4f43dd4bc4377bbfbb5059933d501a26f677d492ad3a52a739b7de78338413b0.jpg" length="0" type="image/jpg"/>
        </item>
        <item>
            <title><![CDATA[The Seamless Rebranding of Summer.fi]]></title>
            <link>https://paragraph.com/@techops-services/the-seamless-rebranding-of-summer-fi</link>
            <guid>K2VF952gbqctexvA1t7u</guid>
            <pubDate>Tue, 12 Sep 2023 11:34:34 GMT</pubDate>
            <description><![CDATA[In Q2 of 2023 Summer.fi, formerly known as Oasis.apps, embarked on a rebranding journey that showcased the power of having a team like TechOps at their disposal to pull it off. Their motive? They were ready to go bigger and bolder and they needed new branding that represented their ambition and place in the DeFi space.Summer.fi & TechOps: Business as usualTechOps has been providing DevOps, 24/7 monitoring and IT support services to Summer.fi since August 2022. So when this project was brought...]]></description>
            <content:encoded><![CDATA[<p>In Q2 of 2023 Summer.fi, formerly known as Oasis.apps, embarked on a rebranding journey that showcased the power of having a team like TechOps at their disposal to pull it off. Their motive? They were ready to go bigger and bolder and they needed new branding that represented their ambition and place in the DeFi space.</p><h2 id="h-summerfi-and-techops-business-as-usual" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://Summer.fi">Summer.fi</a> &amp; TechOps: Business as usual</h2><p>TechOps has been providing DevOps, 24/7 monitoring and IT support services to Summer.fi since August 2022. So when this project was brought up at one of the monthly planning meetings and a deadline was given, there was no delay in starting to research, plan, and brainstorm how to pull it off effectively.</p><p>Part of the plan was understanding what kind of downtime different services could accommodate, based on discussions with Summer.fi Engineers, and making sure that the end users wouldn’t see any impact.</p><p>Since communication is key to everything in life, TechOps began by listing what tasks and elements would need to be changed and collecting all insights into one place. In this case a collaborative document in the popular note-taking app Notion. This would allow both teams to collaborate and contribute, giving a clear overview and resolving any questions that came up.</p><h2 id="h-executing-the-plan" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>Executing the Plan</strong></h2><p>Success would mean that everything was deployed and running without impacting the usability of the Summer.fi website and WebApp, welcoming users with a nice surprise the next time they returned to the site.</p><p>The roadmap was straightforward:</p><ol><li><p><strong>Identify all the elements that need changing</strong>, including text references, static assets, domains, URLs, and specific variables.</p></li><li><p><strong>Plan how to pull off a smooth final switch</strong>. Which parts of the infrastructure don’t require migration and which parts can be migrated in stages.</p></li><li><p><strong>Divide the process into smaller tasks</strong> that can be picked up by and assigned to anyone within TechOps.</p></li><li><p><strong>Prepare a staging environment</strong> to test the production migration process and make sure the monitoring, alerting, and other testing systems run smoothly.</p></li><li><p><strong>Thoroughly assess and test</strong> all aspects to prevent glitches or downtime.</p></li></ol><p>Guiding the backend symphony was Cristi from the TechOps team, a DevOps engineer with over 10 years of experience who works from Northern Spain. He would work alongside TechOps’ Project manager Arti to handle the plan, steps to be taken, and their timelines for completion. Further discussions could take place on the already existing and regularly used communication channels that Summer.fi has with TechOps and, as usual, in person at the weekly check-in meetings between TechOps and Summer.fi.</p><h2 id="h-crossing-the-finish-line" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Crossing the Finish Line</h2><p>Anticipating challenges and potential snags had been foreseen with solutions proactively placed. With progressive switching of certain elements so that the front end wouldn’t be affected by changes made in the back end allowed the front end to be the last thing to be changed. That way, when it came to the transition, the TechOps team had all redirects in place and planned the final switch just before Summer.fi would make their press release and announcements.</p><p>The result was a stunning new look, celebrated for its design with a couple of new features to drive home the power of Summer.fi to users. All without missing a beat.</p><p>These kinds of projects become routine when everyone on the team has a minimum of 10 years of experience. So In the ever-shifting digital landscape, a project like Summer.fi&apos;s rebranding proves that simplicity in effective collaboration and precise execution doesn’t have to be overly complicated, exhausting, or feared. When you have top engineers available 24/7, teamwork, planning and dedication lead to seamless execution, leaving a lasting impression on the tech horizon for how modern work should be done.</p><p>Thank you for reading this use case story between TechOps Services and Summer.fi. If you would like to know more please visit <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://techops.services">techops.services</a> and <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://summer.fi">summer.fi</a>.</p>]]></content:encoded>
            <author>techops-services@newsletter.paragraph.com (TechOps.Services)</author>
            <enclosure url="https://storage.googleapis.com/papyrus_images/cf321bdbb06dca378373c5c9135247f5bfecd849090c29170811163c65b47f20.jpg" length="0" type="image/jpg"/>
        </item>
    </channel>
</rss>