Experienced .Net Developer Looking for a remote position in Multi-threaded Application Development. Computer Science Engineer. Specialist C#, .NET & Performance
In a fast paced industry mere knowledge of programming languages using Object Oriented Programming or Functional Programming isn’t just sufficient. A combination thereof is very much a requim if not a catalyst for alternative or out of the box thinking to solving problems with Programming languages.
Dan grossman’s Programming language course is an interesting resource well worth anyone & everyone’s time (For an Industry veteran or newbie in the software services industry).
There’s RDBMS. There are NoSQL Databases. We all know this. Getting a grip on more than one Database solution is a key to cracking a career in Data Science or Software Services. There are all sorts of variants to NoSQL :-
DynamoDB,
bigtable,
redis,
spanner(developed at google for disturbed transcational use-targeted at enterprises),
Neo4j& memSQL(An in memory DB in growing popularity, used by Uber, AKAMAI etc)
Some Interesting Books worth Purchasing:
Dmitri Fontaine’s Mastering postgesSQL
Baron shwartz High performance MySQL
Dynamodbguide.com has an interesting getting started guide on NoSQL DBs using Amazon’s AWS as a primary example.
Become Protocol polygot TCP/IP, HTTP,UDP,FTP
Must know : SSL,TLS,Applayer Intergrations sockets and ports
High performance browser networkingRead up RFC 7231 (about 90 pages) first instead of RFC2616(more recent but way too long)
(As a general tip find and read RFCs with the most citations on Google search results).
Most cited RFC have certain additional resources(or perspectives) to further lookup and explore.(**Lookup most used RFC (or) most cited)
Proficiency with build tooling, packaging and distribution
Being able to tweak the tools,build/change whats needed
Maven,python packaging
MSBUILD, nuget;
system.IO.Packaging,
Dependency Injection tools/frameworks such as
Castle Windsor
Simple injector
Microsoft.Extensions.Dependency injection
Autofac DI containerAdditionally:
Write your own build tooling.
Proficient to compile/run multi-file programs
Ability to analyze reason about and debug programs
Reading &reviewing code
Debug running programs
Observability & instrumentation
Inculcate observability in your process of writing software.