Profile cover photo
Profile photo
Custom Solvers 2.0
Custom Software Development & Numerical Modelling
Custom Software Development & Numerical Modelling



Here you have an extremely clear and idiot-proof summary of information available in many different places since long time ago. This will be my last attempt at trying to help lost individuals to not make complete fools of themselves and/or get a not-too-nice reply.

- There is only one person behind (= sole author of every single character of code, text, idea, expectation, etc.) all what you can find about Custom Solvers 2.0 and varocarbas, myself: Alvaro Carballo Garcia, a 39-yo Spaniard, mechanical engineer (BEng in Industrial Engineering specialising in Mechanical Engineering; not my only university degree) by education but who has been full-time working as a programmer for over the last 8 years. You can find more information about me (+ my latest CV) in the corresponding about pages of my two sites: (main; English and Spanish) and (R&D; mostly English). In those pages, you can also find links to my main public profiles like this one; most of them about technical/programming aspects, but there are also references to a bit random/personal stuff (e.g., In any case, bear in mind that I am mostly concerned about being hired/dealing with people mostly caring about the technical aspects (= keep your prejudices, fears and random assumptions far away from my work, please).
In principle, all the references to varocarbas (my personal nickname since many yeas ago) and Custom Solvers 2.0 (my commercial name since over 2 years ago) should be mine. In any case, note that I have been working online for quite a few years and I have a relevant activity on many fronts/sites. Please, don't be so stupid to think that over-8-year-old information about me is really valuable (much less if it doesn't have much to do with all my remaining references, because, you know? perhaps I cannot even update that information and looking at what someone said 8 years ago when he is systematically saying new things now doesn't make too much sense), try to communicate with me via a 5-year-old phone number or a profile I stopped using 3 years ago (what actually happened right before starting to write this post).
I am honest, clear and extremely open regarding what I have/not, but it doesn't mean that I have to expressly list everything; not clearly highlighting certain resources should be intuitively understood by any non-stupid person as them not being actually relevant to me right now (it doesn't matter if you think that they are marvelous; well, this should help you understand that you and I don't agree on what is good/bad). Did you work with me years ago and (dis)liked whatever? OK. Things now are different: accept that and/or make a fool of yourself/be ignored/get a perhaps too clear and honest reply. I am not trying to be disrespectful or hurtful to anyone, just practical. I have been very patient and understanding in the past and I know that, with some people, this is a very bad idea. The trick is easy: don't assume anything, don't look for non-existent meanings, don't randomly (mis)interpret my words. There are lots of extremely clear resources addressing even the slightest concern anyone might have. Or you might even use the best option possible: ask me DIRECTLY whatever (you know? Call me and don't hung up when I say "hi" or don't ask for ridiculous things and then lie about having dialed the wrong number; or send me an email and keep a normal conversation rather than spamming me crap or lying or saying one thing and doing the other, etc.); I will be as clear, honest and detailed as required. Please, maximise so good resources whose main purpose is to minimise the chances of everyone unnecessarily wasting their time and/or me having to be perhaps too honest and/or some people realising about what they really have/had/misunderstood/provoked/can get from me.

- Custom Solvers 2.0 is my second self-employment attempt. To know about my previous attempt and my attitude back then, take a look at the evolution pages in customsolvers-com (I am not including the links because G+ seems to automatically and arbitrarily limit the visibility of the posts including many links to the same domains; in any case, that site is quite user-friendly and anyone should be able to find those resources immediately). There is even a page expressly describing the exact point where I decided to start Custom Solvers 2.0 and its defining attitude 2.0: when I found the worst kind of clients which I ever had, what helped me to understand what I will never, under absolutely any circumstance, tolerate. I have even linked that page from my CV. Equivalently to what happens with all the other pages in, you can find both English and Spanish versions for all that (click on the upper-right English/Español links).
Note that one of the defining aspects of this new attempt is that I will perform all the work personally; although this was practically the case almost always, in my previous attempt I was mostly concerned about building a reasonably big company where other people/companies contribution might have a more or less relevant impact. Things are completely different now: Custom Solvers 2.0 isn't a software development company trying to grow, but the commercial name which I use at work. That is, rather than being hired as an employee, I am looking forward to being hired as an external (remotely-working) contractor under a wide variety of different conditions (even full-time-like commitments might be acceptable). So, Custom Solvers 2.0 means me (= Alvaro Carballo Garcia = varocarbas) working on programming or data/engineering analysis projects.

- My activity has always been primarily performed remotely. Initially, it was a forced decision (extremely difficult to find local clients), but this has gradually become my favourite format. Since Custom Solvers 2.0 started I have been fully focusing on finding clients very far away from my current location, as the fact of writing most of the text in English (I am living in Spain) should clearly tell. I might accept clients from anywhere though, it is just a matter of higher probability of finding what I am looking for. In any case, I am exclusively interested in quality-oriented (= programming knowledgeable and/or accepting the limitations of their knowledge and not restricting my work; and, in any case, only interested in properly-built, high-quality, custom pieces of software) clients able and willing to adequately appreciate + reward (= bargaining isn't an option here) my skills and commitment.

- Sample projects which, in principle, might be appealing to me: any development or similar (improvements, extensions, bug fixing, analysis, etc.) where relying on an experienced programmer with an heterogeneous background and able to face virtually any situation might be recommendable. I specialise in coming up with efficient solutions (algorithms or data models) dealing with data-intensive scenarios. I am also quite good at dealing with complex requirements and feel comfortable with virtually any programming language. In any case, I am mostly interested in getting involved in projects/with people adequately understanding/appreciating what they are doing/my work; in case of finding that environment, almost any programming project might be appealing. I am particularly allergic to low-self-esteem, nepotist, imposing, fanatic-like behaviours/attitudes. Only interested in dealing with honest, fair and objective people mostly caring about reaching the best results from a technical, long-term perspective. I will be specially intolerant with pathetic behaviours on the lines of misinterpretation-prone, obsessive (quite a few of these and honestly no idea why; apparently, I have met many sad people in my life with "whom" I should have never been generous/understanding) or similar ridiculous nonsense. I prefer to mostly focus on technical aspects, but the aforementioned attitudes are certainly not welcome here.

- Sample projects which I am NOT interested in doing: full websites or any other standardised output requiring other things rather than my algorithm, data-management, mathematical, engineering, etc. skills. Logically, I have no problem in participating in web-based projects and I am actually quite experienced in different web-based programming environments/languages. NOT interested either in being part of standardised, non-specialised, generic or crappy projects/expectations. Any kind of project defined by something on the lines of "it cost 10, I hire you for 2 and, if you don't want, I can get 1000 other people doing it for 1.5-1.9" is extremely non-appealing to me. I am also not willing to tolerate unreasonable constraints (low time, limited resources/money), much less when I am supposed to be the responsible of the resulting crap, or any kind of ignorance-, others-errors-, dishonest, unfair or similar nonsense. I will always take full responsibility for all my errors, non-ideal approaches, but never again will bear the unfair blame of someone else' incompetence.
On the other hand and as far as certain conditions are respected, I might not mind to work on a-priori-non-ideal developments as far as my standard fees (logically, they aren't precisely low) are respected. If you want to over-pay for what might be accomplished much cheaply and the conditions are acceptable to me, I might go ahead and make you happy. But better accept that reality (= no bargaining + no crap + no unreasonable constraints + people knowing nothing says nothing).

- In general, if all what you read here or somewhere else doesn't sound precisely similar to what you think/are/expect, I would suggest you to either avoid dealing with me or accept that we are different (+ do some extra-effort to understand). Don't be a sad idiot taking whatever sentence out of context and coming to a ridiculously stupid conclusion whose only possible outcome can be me making fun of/ignoring/insulting you. The idea is very simple: if you don't like/understand most of what I do, why do you think that I would like what you do? You might even be surprised to discover that you really want what I (= a person systematically learning and trying and improving and accepting his errors who has reached a stage of tremendous clarity regarding what he wants) do, but you still don't know it. In any case, I am not here to teach/open eyes/help random idiots learn how to behave/live; so, in case of doubt, better avoid dealing with me.


There are three reasons why I decided to rely on plain C to develop QuickSearch: ensuring the best performance under the given conditions (the whole development is quite low-level-ish, so the typical old-language-limitations didn't seem applicable here), relying on a cross-platform/adaptable enough environment and being an excellent excuse to refresh a bit my knowledge about a still-widely-used language.

I did knew about the notable differences between most of modern languages and C regarding the decompilation difficulty. For example, the executables generated by .NET languages are extremely easy to be decompiled (= getting a code which is almost identical to the original one). I knew that this wasn't the case with C, but honestly didn't care too much and this fact didn't have any impact on my decision of choosing this language.

In any case, yesterday and out of curiosity, I did some decompiling experiments and my conclusion was that QuickSearch code is much more obscure than what I was expecting. As highlighted in the only public bits, which are quite small but kind of descriptive (, I have written virtually no comments on that code, have developed everything from scratch by relying on basic pure C (even though GitHub seems to think that that repository contains something else) and, despite having a reasonably clear structure, it is too complex and adapted-to-myself to be easily understood by any other random person (what isn't required anyway). So, even its source code isn't precisely easy to understand, but its decompiled pseudo-code seems virtually impossible! What an indecipherable hell!

Although I also compared those outputs with the ones of other applications, my C-decompiling experience is quite limited (it is pretty much formed by some time I spent on it yesterday), so I might have misassessed the whole situation. That's why I am posting this here, just in case a more-experienced-than-me someone sees it as a challenge and, while trying to teach me a lesson, comes to a more reliable conclusion on this front. LOL.

Seriously, I am not concerned about anything of this. The main reason why I am not publicly releasing its source code is that this would imply a relevant commenting/cleaning-up over-work and am pretty sure that virtually nobody will care about it. This is just a curious issue which I have spontaneously felt like sharing here; basically, what has happened with most of the posts in this account decided to be written pretty much on the go.


As highlighted many times before in many places, I am currently only interested in dealing with knowledgeable and/or reasonable clients. Knowing even a bit about programming is certainly not a requirement, but having fully-sync behaviours with that reality certainly is; or, in other words, talk only if you know and about what you know, otherwise shut up and/or don't expect your nonsense to prevail.

Unfortunately for someone like me (= pretty much the opposite to ignorance, partiality-, nepotism-, hypocritical- or similar-tolerant) in my current situation (= isolated at all the levels in part thanks to the ironic fact of having been quite tolerant in the past with stupidity/ignorance), I have to systematically deal with people with ridiculous expectations in all the fronts. No matter how much I write, how clear and easily-validatable is my position on every single front and how many alternatives you can find to confirm every single issue about me, a regular flow of in-denial, dishonest, imposing idiots with extremely-unappealing-to-me expectations and concerns continue bothering (well... not exactly, as far as I have fully accepted their pathetic existence long time ago and, at the moment, they are only a distraction or even an excuse to explain certain point. In fact, having fully accepted true stupidity has been a required milestone before reaching my current happiness/clarity of ideas; previously, I used to expect/give away a lot without wanting to see the huge number of clueless, dishonest, unfair idiots unable to understand anything properly, always lying, losing/making everyone else lose and disappointing, never able to adequately appreciate, enjoy anything even slightly worthy, too worried about addressing their imaginary fears and ridiculous expectations).

So, in my today's stop-making-a-fool-of-yourself lesson, I will talk about PHP. It is a C-based programming (non-compiled, scripting) language, mostly used in web-based implementations (although this is logically not a requirement) as most of existing languages, with a few exceptions (e.g., JavaScript), for web-based implementations, it only can be used in the back-end (= computer storing all the files forming the corresponding website), as opposed to the front-end (= visitor's computer running whatever application through the corresponding web browser).

As highlighted in many parts, I personally (similarly to most of other good enough and with a heterogeneous enough experience programmers) don't find too many problems in using a specific language; at least, when talking about modern enough ones as far as languages like C (which I have been recently using to develop the private-source code first beta version of QuickSearch) might be much trickier. Anyway, I do have some relevant experience in PHP and in other similar modern language somehow common to it (i.e., C-based). PHP is one of the most used backend languages in websites mainly thanks to the relevant number of pre-made packages which are built on it, for example WordPress; or in principle easier-to-use frameworks like Laravel.

During my over 8 years of full-time-working experience as a programmer, I have been dealing with lots of different situations, requirements (lots of them crazily stupid/impossible, what represented excellent worst-case-scenario learning but kind of ridiculously-tough conditions which I am not willing to tolerate anymore) and, on top of everything, I have learned, evolved and reached a stage where I can reliably face virtually any problem with no further knowledge and deliver a good solution.

BOTTOM LINE 1: I have a relevant experience in the defining elements (= many programming languages, but in this case PHP) and in facing a wide variety of different problems (+ my relevant heterogeneous background and learning/problem-solving skills), how on the hell could anyone in their right mind even think that I would find any problem to deal with a much more restricted subset of elements (e.g., WordPress or a PHP Framework, all of them fully supporting PHP and simple adding further in-theory-easier-to-use layers on top of it) and problems (e.g., whatever standardised web apps can the aforementioned restricted conditions and people using them deal with). The less, the better isn't applicable here! Or to any other knowledge/professional aspect! The more is always, the better! The wider and more comprehensive is the knowledge of the given person, the more likely is that the given outputs will be better!

BOTTOM LINE 2: the fact that many people with lower knowledge perform certain actions doesn't necessarily mean that someone with a much wider expertise has to do the same; in fact, this is rarely the case. So, if a big proportion of people relying on PHP to build web-based whatever use certain subset (e.g., WordPress or any other framework which happens to be built in PHP) precisely meant to make said usage easier (what seems to indicate that the given person might not have a too wide knowledge or, perhaps, not the willingness to carry out more comprehensive implementations), why anyone should assume that another person with a much wider knowledge and expressly telling otherwise should also rely on that restricted approach?
For the nth time: I have developed my two sites (= customsolvers-com and varocarbas-com) in PHP, completely from scratch and without relying on any third-party element. What means that there is no other copy of their codes anywhere else. What also means that there is no reference to third-party elements like WordPress or similar. And what means that trying to find something in any of my sites by looking for "wp-admin" is extremely stupid for two reasons: firstly, any site relying on WordPress (or in any other standardised approach) might change that part (you know? The fact that you blindly use whatever third parties because of lack of knowledge or incompetence/laziness doesn't mean that everyone else does the same). And secondly, my sites don't have any WordPress reliance and, consequently, you cannot find anything related to WordPress (or any other third-party whatever) there!

Post has attachment

You can already download the first beta version of QuickSearch for Linux 64-bit operating systems from customsolvers-com (

This is a highly-restricted version which can only deal with SQL SELECT queries under certain scenarios. In any case, it provides a quite good first impression about the defining QuickSearch features: speed and portability.

Instructions aren't still available, but using the aforementioned package right away is quite straightforward:
- Extract the contents of the zipped file to the desired location.
- Run QuickSearch as any other executable (e.g., via console, go to that location and type "./QuickSearch").
- It will import sample.csv by creating and populating the folder "data".
- You can communicate with QuickSearch via command line or query.txt. The attached version of that file includes various valid instructions (note that only the first one is being considered and that a starting "//" provokes the given line to be ignored).
- Another issue to bear in mind is that importing from CSV files might be a bit too slow in some cases. In principle, this version should work fine with almost any file below 5M rows and 6 columns; with bigger files, the import process might be too slow.

Within the next days, I am planning to release the following:
- Version for Windows 64-bit.
- Readme/instructions.
- PHP connector (i.e., PHP code communicating with QuickSearch).
- Either a comparison with other DB systems or a video or something on these lines.

I am still not sure when I will be able to release QuickSearch v. 1. As commented many times before, this development has provoked delays on quite a few fronts and I cannot continue expending too much time on it within the short term.


From now, I will minimise my posts here about the aspects of my online activity which have their own ResearchGate project, namely:

- FlexibleParser (
- Web domain ranking in varocarbas-com (
- QuickSearch (


Today, I got an email from oDesk offering me to hire freelancers! Curiously, I have participated in quite a few projects in Elance (acquired by oDesk) and oDesk itself some years ago. I hired someone else only once and as a favour to other person, an episode which didn't end precisely well. My whole activity in Elance + oDesk is something like 60 projects as a freelancer and 1 (not too big) hiring someone else. But why caring about that or about the fact that I am writing everywhere that I am exclusively interested in being hired as a programmer/freelancer?

So, here I go once again: I, Alvaro Carballo Garcia, am the only person who has ever dealt with anything related to varocarbas (since ever) and Custom Solvers 2.0 (since I created it around 2 years ago). I am exclusively interested in being hired as a (remotely-working) engineer/programmer, dealing with knowledgeable (or, at least, if-you-dont-know-dont-bother aware) people in a position and willing to adequately appreciate my work, with solid principles/clear ideas and with appealing-to-me programming projects. All my online activity (like this post or the upcoming first version of QuickSearch) is just my self-promotion exclusively targeting the aforementioned interesting-to-me clients.

The paragraph above also means that I am not willing to tolerate arbitrariness/ignorance/stupidity/I-repeat-without-knowing-even-what-I-am-doing/similar-based anything. I will be more than happy to spend some time to help potential clients (or middlemen, recruiters HR departments or similar) to get an idea about my skills/attitude; but I will be extremely impatient/intolerant with methodologies/people wasting my time by not setting the basic conditions to accomplish that goal. In fact, I have recently participated in some events which are very descriptive on this front:

- A very bad experience with a ridiculously-hard coding test (in the worst sense: with crazily-low time availability! A sadly common misconception among low-to-no-programming-knowledge people: these proceedings are good?! What are these people thinking that they can accomplish with such a nonsense?! Reducing the time until the point of not allowing candidates to think about the problem and come up with the best approach?! What do these people think that programming is about? Blindly repeating/copy-pasting for-sure perfect solutions? So much stupidity!).

- A quite good 5-6-hour event with different types of tests and reasonable timeframes. It was a bit too hard and not exactly compatible with my skills/ideal-for-me-positions; but it was certainly created by actually knowledgeable people who made some effort to come up with a methodology actually telling something about the candidates' skills.

- An excellent experience with a 1-week-to-be-solved, very-flexible-conditions not-completely-straightforward coding problem where I happily spent a relevant amount of time + transmitted a much clearer picture about my knowledge/attitude than what thousands of generic programming tests with generic solutions and ridiculously-small time requirements could ever do.

- I also heard about another alternative (unfortunately, never enjoyed it) which seems really nice: some hours of pair programming with another senior developer (side clarification: all this post refers to hiring someone like me, very experienced and only interested in senior positions).

The underlying idea (hiring tip) is: either do some effort (personally or via actually knowledgeable people) and set up a sensible, actually-related-to-my-work, really-saying-something assessing methodology or plainly trust me. Please, don't waste everyone's time and/or make me be honest regarding your professionalism by forcing me to go through the third option (= a sad joke mostly proving your lack of knowledge and care).


The development has been going reasonably well and the intermediate versions have been confirming most of my expectations, but unfortunately I will not be able to release the first version of QuickSearch by September 2017 as planned.

I have definitively misassessed the difficulty associated with meeting the intended goals under the intended conditions. I usually compensate this kind of mispredictions with hard over-work, but this time it hasn't been enough. In any case, note that my main intention since the start was to release good enough versions, where the exact timeframe is somehow irrelevant. Additionally, my over-focus on QuickSearch during the last weeks has provoked delays in some of my other public work which needs to be completed ASAP.

During the next weeks, I am planning to release a preliminary beta version with restricted functionalities, QuickSearch 0.5, defined by the following:
- Only reading actions (simple SQL SELECT queries) with no support for row ordering.
- Import/export of .csv and .qs (the internal QuickSearch format) files of relatively small size (below 5M records).
- Limited number of references (simplistic instructions) and QSAdapters (only PHP version).

At this point, I am not sure whether QuickSearch 1.0 will be released within October 2017 or later.

Post has attachment

As promised in one of my last posts, I will not write anything else about the extremely stupid bots doing extremely stupid things in my sites anymore. Curiously, this isn't the whole story about the apparently huge variety of different peculiarities which target my two sites; even though the number of random visitors directly contacting me is almost zero.

Today's post is about the huge number of bots (apparently not belonging to the aforementioned crazily stupid category) which are systematically visiting varocarbas-com, mainly the pages associated with the domain ranking. Before going ahead, I want to highlight that none of my two sites has ever got a relevant number of visits; in fact, they might easily be included in the category of websites getting a very low number of visitors. This is pretty much what is expected as far as both of them are only meant to be one of my self-promotional resources and my business is a small-number-of-clients one. In fact, a higher number of visitors might even be negative for me because of implying an unnecessary load increase in my sites (= eventually higher expenses unlikely associated with higher income).

Attached to this post, I am including a snapshot showing the bot activity in varocarbas-com during the current month collected by Awstats. As you can see, different pages of this site have been visited by bots over 18000 times!! What means over 600 hits per day. This might not sound a big deal for a website getting lots of visitors, but it is certainly relevant for varocarbas-com whose daily visitors are under one order of magnitude that value.

The most likely reason for such a curious event to happen is that some bots might have got stuck in the virtually-infinite number of pages associated with the varocarbas-com domain ranking. As explained in the corresponding page (, there are multiple URL-friendly ways to access this already-quite-big-and-systematically-growing data set what provokes a virtually-infinite number of valid URLs. If these bots are built to analyse all the pages in every site and they start going from link to link within the domain-ranking information, they would be there for really, really long; they might even be re-checking all the pages to account for any variation and, in that case, their quest would never end because the contents of a big proportion of these pages are being modified on a daily basis.

Note that I am also quite late on the domain ranking front (I have to build other set of bots to automatically track/correct the dishonest-backlinking issue) and will take care of all this ASAP.

SIDE CURIOSITY: today, I have realised that I cannot see who is following this profile anymore. The total number used to be a hyperlink, at least, when being logged in, but not anymore! On the other hand, who am I to complain, right? After all I am just here enjoying what Google (Plus) gracefully decides to spare with me! LOL.


As already commented, my hosting provider is moving all the domains to a better hardware setup what might provoke some downtime. In the case of my two sites, this will happen tomorrow. So, if you see any of them down, just come back later or on Monday.

After that transition, both sites are expected to be appreciably faster without it having anything to do with me or the upcoming QuickSearch (mostly expected to improve the performance of the resources associated with varocarbas-com's domain ranking).

BTW, I am being quite late on the QuickSearch development/testing/documentation fronts. My current plans involve just to meet the most minimalistic alternative my self-imposed deadline to have ready its first version by September 2017. In the best scenario, I expect to just have the executable (very preliminary and not too deeply tested) and some basic stuff (e.g., PHP QSAdapter which I will be using with the domain-ranking bots).


I have realised that Google (firstly, via and then confirmed in the actual is storing the information about me in a quite peculiar way. For example, they seem to mostly associate me and my main open codes with varocarbas-com (my secondary site) rather than with customsolvers-com (my main site) or with both. They are listing in the top positions an old profile of mine which I cannot modify (since over 8 years ago) including tremendously outdated information (+ a picture, what goes against my evident intention; to know more about why I removed my pics, visit the attitude 2.0 pages in customsolvers-com). They are also adding "Custom Solvers" to the title of all the customsolvers-com pages rather than "Custom Solvers 2.0" or nothing (the most logical alternative by bearing in mind that the actual pages don't include anything on these lines).

So, here I go once again... I (= Alvaro Carballo Garcia) am the only person performing each single action associated with varocarbas (since ever) or Custom Solvers 2.0 (since I created it a couple of years ago). There isn't a relevant difference among Custom Solvers 2.0/Alvaro Carballo Garcia/varocarbas because all of them refer to the same person: me. I am the sole author of all the code, text, ideas, expectations, insults, etc. associated with any of the aforementioned nicks. The sole purpose of all my online activity is to show my (programming/engineering) skills as a way to be appealing to my only income source: eminently-technically-concerned companies interested in hiring me as a programmer to develop whatever piece of software.
Wait while more posts are being loaded