A Software Engineer’s Journey to 7-Figures

Today’s Miracle Morning statistics:
Miracle Morning, Day #34
Date: 5/4/2015
Time I slept: 10:30 PM
Time I woke up: 4:30 AM
Hours of sleep: 6

Back in November 2014, Black Friday to be exact, I made the decision to purchase a Kindle Paperwhite through Amazon.com. It was a painful $169 (plus a $59 6-month membership and $31.99 leather cover) but I was determined to view it as an investment in my future, rather than an expensive, well, expense.

One of the first books that I read was 6 Months to 6 Figures, written by my mentor Peter Voogd. Did you catch that? My mentor. There’s many things I can and want to say about how mentors benefit me and really how they could benefit anyone, but let’s save that for another post.

Peter wasn’t my mentor when I found and read the book; but after reading about what it took for him to go from dead broke to 6 figures, I was just so inspired to make the most out of my life! I subscribed to all of Peter’s content that he gave to his readers, and joined his Game Changers Academy in January 2015.

Ever since then, I haven’t looked back.

That’s where I begin this series of blog posts, in which I call A Software Engineer’s Journey to 7-Figures. I may title it something else if I come up with something better hahaha, but for now we’ll use that.

For any new readers of my blog, it would probably be best to first introduce who I am. My name is Jourdan Bul-lalayao and I currently work for 99Gamers as a software engineer. I’m a recent graduate of the University of San Francisco (class of 2014!!! Go Dons!). I majored in computer science and found my passion in software development after my junior year. The reason why I chose computer science was because I was so fascinated by the possibility of creating video games that millions of players around the globe could play (you know, just like how millions of players play Call of Duty, Final Fantasy, and the like). I struggled with my major early on and almost dropped it because of poor grades and no motivation to do the work.

But I stuck with the major, and eventually found my passion in software development after creating my first web application in the Summer of 2013. Although I didn’t have the best major GPA (hint: it wasn’t even a 3.0), I proudly and emotionally graduated with my friends and classmates, and knew that I would do great things with this degree.

I received my first job offer at AuditFile in June 2014, but very quickly became unfulfilled because of my salary. Software engineers in the San Francisco Bay Area typically get paid around the 6-figure mark, right? What am I doing working for a small start-up with a salary that WASN’T EVEN CLOSE to that?

And here’s the thing to note: no matter how hard I work, I will always get paid the same exact amount.

No matter how hard I work, I will always get paid the same exact amount.

And that’s where it hits me. My work isn’t in direct proportion to how many hours and how much effort I put into my job. I wasn’t fulfilled with my current salary, so how can I have that full satisfaction that I want? I can’t make more money with my current job, because like most jobs, I have a fixed salary.

If you haven’t guessed already, I want to earn a 7-figure income, just like many other people! But the only way I can do that is to leave my comfort zone and pursue a passive income on top of my day job as a software engineer. And as I pursue a passive income, I want to share my journey with you.

This blog series is written for fellow software engineers, entrepreneurs, college students, and others who want to pursue a passive income on the side and go on a journey with someone who wants to do the same thing. In this blog series you can expect stories of what I accomplish on a daily-to-weekly basis and follow what I do as a software engineer in order to pursue my first passive income opportunity. I’ll even share a lot of wisdom that I have learned from my mentors.

In the next post, I’ll define what I think a passive income is and explain what ideas I have for accomplishing that. And by the way, most of these ideas aren’t related to programming. If you’re a software engineer, I hope that sparks your interest! There are many ways to create income besides creating mobile and web apps!

Be sure to follow my blog to subscribe to updates, and feel free to follow me on Twitter @JourdanB21. If you tweet me that you found me through my blog, I’ll follow you as well! I would love nothing more than to personally connect with you and share our journeys with each other!

Until my next blog post, make it a fantastic rest of the day, and I can’t wait to share my journey with you!

What’s Your Career Plan?

I’m currently reading Gayle Laakmann’s “Cracking the Coding Interview” so I could perform better in technical interviews (and also increase my knowledge in a lot of Computer Science related topics), and one of the things that she suggests is to make a career plan. She makes an obvious (or maybe not obvious?) point that what we want to achieve in our professional lives should depend on the career plan we made for ourselves.

Here’s the snippet of what Laakmann said in her book:

Career Path: Make a plan for your career. What do you want to do 5, 10, and 15 years from now? What skills do you need to develop? Which company or position will help you get there?

Before starting at a company, devise a career plan. What would you like your career to look like? What will it take to get there?

However, if you want to run a company one day, or move up into management, you should stop and check your career plan. Is another year at your job going to help you get there? Or is it time to move? You, and only you, can decide.

That being said, here’s my current career plan. It’ll probably go through a few iterations but, I think it covers much of what I really want to do with my career.

Now
– Get an entry-level web development job, video game development job or a mobile application development job.
– Continue developing in Android, and learn Swift/Objective-C in order to develop for iOS.
– Improve in all the languages/technologies I am currently experienced in.
– Learn Ruby/Ruby on Rails, PostgreSQL, and Django.

In 5 years
– Continue improving in all the languages/technologies I’m currently experienced in.
– Continue gaining valuable experience at the job I have.
– Ship at least 1 Android application to Google Play.
– Ship at least 1 iOS application to the App Store.
– Ship at least 1 Wix application to the Wix App Store.
– Become a LinkedIn influencer.
– Generate a larger following on my blog in order to establish my web presence.

In 10 years
– Hold a Chief Technical Officer or Project Manager title at my full-time job.
– Begin serving as a mentor for fellow Computer Science majors in college.
– Ship at least 1 more Android application to Google Play.
– Ship at least 1 more iOS application to the App Store.
– Ship at least 1 more Wix applicaction to the Wix App Store.

In 15 years
– Explore through my Entrepreneurial ideas, and start a company.
– Ship an indie video game.
– Begin giving business/technical talks at Universities.

What’s your career plan? Feel free to post it on your own blog! Please reference my blog post (or whatever WordPressers do when referencing other people in their blog) if you do decide to do so!

“Swift” – Apple’s New Programming Language for iOS and OS X

Has anyone read up on what Apple unveiled at the World Wide Developer’s Conference earlier today?

The thing I was most excited about was the new “Swift” programming language. Hmmm, maybe it’s a good thing I haven’t learned Objective-C yet? I am definitely picking up on Swift right away and I’m gonna dive straight into Apple’s iBook and other documentation. I’m really excited because I want to learn how to develop iOS apps, and I could possibly get started with a start-up who is looking to jump into Swift right away. The only thing is… I’ll need a Mac to program on. Can’t really practice developing iOS apps if I don’t have one…

What do you guys think about Swift?

Article here:

http://techcrunch.com/events/wwdc-2014/

Why You’re Not Hearing Back From Start-ups on AngelList

I’ve been very active in my job search over the past few months and one of my main resources for jobs has been AngelList (www.angel.co). It’s an absolutely great resource to use when looking for start-up jobs, and I only have great things to say about it. While there’s a lot I could (and want to) say about AngelList, I’m going to focus on one topic for now: why you’re not hearing back from start-ups you expressed interest in. This will be the first in a series of articles I’d like to write about AngelList and my experience in using it. If you’d be interested in reading more later on, be sure to follow my website!

I’ve used AngelList enough to explain what I think makes a great application. In fact, I applied to 8 start-ups over the past 2 weeks using AngelList, and despite all the competition and not having a lot of work experience under my belt, I heard back from 3 of them so far. In my opinion, that’s pretty good. While I know what it’s like on the job seeker’s end to express interest in a start-up, I have seen for myself exactly what it looks like on the company’s end. Consequently, I learned how I could improve my chances at hearing back from a start-up. I compiled a list of possible reasons as to why a start-up didn’t contact you back after you expressed interest in them on AngelList. If you haven’t heard back from a start-up after 2 weeks of expressing interest, it could be for any of the following reasons:

1. They’re not hiring or using AngelList.
Plain and simple. And this could be for a few reasons: they already filled the positions they were hiring for, or they just don’t have enough funding at the moment to bring more workers aboard their ship.

2. You weren’t qualified for their job openings.
Not everyone is a perfect fit with a company, whether that be culturally or professionally. If you applied for a start-up who needs Ruby on Rails developers, but you’re lacking in Ruby on Rails (and have no work to show for it), you probably won’t be getting an e-mail or message back. The best you can do is learn and improve.

3. You didn’t explain why you’re interested in working for them.
There’s feature on AngelList where you can leave a note for the start-up, explaining when you’re interested in working for them. This feature is there for a reason. From the start-up’s point of view, the person who is in charge of their AngelList account receives an e-mail that shows a list of applicants who were interested in working for them. On that list, he/she can see who left a note for them. Most start-ups won’t waste their time (and for good reason) looking at your profile to see how you might fit in with their team. In other words, they might rely on your note to do some of their work for them. Do yourself a favor and make sure that you explain to the company why you’re interested in working for them. If you don’t explain why you’re interested in working for them, they may pass on you even if you have a fantastic resume and professional profile. And the main reason: they don’t have the time to look at your profile.

4. You didn’t follow up your interest with a resume and cover letter.
When you express interest in working for a start-up, think of that as your application. Will you ever, in your entire life, apply for a job without sending in your resume and cover letter? While a lot of start-ups will contact you even if you didn’t send in a resume/cover letter (heck, it happened to me), it’s not the ideal approach to take. You increase your chances of getting the start-up to contact you back if you send in a resume/cover letter. Many start-ups value their time and if you can spare them the time it takes to ask you for your resume/cover letter, you’re doing the start-up, as well as yourself, a ton of favors. If you don’t know where to send your resume and cover letter, check out their Careers/Jobs/Contact Us section on their website.

In summary: express interest in a start-up, explain why you’re interested, and send them your resume and cover letter.

Have you used AngelList in your job search? How many start-ups have you applied to, and how many have you heard back from! I’d love to hear any stories!

Advice For Inexperienced Programmers and Computer Scientists

There are so many companies out there looking for computer scientists. Over the last three months, I’ve spoken with a lot of recruiters and other companies for Software Engineering positions, Full Stack Web Developer positions, and the like. But, I haven’t accepted a job yet. However, the job opportunities have been right there in front of me; and because of that, I think I am a credible source for advice in this field. I’ve learned a lot since I began hunting for jobs, and my advice will come from experience, online research, career counseling, professors and professional connections.

Here’s where reality sets in: if you’re an inexperienced programmer and you don’t have any professional connections, it’ll be tough to find a job. Some quick advice for inexperienced programmers:

  1. Look for internships/opportunities at start-up companies (for experience).
  2. Use your available resources (books, internet, etc) to learn some new programming languages on your own.
  3. Think of fun side projects (maybe a personal website?), work on them, and finish them.
  4. Network. Network. Network!
  5. Get a LinkedIn and GitHub account, and use them.

I know you’ve probably heard much of this same advice before, but it’s true. I cannot stress how important these points are.

#1. Start-ups, in my opinion, are one of the best ways to get experience. This is because you typically work with a smaller team, and you are typically assigned a variable amount of tasks (as opposed to working on one specific task at a large company) throughout your tenure. Also, many start-ups are willing to take in all levels of programmers as interns, and they could potentially offer you a full-time job if they like you and your hard work. There are many resources out there for finding opportunities at start-ups. These include AngelList (www.angel.co), WhiteTruffle (www.whitetruffle.com), your school’s career services department, and other sources. My favorite in particular is AngelList. On AngelList, you’ll find information on a lot of start-ups such as their size, their mission, how much funding they have, and what job opportunities (and range of salary) they currently have (Note: this could be different from what job openings are on their website). There have been a few start-ups who reached out to me through AngelList, so not only would you be looking for start-ups, start-ups would be looking for you, too. If you’re currently hunting for job opportunities, I highly suggest that you check out AngelList now and create an account.

#2. This is very important (and also fun!) because many jobs out there require candidates to have a wide range of knowledge in programming languages. For example, when you apply for a full stack web developer position, you’ll probably need to know something along the lines of HTML5/CSS3, JavaScript, jQuery, AJAX, PHP, and MySQL. Or, maybe there’s another full stack web developer job that requires HTML5/CSS3, Python/Django, and PostgreSQL. If you want to market yourself to a lot of employers, I highly suggest picking up new languages. Not only will you be able to put these skills on your resume, but you’ll also show employers that you are capable and motivated to learn. For resources on learning new languages, Codecademy (www.codecademy.com) is a good resource for learning web technologies like HTML5/CSS3, JavaScript, jQuery, PHP, Ruby/Ruby on Rails, and Python. Also, Lynda (lynda.com) is a fantastic resource (assuming you have an account) which contains video courses on countless subjects. I taught myself PHP, JavaScript, jQuery and AJAX through lynda.com.

#3. Honestly, this is really fun if you love computer science. If there are any program ideas that you have right now, then write them down right now (or in Notepad), and get to work. Not only will you be practicing, you’ll also have programs to show to employers (that you can post on GitHub or on your own website!). Remember the cliche: “show, don’t tell”. Showing your work to employers will give you a leg up over someone who “tells” employers about their work. Be sure to write your code as professionally as possible. Some jobs out there will pass on you if they skim through code that isn’t up-to-par with their expectations, even if you wrote your code a few years ago. This has already happened to me. So: write your code professionally, and if necessary, refactor old code that you wrote.

#4. You’ve heard this a million times before, but it’s one of the best pieces of advice that any fellow computer scientist can give, and it’s one that can’t be emphasized enough. Networking is important because it connects you with other job opportunities that you otherwise might not have found on your own. Not only that, but your network can vouch for you and give you recommendations. One of your professional connections could potentially help you land your first (or next) job. Also, your connections will be able to pass on a whole lot of knowledge to you if you ask.

#5. As a computer scientist, having a LinkedIn and GitHub account is absolutely crucial. Not only will you be able to keep in touch with your professional connections on LinkedIn, but you’ll also be able to find job postings and get in touch with other people in your field. Showcase your professional portfolio on LinkedIn, and showcase your projects (professionally written!) on GitHub. I can’t count how many job inquiries I’ve received through LinkedIn. I just know that LinkedIn is the reason for much of my success in finding job opportunities so far.

 

Any questions? Inquiries? Comments? I’ll be happy to get in touch with you!

Wix Hackathon 2014 #WixHackathonSF

Blog entry to be updated later. For now, I’d just like to post this short entry here to chronicle my first real experience at a hackathon 😀 (the Facebook hackathon didn’t count because I did homework… sucks).

Prototype of ‘Twitter Says…’ app:
– Widget: http://cs.usfca.edu/~jpbullalayao/WixApps/TwitterSays/Widget.php
– Settings: http://cs.usfca.edu/~jpbullalayao/WixApps/TwitterSays/Settings.php

To be published on Wix Market App soon!

Java Tutorial #1 – How to Write to a Text File (Part 1)

Courtesy Note: If you found this tutorial helpful, please take a few moments to comment below!

The following notable Java built-in classes are used in this tutorial:

1. “BufferedWriter”
2. “FileWriter”


Java Tutorial #1 – How to Write to a Text File

This will be a very simple code example on writing content to a file. This example writes a simple integer to a text file. It creates a file named “numBlinks.txt”, and outputs “100” to the text file.

// Author: Jourdan Bul-lalayao
// Purpose: Small program that logs generated data into a text file

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class DataLog {

  private int numBlinks;

  public DataLog() {
    numBlinks = 0;
  }

  // Function: gen()
  // Purpose: Generate data to be logged
  public void gen() {
    numBlinks++;
  }

  // Function: log()
  // Purpose: Log data into a .txt file
  public void log() {

    // Make file for # of blinks
    File blinkLog = new File("numBlinks.txt");

    // Try/catch statement necessary for FileWriter
    try {
      BufferedWriter writer = new BufferedWriter(new FileWriter(blinkLog));

      // If we don't use String.valueOf, it will output string equivalent of numBlinks.
      writer.write(String.valueOf(numBlinks));

      // ALWAYS CLOSE THE WRITER, file will be empty if you don't close it
      writer.close();
    } catch (IOException e) {
      System.out.println("Unable to write to file!");
      e.printStackTrace();
    }
  }

  public static void main(String[] args) {

    DataLog log = new DataLog();

    // Generate data
    for (int i = 0; i < 100; i++) {
      log.gen();
    }

    // Log data into txt file
    log.log();
  }
}

Questions? Feedback? Please leave a comment below!

Inside the Computer Hardware

I just wrote my first few programs in the assembly language. It’s really interesting to see how computers execute instructions under-the-hood. I recommend to you computer programmers that you try out a few of your own programs in assembly. It can be a pain, but you’ll understand the basics of what computers are doing behind the scenes! You can download MARS here, which is a MIPS Assembly Language IDE: http://courses.missouristate.edu/KenVollmar/MARS/

Having said that, I probably won’t write assembly again after I graduate. But, who knows.

I’ll post my assembly programs in my “Code” section soon!

Hello world!

I’ll continue to update and contribute more to my blog by writing more tutorials and other goodies in the next few weeks, stay tuned!

Also. I want and need a job. I’m thinking about becoming a free lance web designer on the side, but that won’t be consistent money. I’ll also definitely need a full time job after graduating from USF in May. Any suggestions on small start-ups/companies that I can contact? Any of them looking for web developers or programmers? I’d love to get in touch with them!

HTML5 and CSS3 Tutorial #4: Transparency with “rgba” and “opacity”

Courtesy Note: If you found this tutorial useful, please take a few moments to comment below!

The following notable HTML5/CSS3 topics will be covered in this tutorial:

1. “rgba” CSS3 feature
2. “opacity” CSS3 property
3. “background-image” CSS3 property


Note: All files used to compile this tutorial were contained in the same directory

This will be a very simple tutorial on how to make a transparent background for any element/div you wish. It’s very simple to do, as you really only need to use the “rgba” or “opacity” properties in your CSS3 stylesheet (depending on what you’re looking to do).

When you want a transparent element/div, there’s one of two things you’re looking for.

1) You want ONLY the background of the element to be transparent, not the text (rgba).
2) You want EVERYTHING in the element to be transparent, INCLUDING the text (opacity).

I will now show screenshots of what these ideas look like along with the code associated for each screenshot.

1) Background of element is transparent, but not text (rgba):
transparent_background_rgba_demo

HTML5 Code:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="stylesheet.css" />
        <title>Transparent Background Demo</title>
    </head>
    <body>
        <div id="wrapper">
Here is some example text. As you can see, the background of this wrapper element is transparent
and you can still see the background image through the wrapper. 
            <br/>
            <br/>
            <br/>
            <br/>

Here is more example text just to make the wrapper look filled. 
            <br/>
            <br/>
            <br/>
            <br/>

Okay no more text now.

        </div>
    </body>
</html>

CSS3 Code:

#wrapper {
  width: 70%;
  padding: 50px;
  color: #000;
  margin-left: auto;
  margin-right: auto;
  margin-top: 25px;
  background: rgb(255, 255, 255); 
  background: rgba(255, 255, 255, 0.5);
  height: 550px; 
  font-size:25px; 
}

body {
  background-image: url("background_image.jpg");
}

 

 


The following will be a screenshot of how the transparency works when using the “opacity” CSS3 property instead of rgba. Here, not only is the background transparent, but the text is as well. Though, it might be hard to see in this screenshot, I assure that you that it works.

2) Background and text are transparent (opacity):
Transparent Background and Text

HTML5 Code:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="stylesheet.css" />
        <title>Transparent Background Demo</title>
    </head>
    <body>
        <div id="wrapper">
Here is some example text. As you can see, the background of this wrapper element is transparent
and you can still see the background image through the wrapper. 
            <br />
            <br />
            <br />
            <br />

Here is more example text just to make the wrapper look filled. 
            <br />
            <br />
            <br />
            <br />

Okay no more text now.

        </div>
    </body>
</html>

CSS3 Code:

#wrapper {
  width: 70%;
  padding: 50px;
  color: #000;
  margin-left: auto;
  margin-right: auto;
  margin-top: 25px;
  opacity: 0.5;
  background-color: #C8C8C8;
  height: 550px;
  font-size: 25px;
}

body {
  background-image: url("background_image.jpg");
}

Questions/feedback? Please leave a comment!

P.S:

You’re probably a motivated web developer who wants to freelance, blog, and/or be the best developer you can be. I feel many developers suffer from lack of clarity on their career/life, and poor time management and productivity practices. Without clarity and without the commitment to maximize your time, you don’t give yourself the ability to even work on your website projects and hone your coding skills with maximum efficiency.

To be the best coder, blogger, or freelancer you can be, it helps to master the non-technical aspects of entrepreneurship and personal growth. To begin building a solid foundation, I highly recommend that you consider getting my mentor’s free entrepreneurship book and training right now, where he shares his top 30+ tips that he followed in order to become a multi-million dollar entrepreneur in his 20s. I’ve read it, and as a blogger and web developer, it’s made a huge difference in my career outlook and my productivity! In addition, you may also find his productivity and time management master class useful to sign up for!

Remember that the book is free, so be sure to get it here now because I’m not sure if he’s planning to remove the book off the website! Obviously you have the choice, but I truly believe that you will learn some valuable lessons from it, like I have as a fellow blogger and developer. Please let me know if you have any questions, and I’d love to hear what you learn from the book!

teb-fb