Why I had to be rich to earn a high income

Nothing new under the sun; having money helps to earn money. Still, I believe it may be interesting to document my particular - why I could not have had the well-paying job I have today if I was not quite confortable - as a very concrete example. And while other paths do exists, and I don't claim it's necessary to already have money to get the kind of income I get as a software engineer, I just note how much being financially secure helped.

First and foremost, I must note that I always knew that I could go back live with my parents, and they would have no problem paying for my food if I could not afford it myself. Actually, I spent two months living with them while searching for a job. There is no question that this safety allowed me to take risks that would be extremely dangerous otherwise.

In December 2019, a US company was interested in hiring me and paid for my trip to the Bay Area, California. While I didn't get the job, I decided to stay for two months and try to find job there. After all, it's the ideal place for software developer. It is obvious to anyone knowing the Bay Area; this is a sinkhole for money. Everything is extremely expensive. I never had to spent that much money per week; even while I was subletting in a shared room in Berkeley. Worse, it was far from certain I'd ever get a job, as most companies would took the time to answer explained that they could not sponsor a work visa.

I finally got an interview at Google Sunnyvale, and then a job offer. I had already applied to Google France and never got any answers. While I never got any official explanation, I assume that the difference of size and number of open position may explain why a US recruiter would consider my application while French recruiters would concentrate on other resumes. Whatever is the reason, this experience clearly shows that if I could not have given an address in the USA, I would never have had the job in the first place.

Google offered to help me relocate to the USA. I had the choices between cash or a service that would take in charge of moving my furniture, helping find a school for my children, and English lessons for my family, one month of hotel and a real estate agency to find a place to live, etc... Given that I did not own any furniture, I had no family to move with me, and could probably book an hotel myself, I decided for the cash. However, the cash would only arrive with my first paycheck. Meaning, once again, that if I was not able to afford myself a month of hotel in the Bay Area, and to find a place to live, potentially buying furniture, I may not be able to start the job in the first place. Admittedly, this is all theoretical, with the pandemic, I never moved to the USA.


## Rejecting less interesting jobs

I was able to spend two months in the Bay Area because I was still searching for a job. In September 2019, I was offered a job with a gross pay of N€/year, open source, full remote... On the paper, it sounded great. After I accepted the offer, the contract mentioned Nk€/year net pay, full remote was an option after a few years in the company, and open source was only when we didn't have any client who had more important task to do. I was able to stand for myself, not sign the contract and spend more time looking for a job. This would have been impossible if I had no money available and needed to earn as soon as possible.

I also considered being a temporary high-school teacher. France needs a lot of mathematics teacher; I finally decided against it. Even if I love teaching, given what I've heard, the working condition are nightmarish. Also, the actual time required to do the job are so heavy - at least when you start - that I would not have time to look for a stable job.


## Becoming a developer

I've got a PhD in computer science. However, I never actually learned how to contribute and improve software during my 12 years in universities. I knew how to write line of code; I knew how to implements algorithm to solve very specific questions, and even how to create new algorithm. However, I never actually learned how to write great code, that other people could understand, that can evolve over time. I never learned how to participate in existing code base with dozens or hundreds of other participants and a decade or two of legacy code. All of this, I learned how to do it thanks to Anki and AnkiDroid community. While I can never know exactly how much those skills helped me secure any jobs, it is certains that it taught me how to write readable code, how to explain my code to people, and it gave me a lot of experience to answer behavioral questions. Being able to tell "I wrote software which were downloaded 100 000 times" or "I crowdfunded a software" is not enough to get a job, but still helps show that I'm a serious developer and that you should seriously consider hiring me.

Technically, I guess that I didn't have to be "rich" to contribute to free software. However, I certainly needed to have time. I could never have accumulated all of the experience I mention above if I didn't have a ton of free time; if I had not applied the maxim "free before cheap", i.e. accept to work for free to improve my skills instead of accepting less interesting job that would pay an acceptable but small salary.


## Studies

As I mentioned above, I've got a PhD in computer science. I don't know whether it helped to convince recruiters to schedule interviews with me, but it seems credible. However, getting a PhD also required to have money.

To be clear, I was paid during the four years of the PhD. And clearly, people can live with the salary of a PhD searcher, since people are actually living with less than that. Still, it would not be confortable, at least in Paris. I suspect that if I was not already quite confortable, if I didn't have a place to live-in rent-free, I would probably have tried to find a job with a better pay sooner. This is not even exceptional, most of the PhD students in Computer Science I know were financially comfortable. If earning money were a priority, most of us could get better paying job relatively easily.

Before the PhD I did a licence and a master in Computer Science. Once again, this is due to the fact that my parents accepted hosting me, up to the fourth year of university, and to pay my rent during the last year. That I never had the pressure to shorten the studies to earn money quickly.


## Computers

I was born in 1987. My parents already had a personal computer at home at this time. I do not remember exactly when I first touched a mouse; but I know for sure that I had access to my own personal computer at 13 years old, when my teacher of technology taught us HTML. My parents even paid for a "Summer Class and Coding camp" a few years later. I don't think I really benefited from it, because my English skills were quasi-inexistant, hence I never understood anything that the professor told. But clearly, I had access to computers and could mostly get familiar with coding.

And while my First Year university professors tried really hard to put us all at equality, by teaching us recursive programming in Dr Scheme - something that no teenager would have ever learned by themselves; the fact that my computer science grades were 99/100 let me believes that they were too optimistic about how useless it was that I had the opportunity to learn how to write lines of codes.

Kotlin migration of AnkiDroid

AnkiDroid successfully converted its entire project from Java to Kotlin. In this first AnkiDroid dev blog post, we’ll explain our goal, our methods, and what remains to do.

Our goals

The main goal of the migration is to improve developers' experience. Kotlin code is easier to read, write and review than Java. Anki AnkiDroid is 13 years old. If we are still here in 13 years, we hope that the time spent during this migration year will be entirely saved. We also hopefully will decrease the number of bugs and get more readable codes using Kotlin features, such as better nullability check, scope function, and high-order function over collections.

Here is the extra goals we discovered along the way:

  • git history should still allow us to track the origin of each code line.
  • Each commit should compile
  • New contributors should be able to help us easily
  • Kotlin migration should not introduce bug

Continue reading

Why Anki is not well-known

Quite some Anki fans wonder why Anki is not well-known. Using Anki changed the life of more people than I can count, and they wonder why there are not more people using it; or at least why it is not well-known. I'll try to answer to the best of my ability. I should not however that, it's a question on a negative, so I can only offers educated guesses. "Educated" because I've been active in Anki ecosystem since 2017, but "guess" because it's pretty hard to answer a question on a negative and this is hardly a question for a software developer.

Continue reading

Using Anki while driving

Don't review while driving

I don't believe I have to state it's a horrible idea, that nobody should review flash cards while driving. Actually, I had not even considered that anyone would do it. But someone did. Actually, according to some redditor who do it :

I can guarantee you at least 50% of the Anki-using people in my medical school class (myself included) have done Anki while driving, whether stuck in a traffic jam on the way home or at an obnoxiously long stoplight.

And, as I answered:

You know what. I've been contributing to Anki ecosystem in one way or another for the past 5 years. This post is the very first time someone was able to make me reconsider whether it was a good choice.

Continue reading

Syntax coloring of code in Anki

b1er84ly53c61.png, mar. 2022

Programmers, we love having our code colored, bold, and so on, to get a quick overview of the code structure. Highligh does a really great job, however up to now, I have not seen anybody successfully using it in Anki and AnkiDroid. This is now done. Please, user of iOS let us know whether it works too

Continue reading

What can Anki ecosystem do with more money

Anki ecosystem in general, and ankidroid in particular, evolves with a lot of constrains. There is few developpers, most of us are students or have a full-time job with it. Also, AnkiDroid do not officially exists, we are just a github repo and a play store account. This mean that AnkiDroid and anki ecosystem is currently limited by volunteer time and the little amount of money that we get through donation[1]. In this post, I'll consider what we may be able to do if we got a lot more money.

This are my personal thought, published without reviews by anybody else. In particular it does not endorse my employer, or any other maintainers or contributors of any mentioned product.

Note

[1] Plus sales for AnkiMobile on iOS, but that is only for AnkiTekts, and pay for AnkiWeb, the synchronization/hosting/deck sharing service.

Continue reading

I don't find myself queer

People I meet regularly think that I am non-binary and queer. I have to say, the more time passes, the more people assign me as woman - especially when wearing a mask for COVID. I have already written a post (in French) about why I am a man. I want to talk here about why I don't see myself in the word "queer".

A friend of mine offered me to co-create a queer open-mic. I said I didn't see myself in that word, to which she asked "Do you have impostor syndrome?". Here it made sense: "Do I really belong in this scene?". But I thought her more general question very interesting.

Continue reading

Plausible deniability

I find it funny how mentioning that something is done for plausible deniability diminishes it but not extinguish it. Here is an example of plausible deniability that should not exists for entirely logical beings, but will still exists if you will too. I suspect you may appreciate it. Hopefully for  […]

Continue reading

Google Summer of Code, point of view of a new admin/org

It's been a month since it has been announced that AnkiDroid was selected for Google Summer of Code (GSoC). Here is the story of a new admin, in a first-time organization. As it’s standard to state, views are my own, not my employer nor my organization. It explains how we went from unprepared to a huge success even before the end of the application phase!

Continue reading

What the "Rationalist Community" means to me

For years, I wanted to write about what the aspiring rationalist community meant to me. Seeing a lot of people criticizing it, sometime with argument I agree with, often with ones which does not represents the reality I've seen, I made a twitter thread about it. Threads are helpful because I find it more acceptable to write whatever comes through my mind randomly, which makes it easier to write than a blog post. I'll translate and post it here too.

Continue reading

The scheduler problem

The Scheduler problem is the biggest open problem in the Anki/Spaced repetition learning community I believe. As any good research problems, there are two questions to consider: what are the problems we want to solve, and how to solve them. I've no idea how to solve them, but at least, I hope I can  […]

Continue reading

Effective altruism and criticism toward activism: Answer to a paradox

For a little while now, I have been exploring the notion of Effective Altruism - EA for short. My readings on the topic so far have been very interesting[1], and I would like to add my own idea that I deem important and have yet to read elsewhere. If ever this has been written down somewhere, I can at least attest to it being all well too hidden. Personally, I believe that it should be discussed in introductions to the EA topic.

Note

[1] I have attempted some meeting with the French EA group, and have seen nothing but discussions yet. As it seems I have been more effective through direct actions against LGBTPhobia in high-school - for all my uncertainties about them - it had seemed pointless for me to join.

Continue reading

Collaborative decks in Anki

A lot of people want to create collaborative deck for Anki. In September 2018, I had already made quite a few add-ons, and some people contacted me thus to discuss collaborative decks. It has always been in the back of my head since. I'm going to try to write down every thoughts I had and why it seems quite complex.

Continue reading

How hard can it be to code a feature to let users resize images in a software.

In this post, I expect to show you why it may be difficult to create a seemingly simple program. In particular, to do it well. I'll show case with the last program I wrote, an add-on for Anki. More precisely, the most wanted add-on for anki, according to the vote of users of anki's subreddit: being able to resize image in the editor. This seems to be a simple add-on; after all, resizing by dragging corner has been done in every editing software for decades[1]. In this post, I intend to document all of the things which made me loose time when I created the add-on "Resize image" for anki. I also created a video showing how the add-on works.

Note

[1] Appart from LaTeX, but let's not consider it.

Continue reading

How I learn lyrics with anki

After years of using anki, I finally found a nice way to learn lyrics. I think I tried three different methods before finding one which works for me. More precisely, I found it a few months ago, and after testing it, I can finally way I found something which works.

To be more precise, I want to learn lyrics of song I love. Songs I've heard a lot of time, and whose meaning I know. The method I give here would not be efficient for a new song. In this post, I'll first explain what I want anki to do, and why I want it. I'll explain how to do it in a second part.

Continue reading

Page top