Initial Post

Hi again. My name is Pavel, or Paul for short. I worked as a software developer and an R&D engineer in many companies from small startups and indie game developers to big corporations from Fortune 500. I developed production systems with many programming languages: Visual Basic, C#, Java, C++, Python… a lot of them.

I filled this blog with stuff which is interesting for me as a computer science fan. But I am quite sure that you will find something useful here too, please come in, look around, do not be in a hurry 🙂

Main themes that are interesting for me now: compilers, operational systems, LLVM, functional programming, different programming languages (C, C++, Haskell, Rust, Python, …). And of course my PhD work (you can check its details here: http://dl.acm.org/citation.cfm?id=2556619&CFID=665563601&CFTOKEN=10055321)

The main purpose of this blog is to save my notes. And I want to make my notes public because of two reasons:

1) Be useful to someone else. To be honest — I often read and get useful things from the internet community and I want to give something back.

2) Get feedback. Maybe my notes will show that I am going in the wrong direction, and I would be grateful if you will point to such issues.

Of course, you can reach me to discuss existing articles. And maybe plan future ones. I am quite a friendly guy. Do not hesitate to send a question or some proposal 🙂

Important Skills for R&D Compiler Engineer

Firstly compiler engineers should be curious and patient.

And one also should know the following things:

  1. CPU Design and Architecture.
  2. Algorithms (especially graph-based ones).
  3. Compiler internals (from parser to codegen).
  4. Operational systems design
  5. How linkers works
  6. Data Science / ML

These are the first points which came to my mind. Obviously this list is far from complete, and I will enhance it from time to time. I created this list based on my experience. I believe that you have things to add. Please drop your thoughts in the comments.

In later posts I intend to add links of useful books/courses/articles/you-name-it for every item of this list. So, stay tuned.

P.S.: Btw, nice starting point can be found here: cpplinks/compilers.md at master · MattPD/cpplinks · GitHub

Useful Commands

In this article I will place different tips and tricks for git/bash/sed…

But let’s start with setting bash prompt: export PS1=”\e[1;34m[\t]\e[0;32m\w>\e[0m”

it changes prompt to this one: 

In short:

  • \e[1;34m – Begin color changes to light blue
  • [\t] – Place current time between two brackets
  • \e[0;32m – Begin color changes to green
  • \w> – Place current working directory and sign ‘less’ after it
  • \e[0m – Finish color changes

which is more convenient for me because I see how long previous command was executed and where is my current working directory in this shell (most of the time I have opened at least several shells)More details for such customization you can find here: How To Change or Customize Bash Prompt In Linux {25 Options} (phoenixnap.com)

Design a site like this with WordPress.com
Get started