<?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: Ronald Colyar</title>
    <description>The latest articles on DEV Community by Ronald Colyar (@ronaldthenerdsuperuser).</description>
    <link>https://dev.to/ronaldthenerdsuperuser</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%2F589895%2F19e40b23-2399-4365-a5ee-25b08f4390dc.jpeg</url>
      <title>DEV Community: Ronald Colyar</title>
      <link>https://dev.to/ronaldthenerdsuperuser</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ronaldthenerdsuperuser"/>
    <language>en</language>
    <item>
      <title>How Linear Alegbra got me a SWE position</title>
      <dc:creator>Ronald Colyar</dc:creator>
      <pubDate>Thu, 21 Dec 2023 01:10:00 +0000</pubDate>
      <link>https://dev.to/ronaldthenerdsuperuser/how-linear-alegbra-got-me-a-swe-position-4h91</link>
      <guid>https://dev.to/ronaldthenerdsuperuser/how-linear-alegbra-got-me-a-swe-position-4h91</guid>
      <description>&lt;p&gt;I have always been a fan of applied mathematics and studied mathematics for years to better understand the underlying logic behind various areas of engineering. Almost all of the ideas in computer science can be traced to some mathematical root, and I took note of that early on in my journey.&lt;/p&gt;

&lt;p&gt;Before this position, I was working at a company where the only required math was basic arithmetic and algorithmic analysis. I got contacted by a company who recognized my Rust skills by taking a look at my open source projects on my Github profile at the time. &lt;/p&gt;

&lt;p&gt;The company reached out regarding an Application they were working on that would be similar to a 2D game that would use the concept of space to allow users to move things together in the space. &lt;/p&gt;

&lt;p&gt;This concept of space comes from linear algebra and that is when it hit me! I didn't have any experience working in Computational geometry but I did have enough background in linear algebra to take up the challenge. &lt;/p&gt;

&lt;p&gt;My understanding of linear algebra led to me to being what the company regarded as the "Best Fit Candidate", I am sure there were other factors that led to this conclusion, but the biggest was linear algebra.&lt;/p&gt;

&lt;p&gt;I went on to create key-features of the product that relied heavily on vectors. Now that I think back on that position, without understanding the concept of vector space, I wouldn't of lasted a week.&lt;/p&gt;

</description>
      <category>math</category>
      <category>softwareengineering</category>
      <category>opengl</category>
    </item>
    <item>
      <title>Mathematics is fundamental</title>
      <dc:creator>Ronald Colyar</dc:creator>
      <pubDate>Sun, 03 Dec 2023 22:29:48 +0000</pubDate>
      <link>https://dev.to/ronaldthenerdsuperuser/mathematics-is-fundamental-to-swe-4d0l</link>
      <guid>https://dev.to/ronaldthenerdsuperuser/mathematics-is-fundamental-to-swe-4d0l</guid>
      <description>&lt;h3&gt;
  
  
  Background
&lt;/h3&gt;

&lt;p&gt;A ton of aspiring engineers are operating on the idea that math can be brushed aside when considering the art of software engineering. A ton of these ideas come from the "social media professors" who are trying their hardest to gain a following to bring in more income.&lt;/p&gt;

&lt;h3&gt;
  
  
  When does reality kick in?
&lt;/h3&gt;

&lt;p&gt;While it is true that you can get away from with basic math if you are tasked with changing background colors and moving basic components around in a codebase, reality tends to kick in when you have to do anything that has ideas deeply rooted in mathematics manually.&lt;/p&gt;

&lt;p&gt;I previously worked for a company by the name of Brightidea where me and a few other engineers were tasked with creating a virtual multiplayer whiteboard that could behave similarly to that of other competitors(Miro/Figma etc). Without a deep understanding of linear algebra and computational geometry, I wouldn't have been up to the task of creating key features that directly impacted the companies bottom line.&lt;/p&gt;

&lt;p&gt;Another hot area in computer science today is computer vision, and a ton of the work in computer vision is based on gradients, which are changes in intensity from one pixel to another. Gradients go hand and hand with differential calculus by its very definition. You may consume popular libraries like OpenCV to do this work for you, but in order for you to get far(optimize/customize), you will need to understand the process under the hood.&lt;/p&gt;

</description>
      <category>math</category>
      <category>computervision</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>What is Collaborative IoT?</title>
      <dc:creator>Ronald Colyar</dc:creator>
      <pubDate>Sun, 19 Dec 2021 19:20:12 +0000</pubDate>
      <link>https://dev.to/ronaldthenerdsuperuser/what-is-collaborative-iot-5b74</link>
      <guid>https://dev.to/ronaldthenerdsuperuser/what-is-collaborative-iot-5b74</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;After building the platform "House-Of-Iot"(HOI) that required users to have direct authentication credentials for the HOI general server, I realized there is no easy way to collaborate with others with less of a risk.&lt;/p&gt;

&lt;p&gt;HOI isn't the only platform that lacks built in minimal risk collaboration. The platform "Home Assistant"(HA) suffers from the same issue as HOI and requires direct access for collaboration.&lt;/p&gt;

&lt;h2&gt;
  
  
  The solution
&lt;/h2&gt;

&lt;p&gt;The solution was to build a system that allows owners of an IoT server to temporarily and safely give others access, with the ability to easily revoke access. Users will join "Rooms", communicate in a clubhouse like environment and yield temporary control over their IoT server. &lt;/p&gt;

&lt;h2&gt;
  
  
  What makes this safer than giving direct access?
&lt;/h2&gt;

&lt;p&gt;Direct access means users could directly communicate with a server with no restrictions, possibly even modify settings of the server and mess up the underlying functionality.&lt;/p&gt;

&lt;h3&gt;
  
  
  Revoking/Giving access
&lt;/h3&gt;

&lt;p&gt;Users have permission levels when they join a room, each room has an "IoT Board" which is the panel for concurrently controlling multiple IoT servers at once. Once a user with mod permissions spawns a connection to their IoT server, they can give permission to anyone in the room to control it.&lt;/p&gt;

&lt;p&gt;When this user disconnects from collaborative or anything goes wrong with its communication, the user's spawned connection to the IoT server is destroyed along with everyone who had access. &lt;/p&gt;

&lt;p&gt;When this user decides they don't want a specific user to have control anymore, they can revoke access. Revoking access just removes the ability to control a specific spawned IoT server connection.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>react</category>
      <category>algorithms</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>What is House Of Iot?</title>
      <dc:creator>Ronald Colyar</dc:creator>
      <pubDate>Sun, 18 Jul 2021 00:22:44 +0000</pubDate>
      <link>https://dev.to/ronaldthenerdsuperuser/what-is-house-of-iot-4jm4</link>
      <guid>https://dev.to/ronaldthenerdsuperuser/what-is-house-of-iot-4jm4</guid>
      <description>&lt;h1&gt;
  
  
  General
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/House-of-IoT"&gt;"House of Iot"&lt;/a&gt; is a community and software collection that I started to encourage/assist autodidacts with home/property automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does House Of Iot provide other than a community of people?
&lt;/h2&gt;

&lt;p&gt;House Of Iot provides a tutorials for common/non-common smart devices that aims to be extremely simplified , along with the matching sustainable software. &lt;/p&gt;

&lt;p&gt;The simple tutorials adds a nice layer of abstraction for those who don't consider themselves "tech savvy" to come and learn how to build home automation/security. &lt;/p&gt;

&lt;h2&gt;
  
  
  Motivation for starting this project?
&lt;/h2&gt;

&lt;p&gt;Not too long ago I began trying to build small smart devices for my home that will make things easier to accomplish and more accessible.While doing the research regarding circuitry, I found that there was a large barrier to entry to learn about safe micro-electronics/embedded systems. This motivated me to make an attempt to make things easier for new comers in the I.O.T(Internet Of Things) realm.&lt;/p&gt;

&lt;h1&gt;
  
  
  Tech stack?
&lt;/h1&gt;

&lt;p&gt;House of Iot will use what ever is best for the job and will continue to evolve. Currently for software that is performance dependent(CPU Bound) we choose to use Rust due to the safe nature and speed, for things that aren't performance dependent(IO Bound) we like using python for simplicity.The web client is written currently using React(typescript). &lt;/p&gt;

&lt;h2&gt;
  
  
  Visibility?
&lt;/h2&gt;

&lt;p&gt;House of Iot is open-source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to take a look at the software?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/House-of-IoT"&gt;here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>iot</category>
      <category>rust</category>
      <category>python</category>
      <category>embeddedsystems</category>
    </item>
    <item>
      <title>Learning about I.O.T will help you find a new love for computation!</title>
      <dc:creator>Ronald Colyar</dc:creator>
      <pubDate>Wed, 30 Jun 2021 03:24:22 +0000</pubDate>
      <link>https://dev.to/ronaldthenerdsuperuser/learning-about-i-o-t-will-help-you-find-a-new-love-for-computation-4c4h</link>
      <guid>https://dev.to/ronaldthenerdsuperuser/learning-about-i-o-t-will-help-you-find-a-new-love-for-computation-4c4h</guid>
      <description>&lt;p&gt;If you are anything like me , when you started writing software you began with console applications that took in small pieces of data and did something cool with them.I began to notice over the years of writing software that all I do in my software is transfer data over networks and do some sort of computation on this data to reach some end result.&lt;/p&gt;

&lt;p&gt;I always knew about the concept of computational devices controlling things in the physical world , but I didn't have any use cases for creating physical computation devices with the matching software , until I heard about I.O.T. &lt;/p&gt;

&lt;p&gt;Once I heard about I.O.T, I began studying the concepts of IOT and embedded systems that have network connectivity, I was hooked! I began studying minimal circuits so that I could build my very own cloud controlled RC car.&lt;/p&gt;

&lt;p&gt;I fell in love with computation all over again, because for the first time in my long relationship with computation I had wrote the software and the hardware that controls a physical device, once I built this small device I really reflected on the journey that I took to gather the knowledge about circuits/smart devices that I needed to complete this task.&lt;/p&gt;

&lt;p&gt;The reflection that I had about the process of learning about smart devices really prompted me to create a central hub autodidacts to come and assemble common smart devices since the information wasn't easily accessible. The name of this place is called "House Of Iot".&lt;/p&gt;

&lt;p&gt;House of Iot is a community of software engineers/electrical engineers that are working to create easy guides for autodidacts to automate their homes and other bodies of land/property , without having the need to know deep implementation of hardware/software. If you would like to learn more about House of Iot you can check this &lt;a href=""&gt;post&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give I.O.T a chance!!&lt;/p&gt;

</description>
      <category>rust</category>
      <category>embeddedsystems</category>
      <category>python</category>
      <category>iot</category>
    </item>
    <item>
      <title>Why you need DS&amp;A to be a great software engineer!</title>
      <dc:creator>Ronald Colyar</dc:creator>
      <pubDate>Tue, 09 Mar 2021 07:38:12 +0000</pubDate>
      <link>https://dev.to/ronaldthenerdsuperuser/why-you-need-ds-a-to-be-a-great-software-engineer-1l0</link>
      <guid>https://dev.to/ronaldthenerdsuperuser/why-you-need-ds-a-to-be-a-great-software-engineer-1l0</guid>
      <description>&lt;p&gt;Recently, I have been having discussions with software engineers from all across the globe on a platform called Dogehouse. On DogeHouse there has been a common opinion about DS&amp;amp;A(data structures and algorithms) which is the idea that learning DS&amp;amp;A is useless. In these discussions, I am always the disagreeing party because learning these ideas will help you optimize your software for scalability and speed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before learning the ideas of time complexity and how complexity impacts the overall software performance I was writing very complex code
&lt;/h3&gt;

&lt;p&gt;Looking back at my code from high-school I realized that my average complexity in data-intensive methods was O(n^2). This at the time was beyond my understanding but if I knew where to implement a hashtable my programs would have performed better.&lt;/p&gt;

&lt;h3&gt;
  
  
  The common argument that I hear is that "I never have to resort to the use of the taught algorithms in the workplace"
&lt;/h3&gt;

&lt;p&gt;This is a valid argument but in the underlying implementation of almost all software, there are optimized algorithms that handle certain tasks. Sure you can just use the software without knowing anything about it, but this type of abstraction destroys fundamental understanding. &lt;/p&gt;

&lt;h3&gt;
  
  
  DS&amp;amp;A saved me from many different nightmares!
&lt;/h3&gt;

&lt;p&gt;Every time I have a problem that I have to solve, the first thing that comes to my mind is: "Will I need to be inserting items constantly ?,  Do I Need a key-value pair? Will the data set need to be static? " etc. Based on these questions I clearly get an idea of what type of data structure should be implemented in that specific case, but if I knew nothing about data structures it would have taken me longer to come up with a viable solution!&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>algorithms</category>
      <category>programming</category>
    </item>
    <item>
      <title>WHY LEARNING LOWER LEVEL LANGUAGES IS ESSENTIAL!</title>
      <dc:creator>Ronald Colyar</dc:creator>
      <pubDate>Thu, 04 Mar 2021 06:40:35 +0000</pubDate>
      <link>https://dev.to/ronaldthenerdsuperuser/why-learning-lower-level-languages-is-essential-2g86</link>
      <guid>https://dev.to/ronaldthenerdsuperuser/why-learning-lower-level-languages-is-essential-2g86</guid>
      <description>&lt;p&gt;When I started writing software at the age of 14 years old, I picked up the programming language Python. Python was great and easy to understand for the most part, but later down the line, I began to do more intensive computation that python was a bit too slow for! &lt;/p&gt;

&lt;p&gt;This led me to move to different languages such as JavaScript, Kotlin, and then C/C++. I began to visualize the lower-level computational concepts like memory and addresses which made me feel like I was connected to the computer! Picking up lower-level ideas really helped visualize data structures and time complexity. For example, you visualize why an array in the worst case would take O(n) complexity for insertion/deletion since you have to manually copy/deallocate the first array and create/allocate the second.&lt;/p&gt;

&lt;p&gt;These tasks are expensive and are taken for granted in higher-level programming languages! Learning at least one lower-level language will help your overall understanding of computation and make you a better software engineer!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>computerscience</category>
    </item>
  </channel>
</rss>
