> For the complete documentation index, see [llms.txt](https://astranebula.gitbook.io/blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://astranebula.gitbook.io/blog/welcome.md).

# Welcome

### My Journey into Embedded Software Programming

As I expand my skillset from full-stack web development, I'll explore the world of embedded programming in 2024. My learning path includes **C/C++** and, on occasion, **arm** **assembly** language. The **Raspberry Pi 3, Tiva C Series TM4C123G LaunchPad**, and **SI B-L475E-IOT01A** boards serve as my experimentation platform. I'm considering focusing my project on developing a communication-based application, whose goal is to enable **data transmission and reception**. Stay tuned for my articles where I'll share my experiences and insights from this adventure.

I am also sharing notes from my computer science classes that I think are worth sharing and some personal studies of topics I am interested in. You will also find articles about miscellaneous topics that I find interesting. I hope you will enjoy reading my articles. If you do, make sure to share them with your network. Thank you :)

### Welcome

In the following [ARM assembly code snippet](#user-content-fn-1)[^1], a simple program is implemented to print **Hello World** to your terminal:

{% code title="helloworld.s" lineNumbers="true" fullWidth="false" %}

```armasm
.global _start

_start:
    MOV R0, #1            /* file descriptor: stdout */
    LDR R1, =hello_str    /* pointer to the message */
    MOV R2, #13           /* message length */
    MOV R7, #4            /* system call number: SYS_write */
    SVC 0                 /* invoke syscall */

    MOV R0, #0            /* return code 0 */
    MOV R7, #1            /* system call number: SYS_exit */
    SVC 0                 /* invoke syscall */

hello_str:
    .ASCII "Hello, World!\0"
```

{% endcode %}

### Software Engineering Code Of Ethics

I am passionate about software engineering. So, I would like to end this page by sharing the code of ethics for software engineering in the hope of making more aspirant, or professional software engineers aware of it. I do try to follow these rules as much as possible. If you are interested in reading more detail about this code of ethics, I would redirect you to read it on the official page. This Code was developed by the [ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices (SEEPP)](https://ethics.acm.org/code-of-ethics/software-engineering-code/).

Per their commitment to the **health**, **safety**, and **welfare of the public**, software engineers shall adhere to the following **Eight Principles**:

> 1\. **PUBLIC** – Software engineers shall act consistently with the public interest.
>
> 2\. **CLIENT AND EMPLOYER** – Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.
>
> 3\. **PRODUCT** – Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.
>
> 4\. **JUDGMENT** – Software engineers shall maintain integrity and independence in their professional judgment.
>
> 5\. **MANAGEMENT** – Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.
>
> 6\. **PROFESSION** – Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.
>
> 7\. **COLLEAGUES** – Software engineers shall be fair to and supportive of their colleagues.
>
> 8\. **SELF** – Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

[^1]: For the ARMv7 or later architecture


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://astranebula.gitbook.io/blog/welcome.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
