diff --git a/become-an-engineer.html b/become-an-engineer.html new file mode 100644 index 0000000..5979156 --- /dev/null +++ b/become-an-engineer.html @@ -0,0 +1,86 @@ + + + + rawley.xyz + + + + >> Home +
+

Become an Engineer

+

+ This learning track assumes you have a computer built after 2004, with + Debian Linux, FreeBSD or OpenBSD installed. (Windows simply won't do.) +

+

Start here (read both and do all of the exercises)

+ +

Getting deeper (read all 3, do all exercises)

+ +

Low level learning

+ +

Category theory

+ +

High(er) Level Languages (pick at least 2)

+ +

+ This is the way to becoming a truly great software engineer. I've read all of these books, and I can say that they all manifest within + me a strong sense of confidence, and the ability to adapt to any situation that might come my way in computer science. +

+

+ You may be reading this list, thinking... what about Java or JavaScript??? Now, I don't think these languages are bad per-se, but I do think + they have the ability to destroy your life. Once you've used Java or JavaScript, there is a good chance you will become closed off from + the rest of the computing world, falling into a world of patterns and objects. You may also find that languages like these have the adverse + effect of having incredibly low skill-ceilings, which compounds the idea of you becoming stuck. A low ceiling, and a low floor, is a prison, not + a tool to conjure the spirits of the computer. +

+
+
+
+ + diff --git a/cpanfile b/cpanfile deleted file mode 100644 index 94c3a12..0000000 --- a/cpanfile +++ /dev/null @@ -1,3 +0,0 @@ -requires 'Text::Markdown'; -requires 'Mojolicious'; -requires 'Mojo::SQLite'; \ No newline at end of file diff --git a/gnu_emacs.png b/gnu_emacs.png new file mode 100644 index 0000000..d05c128 Binary files /dev/null and b/gnu_emacs.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..0c67190 --- /dev/null +++ b/index.html @@ -0,0 +1,43 @@ + + + + rawley.xyz + + + +
+ +

+ Christian, Husband, Dad, Functional programmer, Emacs fan and BSD user. +

+

+ I am the creator of many free-software libraries and tools. + As well as an ambassador for reading and knowledge transfer. I'm currently working on building a + platform to make reading fun and accessible for everyone. I try my best to bring out the best in everyone, + by pushing the envelope of what is perceived to be possible. +

+

Links

+ +
+ + + +
+
+ + diff --git a/insert.pl b/insert.pl deleted file mode 100755 index 0573e6e..0000000 --- a/insert.pl +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env perl - -use strict; -use warnings; - -use Carp qw(croak); -use Mojo::SQLite; -use Mojo::File; -use feature qw(say); - -my $db = Mojo::SQLite->new('sqlite:site.db')->db; - -my $title = shift || croak 'Expected $1 to be title'; -my $slug = shift || croak 'Expected $2 to be slug'; -my $content = shift || croak 'Expected $3 to be md file'; - -$content = Mojo::File->new($content)->slurp; - -my $post = { - title => $title, - slug => $slug, - content => $content -}; - -if ( my $old_post = $db->select( 'posts', ['id'], { slug => $slug } )->hash ) { - say 'Updating post.'; - $db->update( 'posts', $post, { id => $old_post->{id} } ); -} -else { - say 'Inserting post.'; - $db->insert( 'posts', $post ); -} - -say 'Finished.'; diff --git a/public/alpine.png b/public/alpine.png deleted file mode 100644 index 79ab0b2..0000000 Binary files a/public/alpine.png and /dev/null differ diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 85d501b..0000000 --- a/public/index.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - rawley.xyz - - - - - - -

Rawley Fowler

-

- Hi, I'm Rawley, a Software Engineer from rural Saskatchewan, Canada. - I specialize in Perl, and Go development, tackling all areas - of the software life cycle. I also like to dabble in Pure Functional languages. At work I develop microservices using Java, SpringBoot, and PostgreSQL. I'm passionate about software performance, - functional programming, and making programs safer. If you have a position that you think I'd like (especially focusing on Perl, or Go), please feel free to email me. - Outside of my professional work, I spend a lot of time contributing to open-source projects. You may or may not have used some of them :) -

-

Skills

-

- The following are technologies that I can confidently say I am good at. -

-

Programming Languages

-
- Perl - Go - Raku (Perl 6) - OCaml - Haskell - Java - PlpgSQL -
-

Operating Systems

-
- FreeBSD - GNU/Linux - OpenBSD - NetBSD -
-

Other

-
- Docker - Docker Compose - PostgreSQL - MySQL - AWS - RabbitMQ - CouchDB - Podman -
-

Experience

-

- I've been a Software Engineer for around 3 years. I've been contributing to open-source for even longer. -

-
- Farm Credit Canada (FCC): Software Developer Consultant. Jan 2023 - Present -

- Designing, developing, and maintaining a large array of SpringBoot microservices to modernize core customer and lending business functions. - Maintenance on a multi-million line of code Java 7 monolith, including migrating code to new microservices. -

-
-
- Mollusc Labs: Sole Proprietor. Jun 2023 - Present -

- A small business that I am sole-proprietor of. This business exists to allow me to build software in my spare-time and license it under an organization. - When taking solo contracts I also use this business as the business name at which the work is being completed by. -

-
-
- Saskatchewan Polytechnic: Instructor. May 2023 - Jun 2023 -

- Instructed a single class during the summer semester at Saskatchewan Polytechnic. - This class covered Docker, Software Performance, Docker Compose, and the basics of Software Architecture. - Students in the end had to develop and deploy a microservice using Docker and a technology of their choice, which was then benchmarked on the last day of class. -

-
-
- Dev-Pro Consulting: Instructor. Jun 2022 - Jan 2023 -

- Worked on various internal projects at Dev-Pro including re-designing from the ground-up, a major internal product, using WebSockets and Angular 14 features. - Daily work consisted of developing with Angular, Java, and PostgreSQL, and deploying through an internal Jenkins CI/CD platform. -

-
-

Education

-
- Saskatchewan Polytechnic: Computer Systems Technology. Sept 2021 - Jun 2023 -

- Took a 2 year diploma to upgrade my skills, this included courses in Azure Cloud, Advanced Database Management, and ended with a capstone project using - .NET, Vue.js, Docker, Pusher, Heroku, AWS RDS and PostgreSQL. -

-
-
- University of Regina: Bachelor of Science in Mathematics. Sept 2020 - Jun 2021 -

- Studied various mathematical concepts (mostly Linear Algebra, and Calculus), ultimately did not finish due to extraneous circumstances. Hoping to have the time one day to complete this degree. -

-
-
- Links: rawleyfowler@proton.me > GitHub > Mollusc Labs -
- -
- Rawley.xyz is powered by: -
- - - - diff --git a/public/perl.png b/public/perl.png deleted file mode 100644 index a010406..0000000 Binary files a/public/perl.png and /dev/null differ diff --git a/puffy.png b/puffy.png new file mode 100644 index 0000000..2da0953 Binary files /dev/null and b/puffy.png differ diff --git a/site.pl b/site.pl deleted file mode 100644 index eb7a10c..0000000 --- a/site.pl +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env perl -use 5.016; - -use Mojolicious::Lite -signatures; -use Mojo::SQLite; -use Mojo::File; -use Carp qw(croak); - -my $sql = Mojo::SQLite->new('sqlite:site.db'); -helper db => sub { state $db = $sql->db }; - -$sql->migrations->name('posts_table')->from_string(<migrate; --- 1 up -CREATE TABLE IF NOT EXISTS posts ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - title TEXT, - content TEXT, - slug TEXT, - created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); --- 1 down -DROP TABLE posts; -EOF - -$sql->migrations->name('posts_index')->from_string(<migrate; --- 2 up -CREATE INDEX IF NOT EXISTS slug_idx ON posts (slug); --- 2 down -DROP INDEX slug_idx; -EOF - -get '/' => sub { - my $c = shift; - $c->reply->static('index.html'); -}; - -get '/blog' => sub { - my $c = shift; - $c->stash( posts => [ $c->db->select('posts')->hashes->each ] ); - $c->render; -}; - -get '/blog/:post' => sub { - my $c = shift; - my $post = $c->db->select( - 'posts', - [ 'title', 'content', 'slug' ], - { slug => $c->param('post') } - )->hash; - - return $c->render( template => 'not_found', status => 404 ) unless $post; - - $c->stash( post => $post ); - $c->render( template => 'post' ); -}; - -app->start; - -__DATA__ -@@ not_found.html.ep - - - %= include '_header', title => '404 Not Found' - - %= include '_nav' -

404 - Not Found

- - - -@@ post.html.ep - % use Text::Markdown qw(markdown); - - - - <%= $post->{title} %> - - - - - - - - - -

<%= $post->{title} %>

-
- <%== markdown($post->{content}) %> -
- - - -@@ blog.html.ep - - - %= include '_header', title => 'Blog' - - %= include '_nav' -

Blog

-

- This is my blog; it represents my opinions, not that of my employer(s) past, present or future. - My blog is made up of Functional Programming, Perl & Raku, Rants, Politics, and whatever else I dream up. - If you are prone to becoming upset about things, this might not be the best place for you. -

-

- All content is licensed under the Creative-Commons Attribution-ShareALike 3.0 license unless specified otherwise. -

-
-

Title

-

Publish Date

-
- % for (@$posts) { -
- <%= $_->{title} %> -
<%= $_->{created_at} %>
-
- % } - %= include '_footer' - - - -@@ _header.html.ep - - <%= $title %> - - - - - - - - -@@ _footer.html.ep -
Rawley.xyz is powered by:
-
- The Perl Programming Language - Alpine Linux -
- -@@ _nav.html.ep -