<?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: Daniel Sá</title>
    <description>The latest articles on DEV Community by Daniel Sá (@danieljvsa).</description>
    <link>https://dev.to/danieljvsa</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%2F2968130%2Fa62ea6ac-8456-47a3-956f-42df9eb16fd6.png</url>
      <title>DEV Community: Daniel Sá</title>
      <link>https://dev.to/danieljvsa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danieljvsa"/>
    <language>en</language>
    <item>
      <title>Teltonika-Go Update: From Initial Release to Full Codec Support</title>
      <dc:creator>Daniel Sá</dc:creator>
      <pubDate>Fri, 29 May 2026 20:17:41 +0000</pubDate>
      <link>https://dev.to/danieljvsa/teltonika-go-update-from-initial-release-to-full-codec-support-5b03</link>
      <guid>https://dev.to/danieljvsa/teltonika-go-update-from-initial-release-to-full-codec-support-5b03</guid>
      <description>&lt;p&gt;A few months ago, I published my first article introducing Teltonika-Go:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/danieljvsa/introducing-teltonika-go-a-go-package-for-parsing-and-communicating-with-teltonika-devices-4oof"&gt;&lt;strong&gt;Introducing Teltonika-Go: A Go Package for Parsing and Communicating with Teltonika Devices&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the time, the goal was simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build an open-source Go library to simplify communication with Teltonika GPS tracking devices.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The project started as a side project inspired by my experience working in vehicle tracking and telemetry systems. I wanted a reusable package that developers could easily integrate into their own fleet management, IoT, and GPS tracking platforms.&lt;/p&gt;

&lt;p&gt;Since then, the project has grown significantly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Has Changed?
&lt;/h2&gt;

&lt;p&gt;The initial version focused primarily on AVL packet parsing and the most commonly used codecs.&lt;/p&gt;

&lt;p&gt;Today, Teltonika-Go supports:&lt;/p&gt;

&lt;h3&gt;
  
  
  AVL Data Codecs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Codec 08&lt;/li&gt;
&lt;li&gt;Codec 8E&lt;/li&gt;
&lt;li&gt;Codec 16&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Command &amp;amp; Response Codecs
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Codec 12&lt;/li&gt;
&lt;li&gt;Codec 13&lt;/li&gt;
&lt;li&gt;Codec 14&lt;/li&gt;
&lt;li&gt;Codec 15&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Additional Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;AVL packet decoding&lt;/li&gt;
&lt;li&gt;AVL packet encoding&lt;/li&gt;
&lt;li&gt;Command packet encoding&lt;/li&gt;
&lt;li&gt;Command response decoding&lt;/li&gt;
&lt;li&gt;TCP support&lt;/li&gt;
&lt;li&gt;UDP support&lt;/li&gt;
&lt;li&gt;IMEI handling&lt;/li&gt;
&lt;li&gt;CRC validation&lt;/li&gt;
&lt;li&gt;Timestamp utilities&lt;/li&gt;
&lt;li&gt;Extensive unit testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/danieljvsa/teltonika-go" rel="noopener noreferrer"&gt;https://github.com/danieljvsa/teltonika-go&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the biggest milestones was expanding support beyond AVL data packets and implementing command-related codecs.&lt;/p&gt;

&lt;p&gt;This transformed the library from a parser into a more complete communication toolkit for Teltonika devices.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;Many GPS tracking systems eventually need more than just location data.&lt;/p&gt;

&lt;p&gt;Real-world deployments often require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sending commands to devices&lt;/li&gt;
&lt;li&gt;Receiving command responses&lt;/li&gt;
&lt;li&gt;Managing remote configurations&lt;/li&gt;
&lt;li&gt;Supporting multiple Teltonika device generations&lt;/li&gt;
&lt;li&gt;Handling both TCP and UDP communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Supporting these additional codecs makes it easier to build complete integrations without having to implement protocol handling from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Protocol Specifications Matter
&lt;/h3&gt;

&lt;p&gt;The most challenging aspect of the project was never the Go code itself.&lt;/p&gt;

&lt;p&gt;The difficult part was ensuring protocol correctness.&lt;/p&gt;

&lt;p&gt;When working with binary protocols, small mistakes can break communication completely.&lt;/p&gt;

&lt;p&gt;Issues such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Incorrect packet lengths&lt;/li&gt;
&lt;li&gt;CRC calculation errors&lt;/li&gt;
&lt;li&gt;Wrong byte ordering&lt;/li&gt;
&lt;li&gt;Timestamp conversion mistakes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;can result in devices rejecting packets without providing much information about what went wrong.&lt;/p&gt;

&lt;p&gt;Most development time was spent validating behavior against protocol documentation and testing edge cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing Became Essential
&lt;/h3&gt;

&lt;p&gt;As support for more codecs was added, the importance of testing increased dramatically.&lt;/p&gt;

&lt;p&gt;Adding new functionality without introducing regressions became a priority.&lt;/p&gt;

&lt;p&gt;Today, the project includes a growing suite of tests that helps ensure stability when adding features or improving existing implementations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Source Is About Iteration
&lt;/h3&gt;

&lt;p&gt;One thing I enjoy about open source is that projects rarely remain in their original form.&lt;/p&gt;

&lt;p&gt;The first release is simply the starting point.&lt;/p&gt;

&lt;p&gt;Since publishing the original article, I've received feedback, discovered new use cases, and identified areas where the library could be improved.&lt;/p&gt;

&lt;p&gt;Each iteration has made the project more complete and more useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building with Modern AI Tools
&lt;/h2&gt;

&lt;p&gt;This project was also an interesting opportunity to explore modern AI-assisted development.&lt;/p&gt;

&lt;p&gt;I used tools such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude&lt;/li&gt;
&lt;li&gt;OpenCode&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;Qwen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;to accelerate development tasks including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boilerplate generation&lt;/li&gt;
&lt;li&gt;Test creation&lt;/li&gt;
&lt;li&gt;Documentation improvements&lt;/li&gt;
&lt;li&gt;Code reviews&lt;/li&gt;
&lt;li&gt;Refactoring suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest lesson was that AI works best as an accelerator rather than a replacement for domain knowledge.&lt;/p&gt;

&lt;p&gt;Understanding GPS tracking systems, binary protocols, and Teltonika specifications remained essential for validating the generated code and ensuring correct behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;There are still several improvements planned for future releases.&lt;/p&gt;

&lt;p&gt;Some areas I'd like to focus on include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More real-world examples&lt;/li&gt;
&lt;li&gt;Complete TCP server examples&lt;/li&gt;
&lt;li&gt;Improved documentation&lt;/li&gt;
&lt;li&gt;Better pkg.go.dev support&lt;/li&gt;
&lt;li&gt;Additional protocol utilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal remains the same as when the project started:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make Teltonika device integration easier for Go developers.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;Looking back at the original article and comparing it with the current state of the project, it's satisfying to see how much it has evolved.&lt;/p&gt;

&lt;p&gt;What started as a simple parser has grown into a much more complete Teltonika communication library supporting multiple codecs, command handling, and packet generation.&lt;/p&gt;

&lt;p&gt;If you're working with Teltonika devices, GPS tracking systems, or telemetry platforms, I'd love to hear your feedback.&lt;/p&gt;

&lt;p&gt;Feel free to check out the repository, open an issue, or contribute to the project.&lt;/p&gt;

&lt;p&gt;Happy coding 🚀&lt;/p&gt;

&lt;p&gt;Repository:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/danieljvsa/teltonika-go" rel="noopener noreferrer"&gt;https://github.com/danieljvsa/teltonika-go&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>opensource</category>
      <category>iot</category>
      <category>gps</category>
    </item>
    <item>
      <title>Building Two Web Apps Using Claude AI + OpenCode</title>
      <dc:creator>Daniel Sá</dc:creator>
      <pubDate>Sun, 24 May 2026 12:11:22 +0000</pubDate>
      <link>https://dev.to/danieljvsa/building-two-small-web-apps-using-claude-ai-opencode-1hhk</link>
      <guid>https://dev.to/danieljvsa/building-two-small-web-apps-using-claude-ai-opencode-1hhk</guid>
      <description>&lt;p&gt;Over the last weeks I decided to experiment with AI-assisted development workflows to see how much faster I could go from idea to working MVP.&lt;/p&gt;

&lt;p&gt;Instead of treating AI as a “code generator”, I approached it more like an engineering accelerator:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;brainstorming partner&lt;/li&gt;
&lt;li&gt;rapid prototyping assistant&lt;/li&gt;
&lt;li&gt;UI iteration helper&lt;/li&gt;
&lt;li&gt;debugging companion&lt;/li&gt;
&lt;li&gt;architecture sounding board&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result was two small projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Altivo — a lightweight portfolio tracker&lt;/li&gt;
&lt;li&gt;Hopway — a visual route planning app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both projects are intentionally lightweight, but they helped me explore a modern development workflow using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claude AI&lt;/li&gt;
&lt;li&gt;OpenCode AI&lt;/li&gt;
&lt;li&gt;DeepSeek V4 Flash&lt;/li&gt;
&lt;li&gt;Qwen 3.6 Plus&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  The Projects
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Altivo
&lt;/h2&gt;

&lt;p&gt;Altivo is a lightweight and privacy-friendly portfolio tracker focused on simplicity and static deployment.&lt;/p&gt;

&lt;p&gt;Live Demo:&lt;br&gt;
&lt;a href="https://danieljvsa.github.io/altivo/" rel="noopener noreferrer"&gt;https://danieljvsa.github.io/altivo/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/danieljvsa/altivo" rel="noopener noreferrer"&gt;https://github.com/danieljvsa/altivo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The idea was to build something lightweight that could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;track ETFs&lt;/li&gt;
&lt;li&gt;support crypto&lt;/li&gt;
&lt;li&gt;run entirely as a static frontend&lt;/li&gt;
&lt;li&gt;avoid unnecessary complexity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted a cleaner and simpler experience than many traditional portfolio platforms.&lt;/p&gt;

&lt;p&gt;The project also became an interesting exercise in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;frontend architecture&lt;/li&gt;
&lt;li&gt;UI simplification&lt;/li&gt;
&lt;li&gt;API integration&lt;/li&gt;
&lt;li&gt;local-first persistence&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;GitHub Pages&lt;/li&gt;
&lt;li&gt;Financial Market APIs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Hopway
&lt;/h2&gt;

&lt;p&gt;Hopway is a lightweight route planning and travel exploration tool.&lt;/p&gt;

&lt;p&gt;Live Demo:&lt;br&gt;
&lt;a href="https://danieljvsa.github.io/hopway/" rel="noopener noreferrer"&gt;https://danieljvsa.github.io/hopway/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/danieljvsa/hopway" rel="noopener noreferrer"&gt;https://github.com/danieljvsa/hopway&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The concept behind Hopway was creating a map-first experience where users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;create routes&lt;/li&gt;
&lt;li&gt;visually explore destinations&lt;/li&gt;
&lt;li&gt;share travel plans&lt;/li&gt;
&lt;li&gt;experiment with AI-generated route ideas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app uses CARTO maps and focuses on keeping the UX lightweight and visual.&lt;/p&gt;

&lt;p&gt;I wanted it to feel more like an exploration tool than a traditional route planner.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;CARTO Maps&lt;/li&gt;
&lt;li&gt;GitHub Pages&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  The AI Workflow
&lt;/h1&gt;

&lt;p&gt;One of the most interesting parts of these projects was experimenting with different AI tools together.&lt;/p&gt;

&lt;p&gt;Each model had different strengths.&lt;/p&gt;

&lt;h2&gt;
  
  
  Claude AI
&lt;/h2&gt;

&lt;p&gt;Claude was the strongest tool for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture discussions&lt;/li&gt;
&lt;li&gt;reasoning&lt;/li&gt;
&lt;li&gt;debugging&lt;/li&gt;
&lt;li&gt;planning features&lt;/li&gt;
&lt;li&gt;refining ideas&lt;/li&gt;
&lt;li&gt;writing structured prompts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It was especially useful when thinking through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;application structure&lt;/li&gt;
&lt;li&gt;user experience&lt;/li&gt;
&lt;li&gt;roadmap decisions&lt;/li&gt;
&lt;li&gt;feature tradeoffs&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  OpenCode AI
&lt;/h2&gt;

&lt;p&gt;OpenCode became the main execution layer for applying changes directly inside the repositories.&lt;/p&gt;

&lt;p&gt;This made iteration significantly faster because I could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;define tasks&lt;/li&gt;
&lt;li&gt;refine prompts&lt;/li&gt;
&lt;li&gt;generate implementations&lt;/li&gt;
&lt;li&gt;review results quickly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The workflow started feeling much closer to collaborating with a junior developer that could iterate extremely fast.&lt;/p&gt;




&lt;h2&gt;
  
  
  DeepSeek V4 Flash
&lt;/h2&gt;

&lt;p&gt;DeepSeek V4 Flash was surprisingly useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;quick fixes&lt;/li&gt;
&lt;li&gt;smaller implementations&lt;/li&gt;
&lt;li&gt;fast iterations&lt;/li&gt;
&lt;li&gt;UI experimentation&lt;/li&gt;
&lt;li&gt;alternative code suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because it was fast and free, it became useful for high-frequency iteration loops.&lt;/p&gt;




&lt;h2&gt;
  
  
  Qwen 3.6 Plus
&lt;/h2&gt;

&lt;p&gt;Qwen 3.6 Plus was particularly good for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generating alternative approaches&lt;/li&gt;
&lt;li&gt;refining frontend ideas&lt;/li&gt;
&lt;li&gt;brainstorming UX improvements&lt;/li&gt;
&lt;li&gt;comparing implementation styles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes asking multiple models the same question produced surprisingly useful contrasts.&lt;/p&gt;




&lt;h1&gt;
  
  
  What AI Was Actually Good At
&lt;/h1&gt;

&lt;p&gt;The biggest productivity gain was not “AI writing code”.&lt;/p&gt;

&lt;p&gt;It was reducing friction.&lt;/p&gt;

&lt;p&gt;AI was extremely useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generating boilerplate&lt;/li&gt;
&lt;li&gt;accelerating iteration&lt;/li&gt;
&lt;li&gt;refining UI ideas&lt;/li&gt;
&lt;li&gt;debugging faster&lt;/li&gt;
&lt;li&gt;exploring alternatives&lt;/li&gt;
&lt;li&gt;reducing context-switching&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For small MVPs, that becomes incredibly powerful.&lt;/p&gt;




&lt;h1&gt;
  
  
  What Still Required Human Control
&lt;/h1&gt;

&lt;p&gt;The important engineering decisions still required human oversight.&lt;/p&gt;

&lt;p&gt;Things that still needed strong manual control:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;architecture decisions&lt;/li&gt;
&lt;li&gt;consistency&lt;/li&gt;
&lt;li&gt;product direction&lt;/li&gt;
&lt;li&gt;deployment&lt;/li&gt;
&lt;li&gt;performance considerations&lt;/li&gt;
&lt;li&gt;long-term maintainability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI accelerated execution, but it did not replace engineering judgment.&lt;/p&gt;




&lt;h1&gt;
  
  
  Lessons Learned
&lt;/h1&gt;

&lt;p&gt;A few things became very clear during these projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smaller focused prompts worked better than giant prompts&lt;/li&gt;
&lt;li&gt;AI performs best when architecture is already defined&lt;/li&gt;
&lt;li&gt;Iteration speed becomes one of the biggest advantages&lt;/li&gt;
&lt;li&gt;Reviewing generated code remains critical&lt;/li&gt;
&lt;li&gt;Combining multiple models produced better results than relying on a single one&lt;/li&gt;
&lt;li&gt;AI is especially powerful for reducing setup and boilerplate friction&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the most interesting outcomes was how quickly experimentation became possible.&lt;/p&gt;

&lt;p&gt;Normally many side projects die during the setup phase:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;too much boilerplate&lt;/li&gt;
&lt;li&gt;too much context switching&lt;/li&gt;
&lt;li&gt;too much repetitive work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI dramatically reduced that friction.&lt;/p&gt;

&lt;p&gt;That allowed me to spend more time on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;product thinking&lt;/li&gt;
&lt;li&gt;UX refinement&lt;/li&gt;
&lt;li&gt;architecture&lt;/li&gt;
&lt;li&gt;experimentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of repetitive setup work.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;These projects are small, but they represent something bigger:&lt;br&gt;
a shift in how rapid MVP development is evolving.&lt;/p&gt;

&lt;p&gt;AI-assisted workflows are becoming extremely valuable for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;side projects&lt;/li&gt;
&lt;li&gt;prototypes&lt;/li&gt;
&lt;li&gt;internal tools&lt;/li&gt;
&lt;li&gt;experimentation&lt;/li&gt;
&lt;li&gt;product validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI did not replace development.&lt;/p&gt;

&lt;p&gt;But it significantly reduced the time between:&lt;br&gt;
idea → prototype → working application.&lt;/p&gt;

&lt;p&gt;As a backend developer, these projects also helped me improve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;frontend awareness&lt;/li&gt;
&lt;li&gt;UX thinking&lt;/li&gt;
&lt;li&gt;rapid delivery skills&lt;/li&gt;
&lt;li&gt;product-focused development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And honestly, the workflow was fun.&lt;/p&gt;

&lt;p&gt;If you're experimenting with AI-assisted development workflows too, I'd love to hear how you're using them.&lt;/p&gt;




&lt;h1&gt;
  
  
  Links
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Altivo
&lt;/h2&gt;

&lt;p&gt;Live Demo:&lt;br&gt;
&lt;a href="https://danieljvsa.github.io/altivo/" rel="noopener noreferrer"&gt;https://danieljvsa.github.io/altivo/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/danieljvsa/altivo" rel="noopener noreferrer"&gt;https://github.com/danieljvsa/altivo&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Hopway
&lt;/h2&gt;

&lt;p&gt;Live Demo:&lt;br&gt;
&lt;a href="https://danieljvsa.github.io/hopway/" rel="noopener noreferrer"&gt;https://danieljvsa.github.io/hopway/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/danieljvsa/hopway" rel="noopener noreferrer"&gt;https://github.com/danieljvsa/hopway&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  About Me
&lt;/h2&gt;

&lt;p&gt;Portfolio:&lt;br&gt;
&lt;a href="https://danieljvsa.vercel.app/" rel="noopener noreferrer"&gt;https://danieljvsa.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/danieljvsa" rel="noopener noreferrer"&gt;https://github.com/danieljvsa&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Introducing teltonika-go: A Go Package for Parsing and Communicating with Teltonika Devices</title>
      <dc:creator>Daniel Sá</dc:creator>
      <pubDate>Thu, 12 Jun 2025 13:40:53 +0000</pubDate>
      <link>https://dev.to/danieljvsa/introducing-teltonika-go-a-go-package-for-parsing-and-communicating-with-teltonika-devices-4oof</link>
      <guid>https://dev.to/danieljvsa/introducing-teltonika-go-a-go-package-for-parsing-and-communicating-with-teltonika-devices-4oof</guid>
      <description>&lt;p&gt;If you've ever worked with Teltonika GPS tracking devices, you know that parsing their proprietary protocol can be a bit of a challenge. Whether you're building a fleet management system, a custom IoT platform, or just tinkering with real-time vehicle telemetry, understanding and communicating with these devices is critical.&lt;/p&gt;

&lt;p&gt;That's why I created teltonika-go — an open-source Go package that simplifies parsing Teltonika messages and enables communication with their devices over TCP.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 What is teltonika-go?
&lt;/h3&gt;

&lt;p&gt;teltonika-go is a lightweight, idiomatic Go library designed to help developers decode, parse, and interpret the binary protocol used by Teltonika GPS trackers like the FMB series. It provides building blocks for server-side communication with these devices, which typically send AVL (Automatic Vehicle Location) data over TCP.&lt;/p&gt;

&lt;p&gt;With teltonika-go, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read and parse AVL packets sent by devices&lt;/li&gt;
&lt;li&gt;Understand GPS, IO, and timestamp data&lt;/li&gt;
&lt;li&gt;Handle device handshakes and codec types (including Codec8, Codec8 Extended and Codec16)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Build your own custom server or integrate Teltonika device communication into an existing Go application&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Why Use It?
&lt;/h3&gt;

&lt;p&gt;Teltonika devices are widely used in the GPS tracking industry, but documentation is limited and most of it is not tailored to developers. If you're a Go developer, teltonika-go provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clean and idiomatic API&lt;/li&gt;
&lt;li&gt;No external dependencies (other than the Go standard library)&lt;/li&gt;
&lt;li&gt;Open-source flexibility (MIT License)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔧 Getting Started
&lt;/h3&gt;

&lt;p&gt;Install the package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go get github.com/danieljvsa/teltonika-go
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example: Parse a TCP packet from a Teltonika FMB device.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package main

import (
    "fmt"
    pkg "github.com/danieljvsa/teltonika-go/pkg" //for general functions
    tools "github.com/danieljvsa/teltonika-go/tools" //for functions that used in package to help in case only want to decode specific tram code
)

func main() {
    // example binary data from a Teltonika device
    rawLogin := []byte{ /* login packet */ }
    rawTram := []byte{ /* AVL packet */ }

    // Decode login packet
    login := pkg.LoginDecoder(rawLogin)
    if login.Error != nil {
        fmt.Println("Login decode error:", login.Error)
    } else {
        fmt.Printf("Login decoded: %+v\n", login.Response)
    }

    // Decode AVL/tram packet
    tram := pkg.TramDecoder(rawTram)
    if tram.Error != nil {
        fmt.Println("Tram decode error:", tram.Error)
    } else {
        fmt.Printf("Tram decoded: %+v\n", tram.Response)
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🧱 Project Structure
&lt;/h3&gt;

&lt;p&gt;The project is still in its early stages, but currently supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decode login packets&lt;/li&gt;
&lt;li&gt;Parse AVL records using Codecs 08, 8E and 16&lt;/li&gt;
&lt;li&gt;Validate and interpret Teltonika TCP/UDP headers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to check out the repo: &lt;a href="https://github.com/danieljvsa/teltonika-go" rel="noopener noreferrer"&gt;https://github.com/danieljvsa/teltonika-go&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚧 Roadmap
&lt;/h3&gt;

&lt;p&gt;The project is under active development, and here are some features on the horizon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full support for Codec 12 and Codec 14&lt;/li&gt;
&lt;li&gt;Full support for encoding for commands with codecs 12, 13, 14, 15.&lt;/li&gt;
&lt;li&gt;Tools to send commands to devices (e.g., engine cut-off, configuration updates)&lt;/li&gt;
&lt;li&gt;Improved error handling and documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're working with Teltonika devices and using Go, I'd love your feedback and contributions!&lt;/p&gt;

&lt;h4&gt;
  
  
  🤝 Contributing
&lt;/h4&gt;

&lt;p&gt;Contributions are welcome! If you find a bug, have a feature request, or just want to improve the code, feel free to open an issue or a pull request.&lt;/p&gt;

&lt;h4&gt;
  
  
  🙌 Final Thoughts
&lt;/h4&gt;

&lt;p&gt;Parsing Teltonika’s binary protocol doesn’t need to be a pain. With teltonika-go, you can start building robust applications that speak Teltonika's language — all in idiomatic Go.&lt;/p&gt;

&lt;h4&gt;
  
  
  👉 Check out the project on GitHub: danieljvsa/teltonika-go
&lt;/h4&gt;

&lt;p&gt;⭐ Star it if you find it useful, and let's make working with Teltonika devices easier together!&lt;/p&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/danieljvsa/teltonika-go" rel="noopener noreferrer"&gt;https://github.com/danieljvsa/teltonika-go&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>opensource</category>
      <category>gps</category>
      <category>teltonika</category>
    </item>
  </channel>
</rss>
