<?xml version="1.0" encoding="UTF-8"?>
<!-- This sitemap was dynamically generated on April 5, 2026 at 10:32 pm by All in One SEO v4.9.2 - the original SEO plugin for WordPress. -->

<?xml-stylesheet type="text/xsl" href="https://tonis.dev/default-sitemap.xsl"?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>tonisives</title>
		<link><![CDATA[https://tonis.dev]]></link>
		<description><![CDATA[tonisives]]></description>
		<lastBuildDate><![CDATA[Wed, 22 Jan 2025 23:52:43 +0000]]></lastBuildDate>
		<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
		<atom:link href="https://tonis.dev/sitemap.rss" rel="self" type="application/rss+xml" />
		<ttl><![CDATA[60]]></ttl>

		<item>
			<guid><![CDATA[https://tonis.dev/blog/2022/10/02/how-to-find-critical-bugs-in-code4rena/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2022/10/02/how-to-find-critical-bugs-in-code4rena/]]></link>
			<title>how to find critical bugs in code4rena contests</title>
			<pubDate><![CDATA[Wed, 22 Jan 2025 23:52:43 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/about/]]></guid>
			<link><![CDATA[https://tonis.dev/about/]]></link>
			<title>About me</title>
			<pubDate><![CDATA[Sun, 23 Nov 2025 23:21:29 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2025/11/23/ai-driven-fp-ts-development/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2025/11/23/ai-driven-fp-ts-development/]]></link>
			<title>AI-Driven Functional Programming in TypeScript</title>
			<pubDate><![CDATA[Sun, 23 Nov 2025 23:15:40 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2025/09/06/managing-kubectl-port-forwards-why-gui-tools-are-taking-over/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2025/09/06/managing-kubectl-port-forwards-why-gui-tools-are-taking-over/]]></link>
			<title>Managing kubectl port-forwards: Why GUI Tools Are Taking Over</title>
			<pubDate><![CDATA[Sat, 27 Sep 2025 03:37:46 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2024/11/06/deploy-a-vite-react-spa-app-to-cloudfront-with-working-browserrouter/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2024/11/06/deploy-a-vite-react-spa-app-to-cloudfront-with-working-browserrouter/]]></link>
			<title>Deploy a Vite React SPA app to CloudFront with working BrowserRouter</title>
			<pubDate><![CDATA[Wed, 06 Nov 2024 09:12:27 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/02/19/hello-world/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/02/19/hello-world/]]></link>
			<title>Hello World!</title>
			<pubDate><![CDATA[Sun, 29 Mar 2020 10:14:13 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/portfolio/]]></guid>
			<link><![CDATA[https://tonis.dev/portfolio/]]></link>
			<title>Portfolio</title>
			<pubDate><![CDATA[Mon, 23 Mar 2026 05:48:26 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2022/06/26/knowledge-token-test-post/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2022/06/26/knowledge-token-test-post/]]></link>
			<title>Knowledge Token test post</title>
			<pubDate><![CDATA[Wed, 27 Jul 2022 10:11:54 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2026/01/30/how-my-server-got-owned-by-a-userland-rootkit-and-how-i-cleaned-it/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2026/01/30/how-my-server-got-owned-by-a-userland-rootkit-and-how-i-cleaned-it/]]></link>
			<title>How My Server Got Owned by a Userland Rootkit (and How I Cleaned It)</title>
			<pubDate><![CDATA[Fri, 30 Jan 2026 23:41:24 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2024/02/07/how-to-achieve-validatednel-with-fp-ts/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2024/02/07/how-to-achieve-validatednel-with-fp-ts/]]></link>
			<title>How to achieve validatedNel with fp-ts</title>
			<pubDate><![CDATA[Wed, 07 Feb 2024 23:31:13 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2022/07/03/how-to-use-web3-react/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2022/07/03/how-to-use-web3-react/]]></link>
			<title>How to use web3-react</title>
			<pubDate><![CDATA[Wed, 03 Aug 2022 13:21:51 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2022/07/25/what-is-a-knowledge-token/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2022/07/25/what-is-a-knowledge-token/]]></link>
			<title>What is a Knowledge Token?</title>
			<pubDate><![CDATA[Wed, 27 Jul 2022 14:26:01 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/08/31/create-a-code-editor-with-compose-for-desktop/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/08/31/create-a-code-editor-with-compose-for-desktop/]]></link>
			<title>Create a code editor with Compose for Desktop</title>
			<pubDate><![CDATA[Tue, 31 Aug 2021 13:33:55 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/11/30/add-text-and-images-to-notion-via-the-official-api-and-python/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/11/30/add-text-and-images-to-notion-via-the-official-api-and-python/]]></link>
			<title>Add text and images to Notion via the official API and Python</title>
			<pubDate><![CDATA[Tue, 30 Nov 2021 10:23:58 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/09/28/create-a-login-screen-with-jetpack-compose/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/09/28/create-a-login-screen-with-jetpack-compose/]]></link>
			<title>Create a login screen with Jetpack Compose</title>
			<pubDate><![CDATA[Tue, 28 Sep 2021 10:07:03 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/11/02/aggregate-iconomi-crypto-strategy-details/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/11/02/aggregate-iconomi-crypto-strategy-details/]]></link>
			<title>Aggregate Iconomi crypto strategy details</title>
			<pubDate><![CDATA[Tue, 02 Nov 2021 08:40:44 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2023/05/28/lazy-conditional-logging-in-javascript/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2023/05/28/lazy-conditional-logging-in-javascript/]]></link>
			<title>Lazy/conditional logging in JavaScript</title>
			<pubDate><![CDATA[Sun, 28 May 2023 00:12:57 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2023/05/27/how-to-scroll-to-line-with-codemirror-react/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2023/05/27/how-to-scroll-to-line-with-codemirror-react/]]></link>
			<title>How to scroll to line with codemirror-react</title>
			<pubDate><![CDATA[Sun, 28 May 2023 00:00:53 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2022/05/04/vscode-jest-doesnt-work-for-a-react-app-in-a-yarn-workspace-monorepo/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2022/05/04/vscode-jest-doesnt-work-for-a-react-app-in-a-yarn-workspace-monorepo/]]></link>
			<title>vscode-jest doesn&#8217;t work for a react app in a yarn workspace/monorepo</title>
			<pubDate><![CDATA[Sun, 12 Jun 2022 07:03:55 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2022/06/24/how-to-use-ethereum-multicall-on-a-local-hardhat-node/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2022/06/24/how-to-use-ethereum-multicall-on-a-local-hardhat-node/]]></link>
			<title>How to use ethereum-multicall on a local hardhat node</title>
			<pubDate><![CDATA[Sat, 06 Aug 2022 11:01:35 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2022/05/03/how-to-transfer-a-dynamodb-table-from-one-account-to-another/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2022/05/03/how-to-transfer-a-dynamodb-table-from-one-account-to-another/]]></link>
			<title>How to transfer a DynamoDB table from one account to another?</title>
			<pubDate><![CDATA[Mon, 23 May 2022 01:20:59 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/12/22/location-data-reduction-in-android/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/12/22/location-data-reduction-in-android/]]></link>
			<title>Location data reduction in Android</title>
			<pubDate><![CDATA[Wed, 22 Dec 2021 01:28:32 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/11/03/callback-styles-for-async-tasks/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/11/03/callback-styles-for-async-tasks/]]></link>
			<title>Callback styles for async tasks</title>
			<pubDate><![CDATA[Wed, 14 Jul 2021 07:09:59 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/03/03/kotlin-multiplatform-logging-libraries/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/03/03/kotlin-multiplatform-logging-libraries/]]></link>
			<title>Kotlin Multiplatform logging libraries</title>
			<pubDate><![CDATA[Sat, 28 Aug 2021 02:46:14 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/08/04/setup-macos-system-wide-vim-mode/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/08/04/setup-macos-system-wide-vim-mode/]]></link>
			<title>Setup MacOS system-wide Vim mode</title>
			<pubDate><![CDATA[Wed, 04 Aug 2021 10:06:33 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/08/03/kotlin-native-interoperability-with-swift-objective-c/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/08/03/kotlin-native-interoperability-with-swift-objective-c/]]></link>
			<title>Kotlin native interoperability with Swift/Objective-C.</title>
			<pubDate><![CDATA[Tue, 03 Aug 2021 10:21:46 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/01/05/create-json-manually-with-kotlinx-serialization/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/01/05/create-json-manually-with-kotlinx-serialization/]]></link>
			<title>Create JSON manually with kotlinx.serialization</title>
			<pubDate><![CDATA[Sat, 24 Jul 2021 00:59:42 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/06/29/kotlin-multiplatform-in-a-macos-app/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/06/29/kotlin-multiplatform-in-a-macos-app/]]></link>
			<title>Kotlin Multiplatform in a MacOS app</title>
			<pubDate><![CDATA[Sat, 24 Jul 2021 00:35:30 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/archive/]]></guid>
			<link><![CDATA[https://tonis.dev/archive/]]></link>
			<title>Archive</title>
			<pubDate><![CDATA[Wed, 09 Sep 2020 09:38:06 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/03/31/java-ec-crypto-with-bouncycastle/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/03/31/java-ec-crypto-with-bouncycastle/]]></link>
			<title>Java EC crypto with BouncyCastle</title>
			<pubDate><![CDATA[Thu, 19 Aug 2021 06:53:10 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/02/02/ios-app-with-kotlin-multiplatform-mobile/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/02/02/ios-app-with-kotlin-multiplatform-mobile/]]></link>
			<title>iOS app with Kotlin Multiplatform Mobile</title>
			<pubDate><![CDATA[Sun, 21 Feb 2021 09:43:37 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/09/08/kotlin-concatenating-nullable-strings/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/09/08/kotlin-concatenating-nullable-strings/]]></link>
			<title>Kotlin: Concatenating nullable strings</title>
			<pubDate><![CDATA[Sun, 13 Dec 2020 11:32:48 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/04/27/kotlin-hydra-constructors/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/04/27/kotlin-hydra-constructors/]]></link>
			<title>Kotlin Hydra constructors</title>
			<pubDate><![CDATA[Sun, 02 May 2021 09:30:14 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2021/06/01/kotlin-multiplatform-app-architectures/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2021/06/01/kotlin-multiplatform-app-architectures/]]></link>
			<title>Kotlin Multiplatform app architectures</title>
			<pubDate><![CDATA[Sat, 26 Jun 2021 02:49:46 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/07/15/car-data-points-in-android-automotive/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/07/15/car-data-points-in-android-automotive/]]></link>
			<title>Car data points in Android Automotive</title>
			<pubDate><![CDATA[Mon, 14 Dec 2020 03:53:57 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/10/07/logging-in-a-java-library/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/10/07/logging-in-a-java-library/]]></link>
			<title>Logging in a Java library</title>
			<pubDate><![CDATA[Mon, 14 Dec 2020 03:52:34 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/04/28/android-app-architecture-part-1/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/04/28/android-app-architecture-part-1/]]></link>
			<title>Android App Architecture, Part 1</title>
			<pubDate><![CDATA[Mon, 14 Dec 2020 03:45:47 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/06/03/testing-with-mockk-and-koin/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/06/03/testing-with-mockk-and-koin/]]></link>
			<title>Part 2: Testing with MockK and Koin</title>
			<pubDate><![CDATA[Mon, 14 Dec 2020 03:20:31 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/08/13/workflow-automations/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/08/13/workflow-automations/]]></link>
			<title>Workflow automations</title>
			<pubDate><![CDATA[Thu, 13 Aug 2020 12:35:03 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/12/01/add-a-sequence-diagram-to-notion/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/12/01/add-a-sequence-diagram-to-notion/]]></link>
			<title>Add a sequence diagram to Notion</title>
			<pubDate><![CDATA[Fri, 17 Sep 2021 08:18:35 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2024/06/07/how-to-ignore-generated-kotlin-files-in-jacoco/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2024/06/07/how-to-ignore-generated-kotlin-files-in-jacoco/]]></link>
			<title>How to ignore generated Kotlin files in Jacoco?</title>
			<pubDate><![CDATA[Fri, 07 Jun 2024 06:27:53 +0000]]></pubDate>
		</item>
					<item>
			<guid><![CDATA[https://tonis.dev/blog/2020/04/03/sharing-native-code-between-android-and-java-projects/]]></guid>
			<link><![CDATA[https://tonis.dev/blog/2020/04/03/sharing-native-code-between-android-and-java-projects/]]></link>
			<title>Sharing native code between Android and Java projects</title>
			<pubDate><![CDATA[Fri, 03 Apr 2020 10:24:19 +0000]]></pubDate>
		</item>
				</channel>
</rss>
