In August of 2018, Richard decided to become a software engineer and is working towards this goal. He is enrolled in a .NET class where he has been learning C#, ASP.NET MVC, Entity Framework, SQL Server and Object-Oriented Programming concepts.
Previously, Richard spent 13 years as both an English and Chinese instructor, having learned Chinese while living in China. He has taught at both the high school and university level. He is also a life-long learner and student.
Richard believes in a life of service – that the great goal of life is to be useful and that achievement without fulfillment is empty – and a life of continuous growth. He hopes to join an organization where he can be a part of a team that contributes to the organization’s success and serves its clients and customers.
Episode Highlights and Show Notes:
Arsalan: Hi, Richard, how are you?
Richard: Just fine. How are you, Arsalan?
Arsalan: Pretty good. Alright, everybody. This is another episode of Mentoring Developers. I’m talking to Richard about his career choices. We’re doing a little bit of counseling here. He really wants to do well in his fledgling software development career. He’s really passionate, but he has so many questions as I’m sure that people who are listening and watching right now will have questions as well. I love to help and I’d love to help you. Richard reached out to me and I’m here to see what we can do to help him.
Arsalan: So, how are you feeling this week?
Richard: I’m alright. I have no complaints. As time goes by, things become clearer and clearer, which is always a nice feeling.
Arsalan: So, what were your impressions when we had the first session last time when you had to force yourself to think about this in a different way. A couple of weeks have passed since then. So, what happened in the meantime?
Richard: Over the last few weeks, the biggest result of our chat was that it directed my attention more to thinking about deciding when I wanted certain things to be done. When you spoke to me about what interests I had and what area of web development might be most suitable to me, it really helped focus my thoughts in a direction, which resulted in a written plan of attack, really. I know that we planned this meeting to lay that all out, but it feels like it’s all sort of falling into place just from being forced to really take a serious look at it.
Arsalan: So, it’s always a good idea to take a step back if you’re in the middle of something. If you’re in the middle of a forest, you can’t really see the big picture. You don’t know where, in the scheme of things, you are. It’s the same for everybody. It happens to me a lot. When I’m in the middle of something, I forget why I’m here and where I’m going.
Arsalan: It’s always important to know where you’re going. It’s like a lighthouse back in the day … I think they still have lighthouses … so, if you on a ship and don’t know which way to go, you have this lighthouse and if you follow that, you’re going to get there, but along the way, you’re going to have challenges. You’re going to have minor goals and milestones. It’s common sense, but only seems to be common sense to you once someone points it out and then you’re like “Oh yeah, of course. Of course, I should have goals … and mile markers … and milestones.”
Arsalan: It makes sense, but it’s hard to do that when you’re in the middle of it because you’re stressed out. You have life issues. Some people have health issues. Some people have technical problems. It happens to me all the time.
Arsalan: When I have a big plan, about how to, for instance, build my own software product. So, I think about all the technologies that I could use and I pick the technologies that are up-and-coming or the ones that I think are most appropriate or I think I should know. Most of the time, this is the first time I have encountered that. I have read about that, but I have not really done it.
Arsalan: So, I go all in and say “Let’s do it.” I’m thinking that maybe I’ll spend a couple of hours and get some features or something and then I install it and then I’m getting stuck because something doesn’t work. Something fundamental doesn’t work. It can’t do Hello World because maybe the server isn’t configured properly or maybe there’s a library that’s missing.
Arsalan: So, you go on these forums and you go on Google and try to figure out how to set it up and you spend hours and hours doing that only to forget why you’re doing it in the first place and that leads to frustration. So, a good friend will tell you to take a step back, get up from where you are if you’re sitting, take a nap, lie down, go for a walk. Do whatever you need to do to take a step back and get out of that situation. Then, visualize where you want to be.
Arsalan: You can close your eyes and meditate. That’s fine. I like to have a piece of paper or a whiteboard where I’m just drawing random things I’m thinking about. I start with bubbles and boxes and where I want to go. It clarifies things so much. So, then, you could compartmentalize what you need to do at that particular moment. Sometimes, maybe what you’re trying to do is not really that important.
Arsalan: In my case, if I want to build a product, if my goal is to build a product, technology is not that critical – the choice of technology. I could use framework A, framework B, framework C. Framework C is the up-and-coming – the hotshot. It’s what’s going to be the dazzling stuff. I can show it around and say “Look what I can do with this new technology that everybody is crazy about,” but I’m not good at it. So, now I have two challenges: I have to be good at it and I have to do a product.
Arsalan: So, I’ve created a very large problem for myself. Yet, if I took a step back and said “My goal is not with this exercise was not to learn this new technology. That was a fringe benefit, but it was not the goal. The goal was to build a product. So, if I give myself two hours, what is the best way to do it?” Maybe framework A might be the best technology because I’ve been working with it for several years and I know how to set it up and am not going to get bogged down in just the plumbing. I’m not going to get bogged down because I know it; I do it all the time. That’s something that a friend or a mentor will tell you.
Arsalan: I will tell you again. If you’re in this situation, listen to this podcast again and hear me say that. Take a step back. Find your goal. Once you have the goal, then remove all the fluff and then I think things will be easier. Alright. So, enough of all of that. So, what we need to do is to find a path for you. Before you go to the path, a lot of times what I see is people trying to figure out what they need to do today. They wonder what kind of college they should go to or they wonder what kind of books they should read and they go into that ‘what kind of framework or technology I should invest my time in.’ They go into that, but they don’t have a goal yet. So, don’t do that. Let’s make a goal.
Arsalan: I think we settled on web development for you, right? That’s what you’re passionate about. That’s what you want to do and it’s important to be passionate about programming. In programming, it’s important to be very passionate about your choice of technologies, or … Let’s take a step back. I shouldn’t use the word ‘technologies’ here. You’re passionate about your goal. If you want to be a doctor, if you want to be a general physician, then you need to know that you want to be a physician who works in your own private practice and so on. You need to know exactly which place you want to get to. Then, walk back and consider for that type of job you should go to this type of medical school and so on and then you go from there.
Arsalan: In your case, I should not have used the word ‘technology’. I get into that trap myself. I shouldn’t have said that. What you need to do is to figure out “Okay, I want to be a web developer who can build modern web apps that are responsive.” Responsive apps are simply apps that look differently based on the type of screen that you run them on because that has a certain application. If you’re on a tablet or a phone or if you’re on a desktop computer, it will just scale and resize itself and shift things around to make them look nice. That’s a certain ethos. I think that’s important to know that this is where you want to go.
Arsalan: If you wanted to do that and to build a modern app that is a single page app that is an idea … I mean, you don’t have to say that you’re only going to do single page apps, but I think you should focus when you’re making goals. Then, you can deviate a little from it here and there, but you should focus. I think that if you wanted to do that, then that is one approach.
Arsalan: That is almost a different type of goal than to say a developer, who builds web applications for large companies, for enterprises, for business needs – critical business needs. In a lot of cases, when you have a large business, or when you have an important business …
Arsalan: Maybe you have a factory. It’s not a large business, but it’s critical that what you do works and only the people who are working inside the factory will see it. That’s a different goal, in my opinion. Not only the product that you’re going to build for them will be different – fundamentally different than what you would build for something like a Facebook. It would be a completely different animal. Not only will it be different, but the process to make it will also be different. The process to change it will be different. Your daily activities, what you do on a day-to-day basis when you get into work, will be different. What you do on the weekends will be different. Everything will change based on your goal.
Arsalan: There are other types of applications. There are different extremes. There are very public web technologies, web services, or websites that are in the public domain. Everybody knows it. So, there’s that type of work. Then, there’s enterprise type of work or more closed type of work, which is essentially internal applications that are critical for business, but they’re only going to be used by that business. Then, there’s also something in the middle, which is a little of this and a little of that and a lot of times governments — state governments, county governments, federal governments — have that. They may have certain needs or certain websites or certain software that other people can interact with a little bit, but a little bit of it is internal. It’s important, but it goes at a different pace.
Arsalan: So, if you can imagine yourself working five years at a company that is making public-facing websites and that’s what you’re primarily doing, and then someone is working for the state of Nebraska in their IT department, or someone is working for Berkshire Hathaway or whatever … I know, I’m dropping names … I know, these are all Omaha companies. So, these are some of the places where maybe they are making some investments and creating and pulling reports for all the different kinds of stock activity and whatever else they do. Those are not public. Those are internal, but they’re critical. Your lifestyle in each of these positions will be different and that’s why I harp on about goals.
Arsalan: What you need to know as a family man because you have a family, you have to decide on what kind of outcome you want for yourself. Right? That’s a hard question because obviously, you don’t know since you haven’t experienced it, but I can tell you from my experience.
Arsalan: If you wanted a 9 a.m. to 5 p.m. job, that is steady and less about programming and more about the structure and environment and you just go there, do whatever needs to be done – you may or may not be coding all the time, you may be doing something you like or something you don’t because that’s not your focus – your focus is to get a good job that has good health benefits and good vacation time and that you’re not going to get easily fired from.
Arsalan: It’s something that you can count on, depend on. That’s a very attractive option for some people. That would be something within the government or maybe at a university. Those are the types of jobs that you could get. I’m not going to knock off that. That’s great. The problem with that is that they’re not going to pay so much, but for some people, that’s not an issue. So, that’s one.
Arsalan: The other is you could work on proprietary technologies or these internal applications. I’ve seen companies … for instance, there was a factory. It was a very small company – maybe a few dozen people. They have a computer that runs the factory floor. They need to build something that can keep track of what’s coming and what’s going and it’s critical because if it breaks, they’re going to lose money because a factory needs to keep going 24/7 and breakage in the production line costs them a lot of money. So, because it is a critical piece, they’re willing to pay a lot of money. So, it would be a lot more than a government or university job, but the technologies are going to be very, very different. You probably would not be very happy with the technologies, but that’s been my experience.
Arsalan: Every time I’ve been to a place and I’m new to a city and I’m thinking about what kinds of jobs I could get. I’ve had those interviews where I’d go in and I know this is what’s happening, but they need me to build a Windows client application – essentially, a native Windows application, which is something that I could do, but then I would not be doing web development because they don’t need web developers.
Arsalan: They don’t want it. They want a … system where an application that you install on a computer does not need to connect to the internet. There is no server. There are no client servers. It’s a self-contained unit. It doesn’t need to contact others outside of its little world. So, that’s very good. The pay is decent. The work hours … and again you have these two issues … it will be like a 9 a.m. to 5 p.m. job.
Arsalan: I shouldn’t really call it 9 to 5 because in factory situations or unlike other types of work environments, they may have unorthodox work hours. It’s possible that they work different, weird hours, but the hours will be fixed for sure unless they make you do overtime, which can happen anywhere. Normally, though, you would just be working fixed hours – whatever those hours are. Those types of jobs are very important. They’re critical, which means that if something goes wrong, and it could be the middle of the night, you are on the hook for that. That’s a pretty common thing, by the way.
Arsalan: If you’re listening … I’m thinking about the listeners who want to be developers … keep this in mind. If you’re working on an application, a piece of software that is in production, which means that people are actively using it, and it’s a very important piece of software where peoples’ lives depend on it or money is being lost while something is wrong, then you’re probably going to have to support it by being on-call a lot. Sometimes that means getting a call in the middle of the night and then getting on the computer and trying to fix it. In extreme cases, it could mean driving to work in the middle of the night to try to fix it. Sometimes, you can’t avoid it. So, you have to think about this.
Arsalan: The third type of job is a different kind of company that is maybe a startup company or maybe a different type of company that is doing work that they’re trying to sell to consumers or maybe to other businesses, but essentially to the general public. There are two problems here. For instance, you may get a job at Yahoo and say “Well, Yahoo is a public-facing website.” You’ll find that a vast majority of programming jobs there are not public-facing. Very few people actually work on the Yahoo or the Facebook website because it’s not just a website. It seems simpler to an outsider.
Arsalan: If I came from the Amazon jungle and I knew some programming and somebody showed me the Google homepage, I’d be like “Well, that’s easy. That’s just one text box and one button and you click a button and it does a search. I can do that in a weekend. It seems easy.” The reality is that Google website is a behemoth. It’s a monster. It probably takes hundreds of developers to build just that website because most of the work is behind the scenes.
Arsalan: We don’t see that. So that’s what you end up doing. I know people who work for these companies and they don’t ever touch the public-facing part of the system. They’re over there. They’re maybe one of the thousands of developers who are working on this one, little piece and maybe there’s no actual web page. Maybe they’re writing reports or building this very small feature in the overall billing system. It’s a very small feature. It’s important, but when you’re in the middle of it you might as well be working for a different company, right?
Arsalan: So, we have to understand where we want to go. What I’d like, Richard, for you to do is instead of saying “I’m only going to work on web technologies that are of this nature,” or “I’m going to work on native technologies that I don’t have to worry about state management and the web world like this,” or “I want to build this type of software.” That’s not a bad way of looking at it, but there’s a problem with it. First, that changes from one era to another. In ten years from now, the world may change so much that these choices will make no sense.
Arsalan: The second thing is that the companies themselves evolve and they pick up different technologies. What I want you to do is to look at the three different segments that I just highlighted for you and say where you see yourself working. Which of these sets of companies or industries or sub-industries do you feel excited about? You are the only one who can answer that.
Richard: So, none of the three that you mentioned repulsed me, which is good. I think I mentioned last time that I’ve been running a WordPress website development company. There are no 9 a.m. to 5 p.m [shifts] when you’re doing that. I haven’t done a 9 a.m. to 5 p.m. [shift] in a long time and I like that. What I do is pretty much always on my mind. Maybe that makes me a workaholic. I try my best to stay balanced.
Richard: I always have time for what’s really important in life, but I can’t help but think about what I do most of the time. So, I suppose that I most naturally fit into the third option that you mentioned, but going to work from 9 a.m. to 5 p.m. and coming home and continually working is probably something that I would do if I ended up in the 9 a.m. to 5 p.m. position.
Richard: The reason I started doing what I’m doing –- building websites with WordPress – was because I couldn’t get it out of my mind. I was fascinated with it and when I started seeing results with it, then it just became more exciting. As I started to look ‘under the hood’ a little bit at what was going on behind the scenes, that’s what has attracted my attention – the actual code behind the scenes. That’s why I decided to pursue it myself. So, I guess I probably resonate most with the third option that you mentioned.
Richard: Ideally, what I really want to be able to do is to use my skills and abilities to help solve problems. To me, that’s what it seems that software development is. It’s a lot of problem-solving. I like that and it’s fun. So, I feel that I could be adaptive to almost any situation as long as the goal is to produce or maintain or improve something of value – something that serves.
Arsalan: Well, I have good news for you. Any software job that you’ll ever get, you’ll get to solve problems. That’s a given. So, that’s good that you want to do that.
Arsalan: The other thing is that I forgot to mention one other avenue with one other goal. Although, I don’t think it’s applicable to you. That is to go independent and solving other peoples’ problems as your own company. You don’t need a job, but if you’re starting out, then I would recommend that you get a job. That way you learn best practices and you learn from other people and not have to figure everything out yourself.
Arsalan: One other thing about the other sets of sub-industries, like the one in the government and the universities and the other ones in clothes shops and enterprises, a lot of times, you are on your own – especially if you are working in a factory environment where you are the programmer. They have an IT guy who takes care of the network and makes sure that the computers are running and then they have a programmer and you are that programmer. That means that it can get lonely, first of all.
Arsalan: Also, the problem that I see, especially for people who are just starting out, is that you have no opportunity to learn from anybody. So, how would you know the best practices? How would you know what’s a good way of approaching a problem? The other thing is that everything is on you. So, if something goes wrong, you’re on the hook. So, it’s more stressful. So, that’s another thing.
Arsalan: What I would recommend for you is to look for a job at a company where the people are really smart and humble. You’ll find a lot of places where there are lots of smart people, but they’re pretty arrogant. It’s an ego thing for them. If you fit into a certain profile and are good buddies with them, then maybe it’s okay. Otherwise, you’ll get the cold shoulder.
Arsalan: I’ve seen some really weird behavior. At times, though, it’s great because there are some people who are really down to Earth. They don’t have any pretensions. They’re good. They’re hard-working, but they don’t play politics and that’s a very hard thing to judge as you’re interviewing people, but that’s something you can do. If it’s easy-going and you feel that these people are not uptight, then I think you’ll have a better chance because your goal right now is not to get your ‘perfect job.’
Arsalan: It’s almost impossible to get a perfect job regardless of how my much you’ve gone to school, how well you are at programming, or how good you are at doing interviews because you are starting out. When you’re starting out, your goal should not be to get your perfect job. Your goal should be to set yourself up. This is something that I tell everybody.
Arsalan: Your first goal for your first job should be to put you in a state where you can get your second job. The entire purpose of getting and keeping your first job is so that you can get your second job where that will hopefully lead you to the right place. That’s still not your ‘ideal’ job, but it’s taking you in the right direction.
Arsalan: What you need right now is a place that will allow you to just absorb and learn. They will allow you to understand the business and business practices, understand the ‘behind the scenes’ work of software, understand software development methodology. There’s this pretty heavy word that people throw around. Basically, it’s how you build software.
Arsalan: Unfortunately, we don’t have a standard. I’m going to go out on a limb, here, and say that most companies don’t follow anything. It’s called ‘seat of the pants.’ This is what we do. This is our development methodology. A lot of companies will claim that they do agile, which is a buzz word that people like to throw around, but they are absolutely not agile.
Arsalan: Agile development is a very fascinating area of development and you can spend a lot of time learning about agile. It’s a structured way of developing software where you are coding, you are building your software, but you have one eye out for the ‘big picture.’ You have one eye out for what’s really needed and what’s really important. So, you are talking to your customers all the time and you are thinking about where this thing that you’re working on fits in with this whole thing because that’s what it is. That’s what agile is.
Arsalan: It is not necessarily TDD – test-driven development, where you write the test, which is sort of like a prototype. Well, I shouldn’t say prototype. You write the test. That test describes what your features should do. As you’re building new features and building new methods and you’re adding more and more stuff. Before you do it, you think about what it’s supposed to do. That’s what it is. That’s what test-driven development is.
Arsalan: It’s not about the actual test. It’s not about getting code coverage. That’s another thing that people say and I keep throwing new terms out and I have to remind myself to explain them. So, code coverage is just a way for us to know that when you’re writing a test – an automated test – where you can run a piece of code and it can test the piece of code that you want to write … to prove that it works appropriately.
Arsalan: This thing that you’re building – this important piece of software, and this little thing on the side is testing it. A code coverage number will tell you that when you run your test what the percentage of your entire code base is that you’ve tested. They keep track of every line that is hit in one of those tests and if you’ve hit 70 out of 100, then you’ve hit 70% code coverage. Code coverage is a number that people like to push towards 100.
Arsalan: Some people have rules that you cannot submit code or you cannot check code into a repository until it has 80% coverage or whatever. That’s another thing. I don’t agree with that necessarily because it sometimes makes sense to write a lot of tests and sometimes it doesn’t. Never the less, that is what you’ll find. When you’re out there looking for work, this is what you’ll find. A lot of people believe that that’s agile. That’s good to learn and it’s good for you to be out there experimenting with things, but you’ll end up learning bad habits and there’s nothing that you can do about this.
Arsalan: So, the bottom line is that your goal is to learn and that’s all that you can do. If you can get a job and be there for one year and a job where you’re working with other senior people – people who are down to Earth and people who are doing things themselves and hopefully, you’ll be doing something worthwhile. If you’re an intern and all you’re doing is making Excel reports, it’s still better than nothing because you may get a chance to talk to people and at least look at the code. You try to get the best and most attractive work that you can find, but for your first job, it’s more the people that you find. You can learn so much, so quickly with people.
Arsalan: I’ve seen [new] developers who find themselves in the amazing company of other [senior] developers. They develop in leaps and bounds and are so far ahead of everybody else. Within two years, [these developers] are giving conference talks. I’ve seen that. Then, in some places, people work for 10 or 20 years and they don’t know much at all. As some people like to say, they have their first year of development and they just repeat it 10 times. That can happen. Don’t be that guy.
Arsalan: What I’d say is this. It seems to me that you need something that is a little bit challenging for you. A lot of the corporate jobs and a lot of the jobs in the Midwest – that’s my assessment, but I could be wrong about this – in the Midwest, where you are, most of the jobs are corporate jobs for the first and second category, not the third category. The third category jobs exist, but they tend to be very small. They are startup companies that are very small and they’re making something or pushing something and maybe presenting something to the customer.
Arsalan: For someone who really wants to be in this third industry, you may want to be flexible so that if it’s in Chicago, you could say “yes.” In your case, and I’m not saying that you have to do it, but in general, you should be able to say “yes” to a job that’s in a location that you weren’t thinking about. New York — “yes.” Remember, this is not your dream job. It’s not supposed to be your dream job. It’s not supposed to be this perfect place where you just go in and build a nest around it and stay there for 20 years before retiring. That’s not your goal. Your goal is to get a job that will help you get your second job.
Arsalan: So, if it’s in New York and you have no interest in living in New York, but it’s a good job and the work is good and the people are great, then, if you can, I’d say go and take the job. Do it for a year and work hard and build yourself a portfolio of things that you’ve done. Understand the business. Understand the business processes. Understand software development methodologies. Understand whatever it is that you can understand from that environment. Soak everything up. Then, with one year’s experience, believe it or not, is enough to get you a much better job and in a much better location.
Arsalan: In your case, you may be able to … let’s say you worked for a year in New York on … let’s pick a technology, say Angular, Angular with Java or Angular with Python backend or something, and maybe you worked on the financials for a hedge fund – something related to stocks. With that experience, and hopefully, it was an intense experience, you could probably find a job for somebody in Omaha who needs this type of expertise, but they couldn’t find it. They are not going to teach you because they don’t know how to teach you.
Arsalan: This is another problem with our industry. We don’t have mentorship programs. We don’t have a system where you can bring in a new person and teach them the ropes and help them grow and become part of the team. We don’t do that. Every other industry does that. With every other industry in the world this is what happens, but in our industry, we want somebody who already knows everything. In our industry, we don’t have the time … the skills … any interest in a sort of graduating you.
Arsalan: With one year of experience, you might be able to get into the company that you really wanted to get into because maybe it’s close to home and so on. So, that’s something that you should really be open to if you can. If you have a family and kids and they’re into school and such, then if you can’t do it, then you can’t do it. Then, that’s not for you.
Arsalan: Then, what we need to do is look at lifestyle. Are you able to put in a ridiculous number of hours doing the work and then going home and doing more work? That’s the question.
Richard: I already do.
Arsalan: You do that right now, but are you going to give that up for this new thing that you’re learning? If you want to be a WordPress developer, that’s a very lucrative career, but on its own, it probably doesn’t pay as much as some of the other things. Yet, WordPress work is expanding; it’s exploding. There’s so much work for WordPress developers. So, that’s a career on its own.
Arsalan: If you wanted to work at a company that is doing Python or they’re doing Big Data analysis. Or, it’s a financial services company and they do mortgages and they’re doing all kinds of financial calculations and you’re working with all kinds of quants, which I learned that that’s what they’re called by the people who do the math. Or, maybe you’re working in healthcare. You’re working at a company that does medical records. That could be exciting for you. That could be really rewarding for you, but you’d probably have to give up working on WordPress for that because you only have so much time.
Richard: I’m not sure if I’ve mentioned it, but I actually don’t spend any time working on my business anymore. About five or six months ago, I actually trained someone to do everything that I was doing. Now, I spend all of my time learning software development. So, that’s what I meant. I spend all of my time working on that right now.
Arsalan: Okay, so you will be able to devote [the time]. That’s perfect.
Arsalan: Okay. So, the next thing is that you want to work on the web. So, we have established that you want to work on the web. You want to work in a challenging position, but not necessarily 9 a.m. to 5 p.m. One of the benefits to doing that Once you’ve learned the skills and gone through the grind, once you’ve spent about two years — with your entrepreneurial background, then there’s nothing stopping you from getting your own clients and not having to work [at a traditional job]. You could totally do that, but you need to do the time [first]. It’s like a jail for people who like to be independent to then have to work at a company and have a boss and all the constraints that go with that, but it’s time. When you do the time, you come out of it with all the tools. So, that’s pretty exciting for someone like you who already knows how to run a business. That’s good.
Arsalan: Now, let me ask that other uncomfortable question. Are you in a position where you could relocate for a year for a job?
Arsalan: Okay. That’s great.
Richard: Yes. Since my wife is from the Philippines and we have family from four different countries and on two different continents, years ago I started trying to make us as mobile as possible. That’s one of the things that led to the business. I used to run the business from my laptop and it’s still completely mobile. So, yes, we’re very flexible. My wife and I enjoy moving and traveling. We spent quite a few years overseas. So, we’re happy to jump into a new environment.
Arsalan: Well, that’s great. My wife is exactly the opposite. She does not like to move and I’ve made her move over the years and I never hear the end of it. So, that’s wonderful. That gives you options. You’re in a small city. Yet, even if you’re in a big city, by deciding that you don’t want to move for the culture or the food or the family, you are limiting your career options. Initially, I think you should really give yourself the best chance of success.
Arsalan: It’s like a train. It’s slow to start. You need as much push as you can give it. Once it starts, it’s easy to keep it going. Just by being flexible, you’ve opened up a lot of options for yourself. I can tell you that there are a lot of companies that are looking for people … and maybe they just can’t find enough people in the local environment.
Arsalan: There are some remote working jobs as well. That’s something that has to be mentioned because they exist where you could work from home, but I do not recommend it for new developers. The whole point of it is that you need to be in an environment where you learn. You can’t really learn while you’re at home. You can, but you can’t learn the processes. You can’t learn businesses. You can’t learn it when you’re isolated. So, that’s wonderful.
Arsalan: Now, in terms of industries, do you care about any industry or is there something in particular that you hate? [I’m talking about something] that you never want to do. “I hate this industry.” Or, the type of business? Or, is there something that you really love and just wish you could do. The reason I say this is … I think that it’s important that I say why I asked this question … because if you are super-excited about something more than anything else, then you are going to put in the crazy effort that is needed. Also, if you absolutely hate something, then there’s no point in even going over there. Over to you.
Richard: Okay. Well, I probably haven’t given your question enough thought, but having spent over a decade in education, that’s one area that I resonate with a lot. [I enjoy] educating and helping the next generation of people in general. I suppose that anything that I absolutely would not want to do would be [a situation] where the business was deceitful or it wasn’t creating value or it was taking away rather than giving. That, I would not want to be a part of.
Richard: I would want to be part of something that is increasing and growing, improving life rather than taking away. So, that would be the big ‘no-no’ for me. Something like that.
Richard: It’s important [to me] to be of use, of service.
Arsalan: So, in other words, you don’t want to work for hedge funds. Just saying.
Richard: Probably not. (Laughing)
Arsalan: A lot of times there are businesses that are in the business of making money out of nothing. Sometimes that is not so fulfilling as something where someone is building software for K-12 and helping teachers achieve success. Here’s the problem [with those]. It’s something that you have to reconcile. A lot of these jobs and careers that are high causes feel good to be able to do it, but they don’t pay much. Sometimes they pay enough, but for sure they don’t pay as much as other things that may not be as pure or as satisfying. That’s totally fine.
Arsalan: Personally, I like for my life to be meaningful. I want to be able to contribute to society just like you do. I want my life to mean something. It’s very important for us. We’re not just living for money. Yet, at the same time, money is important because it lets us do things that we want to do. It lets us be charitable in other ways. So, that’s a very important decision that you now have to make. What matters more to you? It’s not something that you have to answer right now, but it is something that you have to think about.
Arsalan: I think for your first job, it doesn’t matter what type of job or what type of industry you’re in if I’m being honest. The first job is not your goal, not your end goal. The first job is just a way for you to get a second job. If that’s true, then the first job, if it’s in something that you don’t necessarily want to do, that’s still okay. Ideally, it would be. If you want to make games, work for electronic arts and build games, or you just like that 3-D gaming stuff and like spending all that time doing it, then maybe you should start there. If you are working at a financial firm, then you would not be learning the business process that you need to learn.
Arsalan: The problem is that our software industry is so fragmented that building a game is a lot different than creating regulatory reports for the government. It’s a different way of doing things. So, for those extreme cases, I would say to try to get the job as close to your dream job as possible. Yet, if you are more of a generalist, then I would say that you need to work at companies where you can learn and grow. So, the question for you is: What are those companies? So, what we need to do now is to make a profile for those companies.
Richard: So, there’s one thing that’s very important to me. I don’t want to work at a place where they expect you to know everything. I want to work at a place where they expect you to be willing to learn. It would be nice to work somewhere that it’s understood that there is so much to learn in our field and you won’t be a master of everything, but there will be a culture where people will help each other out and understand that sometimes we have to learn some things.
Richard: If you’re willing to learn, then with the right atmosphere and people are going to help you rather than pretend that you know everything while you’re trying to learn everything on the side. It’s hard to succeed in an atmosphere where you have to be like that. So, one thing that’s very important to me is this understanding or recognition that we’re all learning and even the most experienced developer has something to learn.
Arsalan: Yeah, we’re all constantly learning, but we never like to admit that. Now, that’s a dirty secret here.
Arsalan: We all pretend. I like to not pretend. I like to be brutally honest. If I don’t know something, then I like to say that “I have no idea. I can figure it out. Let’s do that.” If I don’t know, then I don’t know. There’s no shame in not knowing. What I’ve noticed is that it doesn’t work. In corporate America, you pretend. Everybody pretends. If you don’t pretend, then you end up being looked down upon. People the thing “Oh, he’s not as important.”
Arsalan: That’s another thing that I’ve noticed. There are a lot of politics in software companies. You wouldn’t expect that because of generally younger people … why would there be politics in a software company or a department within a company that is focused on software?
Arsalan: It feels wrong because not many developers are going to become CTOs or CFOs. So, stepping on top of each other makes very little sense, but it happens as human behavior. So, you’ll end up in situations where people like to project that they know a lot and they’re pretty good. You will find places where this will not be the case and I hope you find a job in those places. Maybe for your second or third job you should keep a lookout for those kinds of places, but for your first job that may be a little unrealistic. It’s good to know, though, that that’s where you stand.
Arsalan: If a company is advertising for a junior developer position, then they really should expect that you don’t know. If you look at the job listing, it’ll still show a thousand things that you must know … but by the way, it’s a junior developer position. It makes no sense. Most of the time, it’s really more like a wish list. They don’t really expect anybody to have that. Maybe it’s a way to filter out candidates. It’s a way to scare people off.
Arsalan: It’d be like if I had a gun and I had a mob coming to my house and so I said “Hey, I’ve got a gun” because I’m hoping that most of them will run away. The fact that I wouldn’t have any intention of using that gun would be the wrong example to give. (laughs). That’s probably a pretty bad example.
Richard: Makes sense.
Arsalan: The point is that it was [used as] a threat [in the example]. It [the detailed junior developer job description] is a threat that [they] will not allow you in the gate unless you have these 20 things. They’re hoping that most people will say “Oh, man. I can’t do it.” That way, they don’t have to deal with all those people. Then, they only have five to 10 resumes per job to go through.
Arsalan: So, if you are able to contact the hiring manager, not the recruiter because when you see a job opening, a lot of time … and this is really bad, these are third-party companies, other companies that are trying to be the recruiter or trying to get you into a company and that’s how they make a lot of their money. That’s their business model, but they’re not the actual hiring manager. They’re not the people who need you. So, they don’t really know anything about the company. They know very little. They don’t know anything about you. They don’t care about any of that. All they care about is to get you to agree to work with them and only with them so that now they can sell you to the company. You become the product.
Arsalan: So, they want you to sign a contract where you will never be able to or not be able to go directly to the company. So, don’t fall for that if you can help it. Initially, try to stay away from … we call them body shops. Don’t go to body shops. Try going to the company directly. Find out where the job is.
Arsalan: A lot of times you will see a job listing, but it will not mention the company. So, you think that the company that is posting the job is the one that has the job, but no. They’re just trying to place you somewhere. The actual company where the job exists, you will have no idea where it is. So, maybe sometime you can do some Google searches. Try to be a detective and figure out where the job is, exactly. Sometimes you’ll find jobs posted with the actual hiring companies.
Arsalan: You really should try your best to find out where the job is. Then, try to figure out which department it’s in and who the manager is because the most likely reason they are advertising for this job right now is that there’s a really big problem that they need to solve.
Arsalan: It’s not because they need five more people in the department. It’s because there is a problem and they’re under stress and they really want to fix it. They want someone to come in right away. So, what do they do? They go and talk to their HR department and place an ad. Or, they talk to a special vendor – these companies that have a special agreement with them, to give them candidates because they don’t have the time to go and look for candidates themselves. So, they blast these job sites with all of these ads.
Arsalan: So, there could be five different companies all advertising for the same job. None of them have any actual idea of what the job is really about. They’re just copying and pasting. So, what you need to do is find out who the company is and who the hiring manager is. Go to LinkedIn and do a search. Find out what they’re about and what other things they’re passionate about. Where do they hang out? Maybe you know them already or maybe you know somebody who knows them.
Arsalan: So, when you get all this information and you figure out what this company is … maybe it’s even in your neighborhood and you just knock on the door one day. I’ve done that. You just ring the bell and say “I just wanted to see what you guys are doing.”
Arsalan: Maybe they’re friendly enough to let you in to meet them. Then, if they really have a need and ask what you do, then you can say “I’m a developer and I’ve been doing this. I just wanted to see if you guys had a need for someone with my skills to help you guys.” Then, if they’re free and have a need, they may say “Sure. Why don’t you sit in the meeting room and I’ll see if I can find somebody?” Then, maybe, possibly, you can get the process started. If not, you could email them or call them.
Arsalan: If all else fails and you have to use the recruiting company or placement company, then sure. At least you’ll have an idea of what they want. When you know what they want … and I don’t want you to lie. A lot of people will say to just make your resume reflect everything that the job wants. If you know it or don’t, just put it in. The reason to get your first job is to get your second job. Your first job is not to launch your career. Your first job is to get your second job. The reason to have a resume is not to get a job, but to get the interview. Once you’re doing the interview, then the resume kind of doesn’t even matter. So, while all that is true, I would not want you to lie in your resume. It’s a very common practice. People lie all the time.
Arsalan: You don’t need to lie. You just need to give the reader who’s looking at your resume the information that they need without the fluff. You may have done a lot of things in life and you may have a lot of experience in WordPress, but if this job has nothing to do with WordPress, then that’s a detail that you should reduce or omit because it’s a distraction. You’re not lying by omitting that. If they ask you, then you can tell them “Yes, this is what I do as well.”
Richard: Right, because then you’d have to pretend that you do if you get the job.
Arsalan: I’m not saying that if you lied about it and you put all the technologies in your resume that you’d never get the job. People get jobs like this all the time. They make up stories. You could make up a story and say “Yes, I did this job. I worked on React and worked on this thing.” Unless they make you write code in front of them, they don’t know.
Arsalan: It’s just a matter of ethics. It’s being a good person. I believe that it’s important that you’re true to yourself. You should not … because lying is like admitting that there is something wrong with you, that you’re not good enough. That’s really not a good place to be. You are good enough. You have what it takes to succeed and to also help this company. This company needs you as a candidate. You don’t need them. They need you. You need to have the self-belief that you’re good enough. You can’t have that if you’re lying because, obviously, that means that you don’t think that you’re good enough. So, I want you to be truthful.
Arsalan: You could make a case for yourself, not because you could sweet talk your way into a job, but because you believe that you have what it takes. You believe in yourself first. That’s one approach. That’s one of the two approaches that I’d recommend.
Arsalan: Another even better approach is for you to say [to yourself] “Okay, this company works with React. I want to get this job, but I’m not ready yet. Let me set a timeline for six months later. I’m going to apply for this job and I’m going to get it. During those six months, I’m going to do two React projects to showcase what I can do. Not only that but maybe these are projects that I can do at work at my current job. Firstly, I’m going to make these two React projects on my to-do list, not random Hello World projects, but something useful. I’m going to make it. I’m going to put the software code on GitHub, which is a shared repository. It’s a public place where people can see what you’re doing. They can not only see what you’ve produced, but they can also see the progression, every week, every day – what you throw there. So, they can track you and see that you’re not lying. Then, you deploy them to a public website, maybe your own domain or a different website.
Arsalan: For instance, I have a virtual server that I rent and I put all of my websites there. I don’t need to pay a hefty subscription for every website that I want to run, for instance. I could run twenty of them because the traffic is not so much. If the traffic becomes a problem because it’s a virtual environment, then I can turn it into a virtual machine and, hopefully, there’ll still be enough. So, you could go and rent one of those from one of the various companies that do that and then you can start making websites and start putting them online. Then, your [goal] is to get that job in six months.
Arsalan: So, for the next six months, your task is to do these projects. They go onto your resume. You don’t have to say that you did them for a client. You can say that they are personal projects. Make a heading called ‘personal projects’ and put it in there. Give as much detail as possible on the important things – the things that you learned, the things that you accomplished. Maybe, if you have telemetry like how many users use it and so on … anything that you can do to show that you not only know React, but you also know a little about how it’s being used and you know about software development. Then, you already know the company that you want to work at. Do a little sleuthing to figure out where they hang out. Maybe there’s a user group where they’re always at.
Arsalan: Maybe there’s a React user group in your area. Just go there and see if you can meet them and then meet as many other people as you want. Then, you don’t have to start selling yourself. You can just be friends with them. If they know you already – if they know your name and a little about you … and as you’re working on React, maybe you have an idea of giving a talk. It could be a ‘lightning talk,’ but if you don’t feel comfortable doing that, then maybe you could write a blog post and share it within the group. You can do that. Even if you don’t share it – even if you just have it on your GitHub, on your blog, in your YouTube videos or whatever you’re doing.
Arsalan: Then, when the time comes because the six months pass and you need to apply, you won’t have to go to a ‘third party body shopper’ to apply. You can just go directly to the company and say “You know, I’ve noticed that you’re working on React. I’ve been working with React for six months and I really enjoy it. I think I could be very good at your company and if you want to take a look at my portfolio and have a chat with me, I’d love it. I’ll buy you dinner. Or, I’ll buy coffee.” If they’re friendly enough, they might say “Yeah, let’s talk about it.” You could buy them lunch or you could buy them coffee. Or they might say “No, let’s talk to the HR” and whatever. In this case, the should most likely talk to you and that’s when you can go and present yourself.
Arsalan: Be honest. Be straightforward. I like to be honest for ethical reasons, but there are also practical reasons. When you’re honest, you believe in yourself. If you believe in yourself, Richard, they are going to believe in you. That’s how you get a good job. You’re not filling up your resume with all sorts of technologies. You’re not out blasting 100 people. That’s not how you get a good job in my opinion. What do you think?
Richard: I agree with you. I believe that many job opportunities are not found through these job placement websites. I mean, sure, some are, but I’ve found very few jobs in my life that way. It’s about being real, being yourself, and getting to know people. If you’re a human face to someone, it goes a lot farther than details on a page.
Arsalan: Yeah. Okay, I didn’t want to stop in the middle of this consultation, but we have gone way over. Yet, I think that it is important that we went through some of these topics. For you and for anyone who is listening, and for myself, to just be able to say it. So, I believe we have covered a lot of ground. We know what type of jobs you want. We have a strategy on how to get a job. Now, the original question was “What type of technologies should I learn and what should I learn?” I turned it around into this big quest for a goal and milestones. It seems wishy-washy, but I think we’re getting there. So, if you’re up for it, we can continue this next time and then we can go a little deeper on your choices of technologies and so on. What do you think?
Richard: Sounds great.
Arsalan: Sounds awesome.
Richard: I’m up for it.
Arsalan: Alright, and I know that you’ve been feeling sick for the last couple of days and I’m hoping that you’ll feel better next time with a lot of positive energy. Talking to you and giving you advice and giving you a consultation is giving me energy.
Richard: Good! That’s nice to hear. It was just a small cold. I’ll be just fine, but thank you, though.
Arsalan: Awesome. Okay, so we’re going to schedule you for another one of these consultation counseling sessions. If you’re someone who is listening right now and is thinking “That’s pretty good. I wish I could get a counseling session with Arsalan. If you want, then just let me know. You can email me at firstname.lastname@example.org and I’ll see what I can do. If I have time, we’ll go online and we’ll record a session. If not, then maybe I’ll just answer your emails. I’d love to hear your comments and if this show is helping you, how it’s helping you, or if you want to see something different. That’s great. There’s also a mailing list on the website at scientdev.wpengine.com where you can sign up and get the ‘Five Steps to Success’ email course, which Richard has been going through.
Arsalan: How’s your experience reading those emails?
Richard: It was great. I think they came about once a week. It’s nice because my impression is that the goal of your emails is to help us look at the big picture – to see things from the big picture in the grand scheme of things. It’s very motivating and encouraging. I highly recommend them.
Arsalan: Yeah, that’s good to hear. Basically, what I do is I take a step back and put myself in your position. When I was starting out, I was really struggling. Nobody was helping me and there was nobody who I could ask for help. I always struggled in spite of the fact that I always wanted to do programming. Since I was a kid, that’s all I wanted to do. I wanted to be a programmer and work with computers. I wanted to build games. That never happened, but close enough.
Richard: Still time.
Arsalan: Yeah. In spite of spending so much time … in spite of going to college to learn this and being dedicated to this, I still struggled. So, I was thinking about all those who didn’t have that background. So, I don’t want you to struggle and that’s what I’m doing. I feel like there’s not enough empathy in our industry. Hopefully, by listening to or watching this podcast and by going through the emails and emailing me for feedback, I’m hoping it makes this world a little better.
Richard: I think so.
Arsalan: Alright. Okay, we’re going to stop now and we’ll see you the next [counseling consultation] episode. I’ll see you, Richard, very soon.
Richard: Sounds good. Thanks, Arsalan.
Thanks for Listening!
If you found this episode useful, please go ahead and share it with your friends and family. You can also listen directly and give your feedback on the website.