Castarco

Joined 20 April 2015
3,796 bytes added ,  20 April 2015
no edit summary
(Incomplete application.)
 
No edit summary
Line 11: Line 11:


== E: Coding experience ==
== E: Coding experience ==
* I have experience with C, C++11
* I "know" Octave since I started to learn about ML two years ago, I've jumped between Octave and R to experiment with problems of this knowledge area, Since a few months ago I'm already working with Matlab because it's a requirement for the subjects I'm studying at my university course (robotics, and computer vision).
* I have experience with C and C++11, but mainly for toy projects and university homework. I've also have experience with OpenMP (but not with GPU parallellization). I'm used to make and cmake, but autotools isn't strange to me.
* I've developed classroom projects with Qt4 and OpenGL, but nothing at professional level.
* Almost all my professional experience is related with Python, PHP, Java and C# since four years ago. I've developed tens of thousands code lines with them. I know their main package management systems (PIP, Composer, Maven & Gradle, and NuGet), and I think this experience is useful to contribute to the package management system of Octave.


* Currently I haven't contributed any patch to Octave, but I hope to do it early, luckily before April's 30th.


TODO , incomplete application.
=== The biggest project ===
The biggest project I worked on is '''Infantium''', a spanish startup aiming to apply machine learning techniques to children's learning process modelling in order to improve and optimize it, helping them to learn more and faster. The idea was to analyse their gaming sessions (with educative games) in order to compute cognitive indicators (numerical coefficients, designed to associate "bigger" to "better") and trying to maximize them. The "problem" isn't one single problem, but many difficult interrelated problems (designing models, guessing models parameters, validating the models, maximizing children's coefficients, dealing with "inflation" and "deflation" problems associated to children scores, designing experiments, making temporal series predictions...).  


This part is one of the more important ones in your application. You are allowed to be as verbose as you want, as long as you stay on topic ;-)
This is an interesting project and idea, but we didn't work in a rational way. Sadly, we hadn't psychologists nor neurologists in our team , and our bosses denied the needed resources to experiment and obtain information to validate or refute the models, and to adjust their parameters. They expected magic from their workers: parameterless perfect models (without having experts in the field), or guessing the parameters from divine inspiration. We were three non-expert workers, and many serious companies have more (and more skilled) workers for much more humble projects.
* Please describe your experience with C++, Octave or Matlab m-scripts, OpenGL and Qt.
 
* Please describe your experience with other programming languages.
I was working in the Data Science team, and I lead it until a more experienced engineer entered into the company. This project made me return to the university. I had to work in very hard problems, but I only solved a few ones. In any case, I've learned a lot of time series analysis, ranking and rating models and artificial deep neural networks.
* Please describe your experience with being in a development team. ''Do you have experience working with open source or free projects?''
 
* Please describe the biggest project you have written code for and what you learned by doing so. Also describe your role in that project over time.
=== Other not so crazy projects ===
* Please state the commits and patches you already contributed to Octave. ''This question (one of the most important parts by the way) is the only part of your application our wiki admins will edit for you even after the application deadline. Code sometimes speaks louder than many words do.''
 
My first programmer job was at Bananity (we were programming with PHP, it was another "online social network"), also a spanish startup. Firstly I was frontend developer, and then I jumped to backend development. My first tasks were bugfixing and code style fixing, later I started to work on improving the software's architecture, performance, and security. I also did a DB migration, I had to develop many integrity checking scripts and data transformation scripts. After that, we started working with Vert.x to create a new fast and scalable API.
 
My last 6 months in the company (I stayed there for 14 months) I started working together with the lead data scientist of the company. With him I started working on very simple NLP problems related with DBPedia (we extracted information from DBPedia because our social network was thought to allow people to tell what they love and what they hate, and DBPedia helped us to create those "things" in a simple way).
 
My last project in the company was a short-texts indexer (using MongoDB as storage system, and JBoss as application server). We could have used Sphinx or Solr, but we thought it was more interesting to develop our software (it's open source, is called Platano Indexer). The design (& implementation) of Platano Indexer is far from being perfect, but I've learned a lot doing it and implementing it.


== F: Feeling fine ==
== F: Feeling fine ==
* Please describe (in short) your experience with the following tools: ''We only use this question to determine where you need guidance, not for rating!  We by no means expect you to be familiar with all of these and you'll won't necessarily need them while working with us.''
** IRC and mailing lists : I'm very familiarized with mailing lists. Sometimes I use IRC, but less than mailing lists.
** IRC and mailing lists
** Mercurial or other source code management systems : I'm very familiarized with GIT and many of it's not-so-well-known features. I've also used Mercurial, but I'm not so familiar with it.
** Mercurial or other source code management systems
** Mediawiki or other wiki software : I'm used to use wikis for professional usage, but also when I edit Wikipedia articles.
** Mediawiki or other wiki software
** make, gcc, gdb or other development tools : When I program with C or C++ I usually use make or cmake, and GCC as compiler. I'm not very familiar with GDB, I usually find the bugs without having to touch it. I've also use valgrind sometimes to find memory leaks.
** make, gcc, gdb or other development tools
 
* What will make you actively stay in our community after this GSoC is over? ''You can also tell us after applications close and we'll happily try to fulfill :-)''
* What will make you actively stay in our community after this GSoC is over? Well, I think having the sensation that my work is worth, that I'm helping people. Working for startups that only care of trends and don't solve people's real problems isn't for me. I need to solve real problems.


== O: Only out of interest ==
== O: Only out of interest ==
* Did you ever hear about Octave before?  
* Did you ever hear about Octave before? Yes.
** If so, when and where? How far have you been involved already?
** When and where? How far have you been involved already? I discovered Octave many years ago, I can't say when exactly, but probably when I started learning ML, or a few months before.
** If not, where would you expect or advise us to do advertising?
* What was the first question concerning Octave you could not find an answer to rather quickly? When I was trying to parallelize the Zhang-Suen thinning algorithm, and I spent a lot of time to discover how to apply a function to each element of a matrix, but taking into account its neighbourhood. Finally I discovered the colfilt method ^^U.
* What was the first question concerning Octave you could not find an answer to rather quickly? ''Of course more than one question can be stated. We try to improve based on this each year! Includes learning how to use it, code, website, GSoC application, …''


== P: Prerequisites ==
== P: Prerequisites ==
* Please state the operating system you work with.
* I work with Ubuntu, usually the LTS versions. I also have access to Windows 7, Windows 8.1 and Mac OS X Yosemite, but using virtualization.
** If you have access to more than one, please state them and the conditions under which you are granted this access.
* I have access to Internet whenever I need it, and I also have "emergency solutions" (3G, friends connections, family connections, or a nearby library with Internet connection).
* Please estimate an average time per day you will be able to ''(if separated)'' access
* I have access to my PC whenever I need it, I have one PC and one laptop, and I also have "emergency solutions".
** an internet connection
** a computer
** a computer with your progressing work on
* Please describe the degree up to which you can install new software on computers you have access to.


== S: Self-assessment ==
== S: Self-assessment ==
7

edits