----------------------------
Areas of Expertise
----------------------------
* Microsoft Windows (2000, XP, Vista, 7, and previous versions)
* Linux (Debian, Ubuntu, Gentoo, RedHat, Fedora,...)
* Mac OS
*
----------------------------
Developing Skills
----------------------------
* Years of experience working in .NET (C#, VB, F#)
* WPF and Silverlight
* Non-graphical applications in Python
* Experience developing Win32 native applications (subclassing, hooks, everything), and using Win32 API from other languages like C#
* Developing skills in C/C++ (both UNIX and Windows systems)
* Developing skills in Python, Java, Ruby, Perl, Awk,...
* Developing skills scripting in shell (Awk, Sed, egrep, Ruby, Perl, Python,...)
* MATLAB
* Object Oriented programming (OOP)
* Ranking reports for a list of keywords & search engines (including the application)
* Automatization Softwares (softwares which do 'clicks' for you, specially on websites)
* Software to create multiple accounts on websites
* Submit information to several websites
* ...any task you want to automate on Internet...
* Geocoding programatically
- Working with ZIP codes
- Latitudes & Longitudes
- Representing addresses/cities in maps
- ...
* Data Entry
- Excel
- Website frameworks (submitting products to shops, etc.)
- CSV
- Databases
- Web pages
* Finding Places/Business all around the world
* Modeling databases:
- ORMs
- [login to view URL] Entity Framework
- LINQ to SQL
- NHibernate
- MS SQL Server (Express, Compact Edition,...)
- MySQL
- SQLite
- PostgreSQL
- MS Access
- ...
* Regular expressions
* Multithreaded applications
* Version control systems (Git, Mercurial, SVN)
----------------------------
Scrapers/Crawlers
----------------------------
* Crawling/Scraping/Parsing info from websites which:
- Don't provide APIs
- Requires decaptching, using online decaptching services like:
* [login to view URL] ($2 per 1000 recognized captchas)
* [login to view URL] (Even cheaper)
* [login to view URL] (A little more expensive)
- Are classical HTML websits that can be accessed directly and see the code without problems>
- Requires using other methods (POST,..) instead of GET to retrieve the information
- Show the data dynamically using JavaScript, AJAX,...
- Requires signing in before navigating & managing cookies
Some of those sites are:
- Google Products ([login to view URL])
- [login to view URL]
- [login to view URL]
- [login to view URL]
- [login to view URL] (Amazon Products Price Tracking)
- [login to view URL] (Sports Betting -> Horse racing, Football, Boxing,...)
- [login to view URL]
- [login to view URL]
- <font color="#404040" size="1">[login to view URL]</font>
- [login to view URL]
- [login to view URL]
- [login to view URL]
- Australia restaurants:
* [login to view URL]
* [login to view URL]
* ...
- Real Estate websites:
* [login to view URL]
* [login to view URL]
* [login to view URL]
* [login to view URL]
- [login to view URL]
- [login to view URL]
- [login to view URL]
- [login to view URL]
- [login to view URL]
- [login to view URL]
- [login to view URL]
- ...see my ratings & finished projects and you'll see many others...
----------------------------
Web development Frameworks & CMS
----------------------------
* Django
* Drupal (v6 & v7)
* Symfony
*
----------------------------
APIs
----------------------------
* Decaptcher
* BypassCaptcha
* DeathByCaptcha
* Yahoo
* Bing
* Google
* Flickr
* Twitter
* Oodle
* Facebook
* LinkedIn
* Any other website that provides an API
----------------------------
Good practices in software engineering,
team programming and software development
in general
----------------------------
* Design patterns knowledge
* SOLID Principle
* Designing applications (both architecture & software design), mainly using an Agile strategy
* Writing good source code (modular, orthogonal,...), taking in count the principles:
* DRY: Don't Repeat Yourself
* DIE: Duplication Is Evil
* YAGNI: You Ain't Gonna Need It
* Test Driven Development (TTD) experience
* Deliver almost all my applications with the corresponding unit tests
* Follower of the Agile (XP, Scrum,...) principles (fast delivers,...)
----------------------------
Data Structures
----------------------------
* Binary search trees
* AVL Tree (Balanced binary search tree)
* Red-Black Tree (Balanced binary search tree)
* B-Tree
* B+Tree
* Disjoint Sets
* Graphs
* Directed/Undirected graphs
* Multigraphs
* Supergraphs
* Classical data structures (LinkedList, Stacks, Queues,...) implemented from scratch
----------------------------
Efficient Algorithms
----------------------------
* String matching (Knuth-Morris-Pratt)
* Main graphs algorithms:
- Prim
- Kruskal
- Floyd-Warshald
- Dijkstra
- Bellman-Ford
- Dag-Shortest-Path
* Finding paths
- Minimum
- Cheaper
- ...
* Searching algorithms
* Sorting
* Divide & Conquer strategy algorithms
* Greedy algorithms
* Dynamical algorithms
* NP algorithms
* Transformation between problems
* Backtrack algorithms
* Any kind of algorithms in general to solve an specific computer problem
----------------------------
Theory
----------------------------
* NP-Completness
* Discretes mathematics
* Number theory
* Group Theory
* Combinatory
* Primitive Recursive functions
* Turing machines
* Graphs theory (which demonstrates that **lots** of algorithms work)
* Proving correctness and complexity of algorithms
* Proving lower bounds of algorithms
* Automatas Theory & Languages (for compilers):
- Attributed grammars
- Grammars
- Regulars, Context free, etc.
- LL(k), SLR, LR, LALR, ...
- Regular expressions
- Code generation
- Automatas
* Finites (Deterministic/Non-Deterministic)
* Stack
----------------------------
Some of real/academic problems
I've solved/developed are:
----------------------------
* Implementation of a shell using C from scratch (input and output redirections, pipes, ...)
* Implementation (with FUSE) of an Ext2 filesystem, using both C and Python under GNU/Linux.
* Scripts for solving particular problems, using Awk, Sed, Perl and Bash. |