Card image cap
Wasae Qureshi

Software Engineer (MTS)

I like to code

LinkedInGitHub

Cal Poly SLO

I pursued and graduated with a B.S in Software Engineering. But the journey to achieving this was quite a roller coaster.

During my first two years, I messed around a lot but was able to get by with the the help of my colleagues. Before entering my third year, my GPA had dropped significantly below 3.0. I had a bit of concern by this point since the courses were just going to get tougher. But I would easily get overwhelmed with the assignments and wouldn't know what to do since I didn't have the basic concepts down. This would lead to the eventual nagging and asking for help from my colleagues which in return would result in zero learning.

Luckily I had an internship (lol this only happened because of my dad) for that summer where I learned how to get comfortable with code (with the help of my mentor) and setting up an environment which enabled me be more successful (I'll share this below). I reviewed all the concepts that I was weak in before school started so that I wouldn't struggle on the fundamentals.

My third year started off strong. I began to develop a passion for Software Engineering and put in extra work and effort in my classes. The changes I implemented were definitely showing results. I had a pretty good understanding of the subjects and my grades were somewhat better. My confidence rose to the point where I began to challenge myself and take tougher Technical Electives. (And yes I was able to bring my GPA back up :))

Never give up. You can ask all my colleagues on how poor of a developer I was in my first two years. But all it takes is a change in mindset and love for the topic. I am not naturally smart and at a young age I did really poor in school. But with good work ethic and passion for the subject(s), I was able to succeed. And I think anyone, regardless of how intelligent they are, can use this hack/cheat to be successful.

Setting Myself For Success


  • I had been coding on a windows machine before but I always ran into some issues when trying to compile or run code before the assignment was due. This would further destroy my confidence. I did try a VM with linux (which was a lot better) but over time my version of linux would crash. My mentor recommended that I buy a Mac so that I didn't have to worry so much about my environment and focus more on developing.
  • I started to shift away from IDE's and used text editors (Sublime Text, but now I use VSCode) alongside with command line (terminal). It helped me familiarize myself with the syntax of the languages and would give me a better understanding of how things were connected since the IDE wasn't automatically doing everything for me.
  • Accept that you're different! Find your way of studying and put in those extra hours to learn and understand the material!

Industry

SFDO
SFDC
FireEye
EMC

Prior to Salesforce, I interned at FireEye and Syncplicity (Formerly apart of EMC).

I interviewed with Salesforce in 2015 for what I thought was a "Software Engineer" position. The role was called "Associate Integration Specialist" and being a new graduate, I wasn't sure how the titles/positions worked at companies. My interview had some coding to it and the hiring manager assured me that they used "Kanban". The pay was also really generous and the brand spoke for itself so I accepted.

What he meant is that the development team that they supported used "Kanban". I was upset and super confused when I joined. Supporting wasn't something I was familiar with. We built software projects in college. But there wasn't any ongoing support that we did. On my second day I asked my co-worker what language they used to see if maybe there was some sort of development they did. To my horror my co-worker responded "SQL". I was devastated and knew I had to get out asap.

I tried for months in the beginning to find a new opportunity within Salesforce but nothing worked out. My experience wasn't so great and the only position I could apply for now was a level two developer position (which I just couldn't get). I was moved under a new manager and he gave me an opportunity to lead a new operations team. I thought I might as well make the most of the situation and took the position.

This was actually really nice because I got to grow and learn about how the operations side of things work. I got to understand how the developers, program managers, stakeholders and operations team all come together to make a successful product. On the bright side I got an opportunity do some sort of coding (in automation/tooling). In addition I got the opportunity to understand the ins and outs of our products, lead a team, and get a promotion. Things were going great, but still I wanted to go back to the development side of things as that was my true passion.

At my last Dreamforce (an event held by Salesforce) that I supported, a friend of mine who use to be on my team saw me at the support desk I was helping at. I was pretty gloomy and sad because our team was being moved (I was going to lose my manager who I had became so acquainted with). Plus I was seeing no more growth on the team and was really bored. My friend pulled me aside and told me that she would get me over to her team. This is when I got hope that things would turn around and I would eventually land a development position that I had been loathing for the last two years.

Things worked out and now I am with Salesforce.org, exactly where I wanted to be and doing exactly what I wanted to do from the start. I am so grateful for my friend but also there was something else I was doing during my two years in support which was critical to my transition. During this time, I kept applying for positions and practiced my software development skills. I realized that there was a lot that I didn't know after being rejected consistently. Instead of blaming the company/team, I reflected and tried to improve where I was weak. By the time I got to my Salesforce.org interview, I was completely ready and had reviewed most items that I struggled on.

A couple of things to take away from my experience:

  • Make sure the position you apply for is what you want to be doing. The company and pay may seem great but don't let that blind you from seeing what the actual role will be.
  • Learn and make the most from experiences and opportunities. Despite being in this role, I tried to make the most of it during my stay with Salesforce.com.
  • With interviews, don't get put down by rejections but instead try to recognize where you are struggling so you do better in the next interview.

Let me know if your on this boat and want to talk :). I was on this wave for a long time and would love to help you!

Website Notes

06/05/2019 - Release 3.0:

What I accomplished

No aesthetic changes.

Since January I tried to deploy the website using AWS (EC2) and used Docker to setup and deploy the website. However, this was very costly (upwards to $60). So I went back to using Heroku.

I had recently heard from a friend about Netlify. This doesn't put the site in an idle state after 30 minutes and allowed users to access my website without any delay. The documentation Netlify provided made it fairly easy to configure and deploy the site.

01/07/2019 - Release 2.0:

What I accomplished

Two years passed since my initial website launch. Because I created most of the JS and CSS from scratch, it may have not been efficiently written, causing the site to load and run slowly. Eventually I brought the site down.

I decided to change things up and decided to build this site with AngularJS. I did a lot things differently which saved me a lot of time and allowed me to have more fun with the framework.

Bootstrap is what makes this site look aesthetically appealing (somewhat, give me a break haha). My previous site was very random and inconsistent with the design. It seemed really fragile before since most of the css/js was custom built. With bootstrap regardless of the size of the screen, the style remained relatively the same. It actually provided functionality and support for smaller devices automatically. I saved a lot of time since I didn't have to spend too much time figuring out the css/styling.

For the navigation, I used Scrolling Nav. It was straightforward to use and provided a nice animated navigation bar for the site.

AngularJS. I went through the tutorial and stopped before Services/Routing/HTTP. Up to that point, I had enough to build the site. I didn't get to use the full potential of Angular since most of the work I did was front end related.

Heroku was used again for deploying the site. There were some additional things that needed to be done such as using express.js to run the prod build and setting up the package.json file (some of the settings here made it optimal for production). To setup Google Domain with Heroku, check this guide out.

For the next release, I am probably going to try to move content out of the code and use the services feature of angular to retrieve the data. Then in code, dynamically populate the data to the frontend. I want to add another application to the site as well, like a blog application. I will probably use the routes feature of angular to host the blog on a separate page.

Also for those wondering about the costs, I only pay for the domain (which is $12 a year). Heroku offers free hosting services (though it does go inactive after 30 mins if not in use).

06/08/2017 - Release 1.0:

What I accomplished

This was actually version 2 of my website. In version 1, I was working more with the ReactJS concepts and working on rendering the content appropriately. In version 2 I focused more on the HTML and CSS to make the website look nicer. Here are some things that I accomplished:

  • ReactJS
  • Redux
  • Dynamic Content
  • Deploying application on Heroku
  • JS/CSS animations

Though it may not seem as much, but learning ReactJS was time consuming and Redux was difficult to grasp at first.

Learning ReactJS wasn't too bad. I was able to understand how components are created and rendered. I actually learned most of my ReactJS from the FB tutorial, TheNewBoston, and by getting hands on (like building this site).

I used redux on the menu bar selection (where you can select Projects, About Me, etc), the arrow (up and down arrow to go from the intro to the main section), and the content. The concept was fairly new to me. But as I became more familiar with Javascript, ES6, and ReactJS syntax, I was able to grasp it and implement it for my site.

The other thing to note is that my content for each page is generated dynamically. This means that I have all the content data saved as a object in a separate file. The component gets the data and iteratively generates the appropriate html tags with the data to make it look nice. Now in the future if I want to add more content, I can just add to the object. My code will add the appropriate tags and alignment to keep consistency.

Heroku was really easy to configure with my application. Building and deploying the application took some time but once all the dependencies were setup properly, my code got deployed and the site went live! Configuring the domain was a hassle at first as well since I haven't worked with network related concepts for a while. But this guide made it very easy to configure!

Release 3.0