
Hi. This page contains my career info.
If you don’t know anything about software development, This page isn’t for you.
<note to="reader">
<!-- Please keep in mind -->
Number 1: I know what it is, and I'm not sure what it's not!
Number 3: 1 + I know how to get things done (in a dirty way).
Number 5: I know the basics but not the details.
Number 7: I know it well, and I know where to find more details.
Number 10: I know all the details, and I keep myself updated.
<!-- Never underestimate a man who overestimates himself -->
</note>
Operating systems
[FreeBSD]
installation = 5
configuration = 3
internals = 3
[Linux]
installation = 6
configuration = 3
internals = 2
[Windows]
# TODO: Remove this section
installation = 3
configuration = 2
internals = 0
Protocols
{
"XMPP": 8,
"MQTT": 7,
"HTTP": 6,
"WebSocket": 6,
"Signal": 4,
"AMQP": 4,
"SMTP": 3,
"LDAP": 3,
"MATRIX": 3,
"CQL": 3
}
Programming Languages
erlang: 8
python: 6
rust: 6
go: 5
c: 4
ruby: 3
elixir: 3
awk: 3
lua: 2
perl: 2
javascript: 2
php: 2
# I also know how to write comments in C++ & Java & C# etc codes
Erlang
-module(pouriya_jahanbakhsh).
-on_load(send_info/0).
-export(['$handle_undefined_function'/2]).
%% I use string (instead of atom) for better syntax highlighting
concepts() ->
#{
"process" => #{
"monitor" => 7,
"link" => 7,
"message_passing" => 7
},
"otp" => #{
"application" => 8,
"gen_server" => 9,
"gen_fsm" => 7,
"gen_event" => 7,
"gen_statem" => 6,
"supervisor" => 8
},
"hot_code_reloading" => 7,
"distribution" => 6,
"tracing" => 6,
"meta_programming" => 8,
"test" => 5
}.
tools() ->
#{
"rebar3" => 7, % Erlang build tool
"mnesia" => 6, % A distributed telecommunications DBMS
"ejabberd" => #{ % A powerful XMPP & SIP & MQTT server
"internals" => #{
"router" => 8,
"database_management" => 8,
"configuration" => 7,
"plugin_management" => 8,
"authentication_mechanism" => 8
},
"connection_manager" => #{
"client" => 9,
"server" => 4,
"component" => 7
},
"develop_new_things" => #{
"plugin" => 9,
"authentication_mechanism" => 8,
"database_backend" => 7,
"new_configuration" => 7
},
"hooks" => 8,
"clustering" => 7
},
"emqx" => #{ % A distributed MQTT broker
"internals" => 4,
"develop_new_plugins" => 6
},
"rabbitmq" => #{ % A distributed AMQP & MQTT & STOMP broker
"internals" => 2,
"develop_new_plugins" => 4
},
"http" => #{
"cowboy" => 6, "elli" => 5, % HTTP servers
"hackney" => 6, "ibrowse" => 5, "gun" => 5 % HTTP Clients
},
"brod" => 7, % Apache Kafka client library
"lagger" => 6,
"meck" => 5, % Mock testing library
"mysql-otp" => 5,
"epgsql" => 4, % PostgreSQL client library
"escalus" => 5, % XMPP client library
"marina" => 6 % Cassandra CQL client library
%% And many many more...
}.
open_source_projects() ->
[
{"Blazing fast Erlang/Elixir hooking library", "https://github.com/pouriya/posthaste"},
{"My MetaProgramming play", "https://github.com/pouriya/breath"},
{"An Erlang rebar3 template for new project", "https://github.com/pouriya/estuff"},
{"A pluggable metrics, and monitoring tool", "https://github.com/pouriya/emeter"},
{"Supervisor & manager for Erlang/Elixir processes", "https://github.com/pouriya/director"}
].
contributions() ->
[
{
"Erlang/OTP",
"Fixed a bug in stdlib's 'sys' module",
"https://github.com/erlang/otp/commit/eefcc985530acbd5cc4c97b6e4f537492fd61622"
},
{
"Ejabberd",
"Added a new hook to detect Component packets",
"https://github.com/processone/ejabberd/commit/7b3d26992b492063d6a6c2af3c595934d681accc"
},
{
"Warp (self-contained single binary maker)",
"Added a complete example for Erlang",
"https://github.com/dgiagio/warp/commit/bb2364dc9de3739fe96d1e1aa8bb941060ed4aba"
},
{
"Ejabberd",
"Check decoded JWT after successful authentication",
"https://github.com/processone/ejabberd/commit/a76531b90b552824a7832f65708eea7f4ba5ef67"
},
{
"Ejabberd",
"JWT enhancement",
"https://github.com/processone/ejabberd/commit/c056002f7c9056771f0823ece945e8e554f327fe"
}
].
send_info() ->
try
you ! "I'm going to send you current status of my Erlang knowledge",
you ! {concepts, concepts()},
you ! {tools, tools()},
you ! {open_source_projects, open_source_projects()},
you ! {contributions, contributions()},
ok
catch
error:badarg ->
"You should register 'you'!"
end.
'$handle_undefined_function'(_, _) ->
send_info().
Python
if __name__ == "__main__":
print("I use Python scripts everywhere.")
# I know about PEP8 but in my own scripts I'm free to use my own standard
script_dict = {
"password-manager": "https://github.com/pouriya/ppg",
"file-encryption": "https://github.com/pouriya/pcrypt",
"git-structured-commit": "https://github.com/pouriya/pcommit",
"gotify-file-downloader": "https://github.com/pouriya/pfdnld",
"terminal-calendar": "https://github.com/pouriya/tir"
}
for script_name, link in script_dict.items():
print(f"I implemented my own {script_name} in Python.")
print(f"\tIt's open-source: {link}")
class CV(object):
def __init__(self):
self.decorators = 4
self.multi_threading = 4
self.inheritance = 3
self.test = 3
self.performance_tuning = 0
<note to="reader">
<page-status>Work-In-Progress</page-status>
</note>