diff --git a/index.md b/index.md
new file mode 100644
index 0000000..4bf465f
--- /dev/null
+++ b/index.md
@@ -0,0 +1,154 @@
+# Technical Writing Portfolio
+
+I am a technical writer specializing in documentation for developer-oriented software and database systems.
+I have created this page to showcase my writing style.
+
+## PostgreSQL documentation
+
+As a technical writer at Postgres Professional, I created documentation for several PostgreSQL-based products,
+which included both enhanced flavors of vanilla PostgreSQL and various extensions or utilities.
+Here you can see some samples of this work.
+
+### Reference
+
+[pg_integrity_check utility](https://drive.google.com/file/d/1OcKDS5TxKXSX-QtdSNJgIVrSxOnPZEHz/view?usp=sharing)
+
+### Task
+
+This instruction was created as part of the Installation guide for Postgres Pro Standard.
+
+
+ Configuring multiple Postgres Pro instances on Windows
+
+ ### Configuring multiple Postgres Pro instances on Windows
+
+ To set up several Postgres Pro server instances with different data directories:
+
+ 1. Install Postgres Pro as explained in
+ [GUI installation](https://postgrespro.com/docs/postgrespro/12/binary-installation-on-windows#GUI-INSTALLATION-WIN)
+ or [Command-line installation](https://postgrespro.com/docs/postgrespro/12/binary-installation-on-windows#WIN-CLI-INSTALLATION) sections.
+ The installed binary files are shared by all Postgres Pro instances, so you need to complete this step only once.
+
+ 2. Select an empty folder that your new Postgres Pro instance will use as the data directory.
+ For example, `C:\Program Files\PostgresPro\12\data2`. Make sure to grant Full Control
+ permissions for this folder to the current OS user that will own the database files and to
+ the user on behalf of which the server is running (`NT AUTHORITY\NetworkService` by default).
+
+ 3. Run `initdb` specifying the path to the new data directory and any other parameters
+ required to initialize another server instance. For example:
+
+ ```
+ "C:\Program Files\PostgresPro\12\bin\initdb.exe" --encoding=UTF8 -U "postgres" -D "C:\Program Files\PostgresPro\12\data2"
+ ```
+
+ Alternatively, you can stop the running server and copy the contents of the existing data directory
+ into the newly created folder. In this case, the new Postgres Pro instance inherits all the settings
+ of the original instance, including authentication settings.
+
+ 4. Modify `postgresql.conf` settings for the new Postgres Pro instance as required.
+ Make sure to specify different ports for your server instances to avoid conflicts.
+
+ 5. Open the command prompt as Administrator and register a new Postgres Pro service
+ with a unique name. For example, `postgrespro-data2`:
+
+ ```
+ "C:\Program Files\PostgresPro\12\bin\pg_ctl.exe" register -N "postgrespro-data2" -U "NT AUTHORITY\NetworkService" -D "C:\Program Files\PostgresPro\12\data2" -w
+ ```
+
+ 6. Start the registered service:
+
+ ```
+ sc start "postgrespro-data2"
+ ```
+
+ Once the service is started, your Postgres Pro instance is ready to use. If you need
+ any additional Postgres Pro extensions, make sure to enable them for the new instance
+ as explained in [Installing additional supplied modules](https://postgrespro.com/docs/postgrespro/12/installing-additional-modules).
+
+
+### Concept
+
+This is a description of the jsonpath data type introduced in PostgreSQL for querying JSON data.
+The original patch submitted to PostgreSQL is available in the
+[official PostgreSQL repository](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=72b6460336e86ad5cafd3426af6013c7d8457367).
+
+
+ jsonpath type
+
+ ### jsonpath Type
+
+ The jsonpath type implements support for the SQL/JSON path language
+ in PostgreSQL to effectively query JSON data.
+ It provides a binary representation of the parsed SQL/JSON path
+ expression that specifies the items to be retrieved by the path
+ engine from the JSON data for further processing with the
+ SQL/JSON query functions.
+
+ The SQL/JSON path language is fully integrated into the SQL engine:
+ the semantics of its predicates and operators generally follow SQL.
+ At the same time, to provide a most natural way of working with JSON data,
+ SQL/JSON path syntax uses some of the JavaScript conventions:
+
+ * Dot `.` is used for member access
+ * Square brackets `[]` are used for array access
+ * SQL/JSON arrays are 0-relative, unlike regular SQL arrays that start from 1
+
+ An SQL/JSON path expression is an SQL character string literal,
+ so it must be enclosed in single quotes when passed to an SQL/JSON
+ query function. Following the JavaScript
+ conventions, character string literals within the path expression
+ must be enclosed in double quotes. Any single quotes within this
+ character string literal must be escaped with a single quote
+ by the SQL convention.
+
+ A path expression consists of a sequence of path elements,
+ which can be the following:
+
+ * Path literals of JSON primitive types: Unicode text, numeric, true, false, or null.
+ * Path variables listed in [jsonpath variables](#jsonpath-variables) table.
+ * Accessor operators listed in [jsonpath accessors](#jsonpath-accessors) table.
+ * jsonpath operators and methods listed in the [jsonpath operators and methods](https://postgrespro.com/docs/postgresql/12/functions-json#FUNCTIONS-SQLJSON-PATH-OPERATORS) table.
+ * Parentheses, which can be used to provide filter expressions or define the order of path evaluation.
+
+ For details on using jsonpath expressions with SQL/JSON
+ query functions, see [SQL/JSON path language](https://postgrespro.com/docs/postgresql/12/functions-json#FUNCTIONS-SQLJSON-PATH).
+
+ #### jsonpath variables
+
+ | Variable | Description |
+ | --- | --- |
+ | `$` | A variable representing the JSON text to be queried (the context item). |
+ | `$varname` | A named variable. Its value must be set in the PASSING clause of an SQL/JSON query function. See for details. |
+ | `@` | A variable representing the result of path evaluation in filter expressions. |
+
+ #### jsonpath accessors
+
+ | Accessor operator | Description |
+ | --- | --- |
+ | `.key`
`."$varname"` | Member accessor that returns an object member with the specified key. If the key name is a named variable starting with `$` or does not meet the JavaScript rules of an identifier, it must be enclosed in double quotes as a character string literal. |
+ | `.*` | Wildcard member accessor that returns the values of all members located at the top level of the current object. |
+ | `.**` | Recursive wildcard member accessor that processes all levels of the JSON hierarchy of the current object and returns all the member values, regardless of their nesting level. This is a PostgreSQL extension of the SQL/JSON standard. |
+ | `[subscript, ...]`
`[subscript to last]` | Array element accessor. The provided numeric subscripts return the corresponding array elements. The first element in an array is accessed with `[0]`. The `last` keyword denotes the last subscript in an array and can be used to handle arrays of unknown length. |
+ | `[*]` | Wildcard array element accessor that returns all array elements. |
+
+
+
+## Intel documentation
+
+The projects that I supported at Intel Corporation were quite diverse, but mostly
+dealt with performance analysis. I include a couple of old snapshots to complete the picture.
+
+* [Profiling OpenGL/OpenGL ES* frames with Graphics Frame Analyzer](https://drive.google.com/file/d/0B3DZw4r9vC46WXpKcTRaTE5xbVE/view?usp=sharing&resourcekey=0-MvFeU89u2OylskHUNGM2vg)
+* [Data fitting functions](https://drive.google.com/file/d/0B3DZw4r9vC46anhXVzd0eE56bEU/view?usp=sharing&resourcekey=0-DwijtvO0F9XAtoN0Hz4dgQ)
+
+
+## Translated books
+
+I have translated these books from Russian into English:
+
+* [PostgreSQL Internals](https://edu.postgrespro.com/postgresql_internals-14_en.pdf)
+* [Postgres: The First Experience](https://edu.postgrespro.ru/introbook_v9_en.pdf)
+
+## Contact info
+
+[LinkedIn](https://www.linkedin.com/in/lmantrov/)
\ No newline at end of file