The freeCodeCamp Podcast
Ep. 3 - How I Went From Selling Food in the Street to Working as a Developer at Companies Like Apple Part 3 - First Week on the Job
We conclude the tale of Alvaro Videla, who learned to code, got a job as a developer, and is now facing his first week on the job in Montevideo, Uruguay. He eventually went on to get jobs at Apple and other tech companies, but this is where he got his start.
Article by Alvaro Videla: https://fcc.im/2zJX3gN
Read by Quincy Larson: https://twitter.com/freecodecamp
Learn to code for free at: https://www.freecodecamp.org
Music: "Sounds of Wonder" by Vangough: https://fcc.im/2yQOq0q
Transcript:
The Technical Interview
The programmer who was interviewing me explained how things would go, that I was going to walk right into their offices, get my own desk, and program at one of their computers, with everybody else just doing their jobs, since “that’s how it’s going to be if you join us.” I thought that was pretty cool already. And just like he said, once I got into the office, everybody said hello and continued doing their jobs. Even though I wasn’t close to getting the job, I was already starting to feel like a part of something.
The test consisted of building a website to list books for an imaginary library. It seemed simple enough: connect to a database, fetch a list of books, and display them on a webpage, with the buttons for the usual actions for adding books, deleting them, and updating their information. “I can do that,” I thought.
While I was focusing on the test, behind me were programmers who were splitting their time between working on their tasks and playing with tennis balls in a very particular way: they were throwing them at each other, with a lot of force, up to the point where one shot hit the reset button of one of the computers and one guy lost what he was doing on his editor. “That’s a strange way to work, but it’s kinda cool,” I thought. I had expected a more formal working environment, but was pleasantly surprised at how relaxed the environment was.
Meanwhile, halfway through my implementation, I got stuck. I couldn’t get my code to print the list of books, and nothing was showing up on the screen. “How do I get out of this one?” I wondered. I tried to debug it by adding print statements here and there, but that didn’t work, and I had no idea what was going on. The clock was ticking away, and I was starting to get really desperate. “Come on,” I told myself. “I can’t miss this opportunity because of this problem. What do I do? Should I ask for help? What if this disqualifies me instantly?”
I thought about it some more. “I guess they help each other during work,” I reasoned. “OK, whatever, I’m going to ask for help.” I called the interviewer over and talked him through my problem, trying to explain everything I had tried so far, so he wouldn’t think I was cheating him into giving me an answer. Lucky for me, he also had no idea what was going on, so he told me it was fine and that I could leave it as it was.
Unfortunately, I had used too much time on this debugging session so I didn’t have enough time to complete the second part of the test. Later on, I would value this lesson, since I saw that asking for help earlier would have saved a lot of time later — time that in this particular case was critical for me. And in the future, it could be critical for the company I would end up working for.
I didn’t want to ask for extra time to try to solve the next problem, since I thought that wasn’t fair. I wanted to play by the rules, because I felt it was the right thing to do. As we’ll see later, I think that decision paid off.
In the meantime, I had the second problem in front of me and I had to do something about it. I skimmed through it and saw that it was about parsing URLs out of some log files, so I gathered some courage. I put my most convincing face and told the guy that while I understood my time was up, the solution was a matter of just “splitting these lines by these characters, and then going with the URL splitting by using this and that character.” The guy nodded, and told me that indeed that was the solution. Then he said that the interview was over, and he asked me if I had any questions about the company or if there was something I wanted to add.
Later on, I would value this lesson, since I saw that asking for help earlier would have saved a lot of time later “Well, now that you ask, yes,” I began. “I’ve been building this mapping application that I want to show you…” This was my opportunity to shine. I typed the website URL on the computer in front of us and started to pray to every god out there for it to load without problems. “Please, just this one time,” I thought. And as every element from the website finished loading, my anxiety decreased and my excitement increased. The creation I was most proud of was there, right in front of my eyes, and more importantly, in front of the eyes of the person who would decide if I had a job or not.
I went through every feature of the app, explaining with passion the goal of the app, which features it had, and which features it lacked but that I knew I had to implement to have a clear business case.
After a demo, he seemed impressed by Aleph Maps and gave me kudos for it, which made me happy I’d had the chance to run the demo for him and gone ahead with it. This showed me that all the demos I had run for various members of my family and for my friends had been worthwhile, since when it mattered, I was able to show that I could not only build things on my own, but also that I was good at explaining things.
By then it was around 6 p.m. — time for them to call it a day, and for me to get back home. As we were leaving the building together, I asked the man who conducted my tests if he was attending university, because perhaps he knew my friend who had told me about this job opportunity. “Oh yeah, I know your friend, why didn’t you mention him before?” he asked. I didn’t answer, but the fact was that I didn’t want to bring it up and use it to my advantage during the interview. But in any case, it didn’t hurt afterward. He showed me how to get public transport back to the bus terminal and then we parted ways.
Once on my own, I couldn’t believe I was done with the interview. Everything I had prepared for in the last two months had passed in what felt like the blink of an eye. All the stressing out about the little details — some that mattered, some that didn’t — was gone. Now it was me and Montevideo, and the streets crowded with people going back to their homes, and the cars, and the night falling over the city. I’d done it.
Once I had processed all of it, the worst part came. It was time to take the bus and head home to wait for an answer, and waiting is something I’m really bad at. But that’s what it became. Waiting while staring at the ceiling of our room, wondering with my wife how our lives would change if I got the job. Waiting while looking at my books without knowing if I should have kept reading them or not. Waiting while making sure my phone had enough battery power so there would be no missed phone calls. Waiting, until at some point the wait was over, my phone rang, and again it was that number from Montevideo.
“When can you start?” asked the voice on the other end. I was in. Yes, me. They wanted me: the guy who barely knew how to program, but let’s not worry about that now. “They want me,” I told myself, letting it sink in. “I’m in.” The whole gamble had paid off. Finally, after all those years of having jobs that paid nothing, working just because that’s what people do, even if having jobs meant forgetting about our dreams — finally, life was starting to turn around and smile on us, and from one day to the next, we could see a life that was worth living.
I asked for one week to move to Montevideo, so they told me February 26 would be my starting date. “You will be working in PHP and JavaScript. You’re going to earn 15,000 pesos (500 USD) a month.” FIFTEEN THOUSAND PESOS! That was three times what my wife was making! “We are going to be rich!” I thought. I was going to be able to buy as much Coca-Cola as I wanted! We could probably even manage to save $100 per month and buy a house someday. We couldn’t believe what was happening to us.
Finally, life was starting to turn around and smile on us, and from one day to the next, we could see a life that was worth living I spent that week prepping in JavaScript and trying to find a place to stay in Montevideo. A friend hooked me up with his apartment, since he was going to move out after Easter. The rent was good for us, so we decided that in about a month my wife would move to Montevideo and join us. The “apartment” was just one room, plus a kitchen and a small bathroom, and you could only fit two beds and a dining table in there. For a short while, it would be three of us living in that room, but honestly, that didn’t matter to us. I would be starting a new and exciting job, and we would have a place to live. Mission accomplished.
First Week at Work
My first day at work began with a nice twist: the person who conducted the interview was also my new manager. He brought me to office kitchen, we sat down at the table, and he started explaining what the company was doing, what the business model was, and so on. He then proceeded to lay down on a piece of paper depicting what the backend architecture was like, how things worked, what the server was doing, where the database was located, and many other details. I have to be honest: it was hard to follow. I recall hearing the term “production” a couple of times too. “This is our production setup,” “Here’s the production database,” and so on. I had no idea what this production thing he kept talking about was! Later, I learned that production referred to all the infrastructure, including code, that was facing clients and producing income for the company.
We went through a couple of questions and answers here and there, and then came to what was, for me, the most significant part of that day. He looked at me and told me, honest and straight to the point: “We know that you’re not a good programmer, that you are just starting at this, and that you have no experience, so before you’re even able to commit one line of code to our codebase, we need you to study this book,” he said as he handed me a copy of PHP Objects, Patterns, and Practice by Matt Zandstra. “You have to know it by next week.” As straightforward it was, this was some of the most solid, sincere, and helpful feedback I’ve ever received as a programmer. To this day, I thank him for being forthright with me. During my career, I’ve learned how difficult it is to come by a manager who will give you this kind of feedback — feedback that’s useful for understanding your own shortcomings, but at the same time puts you on the right track in order to overcome them.
Then he told me: “We know you are inexperienced, but during the interview you showed yourself as a person with a great attitude. That’s why we hired you.” I was speechless. I wondered what I’d done to deserve such an opportunity. Even more, I knew I had to prove I was worth it, so I set myself a goal of mastering the design patterns book as quickly as possible. First, I couldn’t disappoint my new boss who had taken a chance on me, and second, I finally had an opportunity in the big leagues, at the job I’d worked so hard for. It was time to shine.
“We know you are inexperienced, but during the interview you showed yourself as a person with a great attitude. That’s why we hired you.” Fired After One Week on the Job
During my first week, I studied that book like my life depended on it, because in a way, it did. I tried to learn as many of those design patterns as possible, practicing every example, and I tried to absorb as much knowledge as possible. By the end of the week, I wanted my manager to come to me and tell me, “Now you’re ready to start programming with us.” But as with every tale, this story needed a twist.
That Thursday, some people from the company came and called me to another room to deliver some news: the company was conducting layoffs, and I was among the people being let go. “Nothing personal,” they said. “Business isn’t going too well, and we need to downsize, so we’re letting go of people who just joined the company. We hope you understand.” That day, I was one of around 50 employees who lost their jobs.
I’m not sure I can accurately describe what I felt at that moment. “Why does life has to be like this?” I wondered, feeling somewhat discouraged and helpless. “What do I do now?” I asked to use the phone and called my wife. “Please don’t worry, but I have some bad news…” I began. I tried hard not to lose my composure, but meanwhile, the whole world was coming apart below my feet. All around me were employees coming in from other rooms and bidding farewell to all the people who were just fired, which only made me feel worse. Even so, I tried to convince myself that I shouldn’t despair. I had gotten this far, so it was simply a matter of applying to another job somewhere else.
While I was saying goodbye to my short-lived colleagues, one of them tipped me off about some companies I should apply for, so I took note. From an internet cafe, I sent out job applications to the companies my brand new former colleague gave me, and when I was done, I headed back home.
I tried to convince myself that I shouldn’t despair. I had gotten this far, so it was simply a matter of applying to another job somewhere else. “What a depressing day,” I thought. I entered the apartment and laid down on the bed, which for the record, was just a mattress on the floor. I remember the sky was gray, a perfect match for how I was feeling. I tried to nap, but my mind was lost, staring at the ceiling of that empty apartment and thinking about this new turn of events. “What if I hadn’t been fired?” “What did I do wrong?” I knew I had done nothing wrong. It was just bad luck, but it was hard to accept it.
Suddenly my phone rang.
“Is this Alvaro Videla? I’m calling from Intersys. We received your application and we want to have an interview with you. Is next Monday OK for you?”
“OF COURSE THAT’S FINE WITH ME,” I thought, but instead I said, “Yes, that sounds great, I’ll be there.” As I hung up and placed my phone on the floor, I was in shock, unable to believe what had just happened. Montevideo was a city full of surprises.
The next day I went down the street and asked the barber if he would give me a free haircut, since I had a job interview lined up but I had no money left. I still hadn’t received my salary from the week of work, so I needed a favor in exchange for being paid back the following week. Luckily, he was really happy to help me. I still remember his warm smile; he felt proud he was helping a neighbor get a job. While I was getting the haircut, he shared his story. I learned that in the early 2000s, he and his crew were the winners of some world hairdresser championship! I had no idea there were hairdresser championships. Don’t worry, I couldn’t believe him either back then. Either way, getting a haircut with a “world champion” was cool, but also meant that the service was expensive — $10 to be exact. It doesn’t seem like much, but keep in mind that in my hometown I could get a haircut for less than $2, and $10 could buy me at least five burgers and a soda. That said, it was quite an investment for my next job interview. I couldn’t complain though: a total stranger was doing me a favor when I needed it the most, and that raised my spirits.
The next week came and I had my interview, which went great. The company I was just fired from was Live Interactive, after all, which happened to be well known in Montevideo due to being one of the biggest internet companies in the country. This meant that programmers coming from there were well regarded. Needless to say, I got the job. The salary wasn’t that great, but our plan of moving to the capital was still intact. Not bad for my first 10 days in Montevideo.
Conclusion
All in all, my plan had worked, and all my preparation and study paid off. I got my first job interview as a programmer and then passed it. I was hired and fired in the space of one week, but I didn’t give up and went on to secure a second job interview, landing a new position in my second week in Montevideo.
But in order for this to happen, the first and most important step was being honest with myself. This allowed me to assess my skills to see what I was good at doing and where I had to improve.
Being self aware helped me when I embarked upon the task of creating a program from scratch, because I was realistic about what I could do, but at the same time it forced me to do something about the areas where I was lacking. Additionally, dividing the project into actionable tasks helped me make progress and follow my idea through to completion.
But it wasn’t just about skills; I also had to believe in myself, and that self confidence helped me whenever I faced a challenge that seemed like an insurmountable mountain.
Meanwhile, humility always kept me in check, reminding me that what I had just climbed was but a little peak from among the many I had yet to climb.
Finally, my family and friends offered help and support, and whenever I felt defeated, they kept me focused and reminded me why I was on my journey and what the destination was. In the end, because I persisted, I had become hirable, and now it was time to become an actual programmer.