Expert in Node.js, Express, MongoDb, CouchDb, RDF, LAMP
My name is Sergey, I'm from Russia, currently travelling around the world.
I've started my career in developing software since teen, and now at my 28 I gained a lot of experience mostly in web development related subfields and various technology stacks.
During my career I had a chance to work with different technologies and different team roles: as lead builded and managed a team (up to 7) to deliver successful product to market, as a freelancer and as a consultant.
I believe in "10x performance gap" between average and best developers, which is supported by my clients feedback. Also I believe I have a nice learning curve which allows me to quickly dive into new and complex problem.
I love to learn new technologies, languages, concepts and underlying math. Actually, I could do it for free, if it wasn't payed so well.
Here's the list of tools I use with confidence:
- HTML, HTML5 APIs (websockets, geo, webworkers, etc)
- LESS and CSS
- backbone, requirejs, ender, angular, underscore, lodash, socket.io libs
- nodejs, expressjs, promises (also, I'm in love with harmonyjs features) on a very deep level
- mysql, where I know internals and love to use view, procedures and etc
- couchdb, which I've studied all thru, including source code review and deep understanding of couchdb-specific features like replications, changes streaming and performance factors
- mongodb, which I usually use with nodejs and mongoose
- RabbitMQ, ZeroMQ
- XML by XSLT transformations, where I have a great experience and feel fluent using it's paradigm. XSD skills included
- Google Chrome, Firefox and Safari extensions and of course phantomjs
- Designing and building nice REST apis, which are not mimicking rest concept, but really follows design principles
- Integrating 3rd-party rest/oauth APIs in one single solid system, considering related issues like availability and etc
- Designing and building long-running distributed system in data mining and processing
- Hacking, bypassing and tricking
- PHP > 5, which I prefer not to use, but still have many successful projects behind
- linux other *nix systems administration and configuration. With a little help I can compile and install linux from sources for example or have no problems while setting up complex multi-server development environment, writing deploying scripts with bash or puppet, setting up monitoring and so on.
Other things I've used to do or have a great interest in:
- erlang, which has an interesting approach
- RDF, RDFS, OWL, SPARQL, graph databases (like Neo4j) and triple stores (like jena, allegrograph, thinkerpop and many more). That's my main point of interest by now. I've studied all available software, math related to graph processing as well as relational and sparql algebra and related issues like data locality in graph, data storing, queries complexity, forward/backward reasoning problems and etc.. Currently, in my free time I'm building GPU graph processing snippets to play and get better understanding. So I would be very happy to see and join this kind of projects here, on odesk
- C/C++/Java coding skills, which is required if one want to try newest approaches or link together code from different worlds, for example, bridge cpp library to nodejs. I don't pretend here for being good coder, but it helped me so many times, it's worth mentioning
- Python, because there're coolest math, stat and science libs I've ever used. Python here is just a tool to access them.
I prefer 3 types of jobs:
- short but very complex problems, where deep understanding or wide set of skills is required
- building project from scratch with well-defined features list
- consulting in system design or problem solving
I prefer to avoid to join projects in a late stage, because usually it means that I'll have to deal with previous developer's problems, not client's ones. So I will ask you to introduce me with your existing codebase in a first place before giving any feedback.
Also I won't take team leading, because I don't have enough skills to perform remote team managing.
Usually I pick up the project mostly not by company or project solidity or payment rates, but by how interesting or fun it feels for me. Unfortunately, I can't clearly define those 2 above, so I'm considering a wide variety of offers.
Currently odesk is not yet my primary projects source, but I like it's reliability and have plans to move my activity here.
Finally, I have no online availability problems and I can communicate with English in both written and verbal ways.
Thank you, and I'm here looking forward for cool problems from you to solve.