> 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
