summaryrefslogtreecommitdiff
path: root/content/cv.md
blob: 58a3dfd6d7f8063d00f5773767d7f2fababb8b2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
---
title: "CV"
---

### About me

I like to tinker with computers/software, learning about good software architecture, and
mathematics. I am captivated by the beauty of functional programming and I am going
down the rabbit hole of learning some category theory for the sake of it.
My current long term goal is to finish developing/deploy my stock trading system.
In the mean time, I am looking for work where I can enhance my functional
programming skills and generate value for the shareholders of the company.

### Technical Skills

A short summery of some of my most relevant technical skills.

#### Programming

| Language | Level        |
| -------- | ------------ |
| Haskell  | Intermediate |
| Python   | Fluent       |
| Fennel   | Fluent       |
| Lua      | Fluent       |
| Shell    | Fluent       |
| Rust     | Basic        |
| VHDL     | Basic        |
| C        | Superficial  |

#### Markup

| Language | Level        |
| -------- | ------------ |
| LaTeX    | Fluent       |
| markdown | Fluent       |
| HTML     | Proficient   |

#### Databases

| Type         | Implementation        |
| ------------ | --------------------- |
| NoSQL        | MongoDB               |
| SQL          | Postgres, TimescaleDB |
| Memory Cache | Redis                 |
| Message bus  | Kafka, SQS, Nats      |

#### Software

Here is a list some software that might be worth mentioning that I have
interacted with.

| Name       | Level        |
| ---------- | ------------ |
| Git        | Fluent       |
| Kubernetes | Proficient   |
| Helm       | Proficient   |
| Terraform  | Intermediate |
| CircleCI   | Proficient   |
| Tekton     | Proficient   |
| Docker     | Fluent       |
| Neovim     | Fluent       |
| tmux       | Proficient   |
| neomutt    | Proficient   |

I have plans on learning [Nomad](https://www.nomadproject.io), as this seems to
be a better copy of k8s. I am also moving to [podman](https://podman.io/)
next time I work with containers in my spare time. I am also keen working more
with service meshes, to improve my knowledge of their capabilities.

#### Machine Learning

tbc

#### Operating Systems

I use Artix Linux as my daily OS. However, I would like to transition to OpenBSD
soon. But, I am a bit afraid of the lack of support for Nvidia GPUs.
Unfortunately, I use macOS for work.

#### Workflow

I use neovim for all my development, together with dwm as a tiling
window manager, and st as the terminal of choice. I am very happy with this
setup, but would like to improve the workflow with increased tmux usage and
git worktrees, à la [ThePrimeagen](https://www.youtube.com/watch?v=GXxvxSlzJdI).
I use a ferris sweep keyboard with Colemak Mod-DH layout. I moved on from
qwerty as I do not believe that you should go through life using suboptimal
solutions from the past, just because you cannot bother learning something new.

#### Architecture

Good software is like physics, it should avoid too much complexity, like von
Neumann famously stated, *"With four parameters I can fit an elephant, and with
five I can make him wiggle his trunk"*. I adhere by the [unix
philosophy](http://www.catb.org/esr/writings/taoup/html/ch01s06.html), as well
as the [suckless philosophy](https://suckless.org/philosophy/). I truly believe
that you develop better software by following these principles.

For designing and implementing distributed web service systems, I really like
the framework presented in the book *The Tao of Microservices*. Web services
should almost be provocatively small, most communication between services
should be asynchronous. You should at all cost avoid building a distributed
monolith with entangled dependencies.

#### Miscellaneous

| What      | Level        |
| --------- | ------------ |
| Soldering | Intermediate |

### Experience

- Nexure AB.
  - Software Engineer. Aug 2021 -- Present

    I develop and maintain backend web services (microservices) in the
    payments/subscription domain. From time to time I also do some
    infrastructure work in k8s and AWS with terraform.

- Saab AB.
  - Machine Learning Engineer. Aug 2018 -- Aug 2021

    blablabla

### Institutions

- M.Sc., Electrical Engineering. Kungliga Tekniska Högskolan. 2013 -- 2018
    - Major in Machine Learning

- Exchange Year. Imperial College London. 2016 -- 2017

- Summer course in Chinese Culture and Language. Dalian University of Technology. 2014

- Economics I. Stockholms universitet. 2013

- Political Science I. Stockholms universitet. 2011