At Artisans Collaborative, we call our software engineers and full-stack developers "creatives" because we understand the skill, artistry, and engineering creativity that it takes to solve complex challenges across the entire technical stack. Whether you are starting out as an entry-level full-stack developer or looking to move to another company as a senior software engineer, you can use the following tips to help you determine the next steps in your career. These are things that we have learned as we worked our way to our current positions. If we were to meet and talk to you about your career, this would be our advice.
Questions to Ask Yourself
Before making a career change, it is important to understand the type of office and environment you are looking for. Ask yourself these simple questions to help you locate your ideal working environment:
Do you want to stay in your current city or are you willing to relocate?
It may be that the ideal opportunity you want is not available in your current city, but it is available in another. If you are willing to move to another city, then the odds of landing your dream job may increase. But if you already have family or strong ties to your local community, then you may need to decide to stay where you are and take a less than ideal position. Remember that businesses often relocate valuable creatives so if a move is in your future, ask for moving expenses to be paid. Also remember that you can likely deduct your out-of-pocket moving expenses as a tax deduction in the year you move.
Do you want to work in an office or are you willing to work remotely?
Depending on your personality type, you may thrive in an environment where you can collaborate with colleagues or, alternatively, in an environment where you work on your own. If you work well from home, it can open up opportunities for creatives needing a flexible working schedule. That said, be honest with yourself and assess your own ability to manage time and space while remaining focused in a relaxed environment. If you need structure, work from the company offices.
Working remotely may mean that you can work for a company without having to relocate to their city. But some companies do not have experience with telecommuting and are often not good at managing a remote team. If working from home is important to you, see if you can strike a deal that will enable you to work from a home office while commuting to the office one or two days a weeks.
Consider finding a co-working space if your home office is not big enough or if home life is too distracting. If you do plan to move for a job, be sure to purchase a home that has a study so you have a quiet place to conduct your day-to-day tasks.
What are your salary requirements?
Evaluate where you are in your career. Are you just starting out? Are you transitioning from one career to another? As an entry-level programmer, you need to be willing to take a starting salary. Get your foot in the door of a company you want to work for. Present yourself as willing to learn and a low-risk investment. Be hungry and willing to work for experience initially. As you gain experience and show the company a healthy return on their investment in your career, you can begin negotiating for better projects and higher pay.
Also remember that if you are switching career paths, as often people do after several years in an industry, consider your old career skills and present those as useful experience in your new career. Use all your collected knowledge in your new job.
Questions to Ask About Your Potential Employer
Once you have determined where you want to work and have set realistic expectations for your salary, you then need to determine the qualities you are looking for in an employer. You may not initially think to ask yourself these questions, but each employee brings a level of expectation about their employer with them to the job. Ask yourself these things to establish your expectations before you begin your search:
Will your employer be a mentor or will you need to find one elsewhere?
A key element to forging a successful career is establishing a group of mentors. Those starting out in their careers often believe that asking for help is a sign of weakness. The opposite is actually true. By asking for help and not pretending you have all the answers, you show your employer that you are willing to learn and problem-solve. If you work for a company where your boss is not an ideal mentor, then seek out others who can assist you.
Remember that an employer owes you nothing when you start out, but any company worth working for will respect your need to continue to be challenged and mentored by your peers and more seasoned creatives. They should have a clear strategy in place to take you from where you are in your experience level to where they need you to be. Ask about such learning opportunities up front, but do not be surprised if their initial promises fall short. You still have to progress in your career whether or not your employer provides that opportunity. Become your own teacher and continue to learn on your own time.
What are their expectations for your skill set?
Be realistic in the evaluation of your skills. In the interview, ask questions about the specific skills you will be expected to perform. Will you be handling server side programming exclusively? Will you lead a team to develop an entire application? Will you create a new UI/UX design for the company's website? If they are expecting you to be a junior software engineer, then do not sell yourself as a senior developer. If they are hiring a full-stack developer then you really should know everything there is to know about the stack.
Promising a potential employer that you are a mid-level to senior level engineer and not being able to do the work will more than likely land you back on the job hunt path. Just be honest and say, I am not familiar with that but I would love to learn it. Once you understand what is expected of you, compare, evaluate, and then decide if that is something you can pursue.
When Artisans Collaborative seeks to hire mid-level software engineers, the first interview will be with a senior programmer who more than likely knows more than the person being interviewed. We will ask probing questions to see what your responses are. If you ramble on with industry buzzwords and programming jargon but do not demonstrate any real depth in your understanding then we will know immediately. We think this first interview is crucial. If you exaggerate about your abilities to the senior programmer, who you will probably be working with if you land the job, then you will also underestimate to the project manager about how long it will take you to do your tasks. Again, just be honest. Companies will gladly hire an honest entry-level engineer who is willing to work hard and learn in their assignments than a mid-level fraud who thinks too highly of their own abilities.
Is this a good company to work for?
Remember that as a newcomer you are a risk to any company, as your lack of experience and need for hands-on and peer-review will be costly to the business. Reach out to well-regarded creatives on Twitter or LinkedIn to ask them about their journey into the industry. You can also do a web search for the company and read reviews on sites like Glassdoor and even Google+.
As you select a company remember to look for stability and long-term opportunity. Ask yourself, Would I still enjoy working at this place in five years? If the answer is "no" then you might want to look elsewhere. Before you go on the interview, do as much research as possible to learn about the company, its history, and its culture. Read and reread the job listing until you know exactly what it says and can ask pointed questions about your key responsibilities. This will demonstrate to your future boss that you take your job very seriously.
If growing in your experience is critical, then apprentice yourself to a well-respected agency where you will be afforded opportunity to work on a large variety of projects. As you settle into your career path you can pick the niche you prefer. If you want an environment where you can learn, then a startup is probably not the best environment, since they are often more focused on idea development and growth than they are on training programs. Startups are often flush with new investor money and willing to throw it at the first person that says they can solve the problem. This makes for a very unstable place to launch a career. Weigh your options carefully.
Set Yourself Up for Job Search Success
Whatever stage of the search you are in, the avenues for research and the sheer number of inquiries that have to be made can be overwhelming. Follow these simple guidelines to help take some stress out of the search process:
Polish your résumé and social profiles
Before you begin your search, take the time to update your résumé with relevant experiences and accurate personal information. If you need some assistance building a résumé, a quick Internet search can give you professional advice and attractive templates. You will also want to review your social profiles. More and more often companies search the Internet for information about potential employees. You will want to make sure that what they find is professional and showcases your skills.
Finally, tailor your résumé to the specific sector you are changing careers into. Make sure even summer and out-of-industry jobs demonstrate your skills in this new sector by describing not what you did, but how that experience distinguishes you as better qualified for this new career than other applicants.
Search for job positions in your wheelhouse
After defining your skill set, use those terms to find the job you want; Laravel oriented, junior developer, web designer, etc. By using a variety of search terms that are specific to your skills, you increase the odds of landing a job that is right for you.
Despite the wealth of resources available on the Internet, unfortunately, you cannot find all available positions in your area online. This is why it is important to find a local community of developers, coders, engineers, and creatives, so you can learn about positions through word-of-mouth. Find niche job boards and community meet-ups where you can post that you are available and also find recruiters. The best way to get a job is still in who you know, so start making friends in the industry so that you can increase your network of potential employers.
Choose the jobs you are interested in and send your résumé to them all
When you apply to multiple positions, you potentially increase the number of responses you receive. If your résumé is ready to send, you greatly reduce the time it takes to apply to multiple companies. Also read the application process carefully. Sometimes the unfamiliar steps are there to weed out those who cannot follow simple instructions. Your résumé no matter how well written and how perfect for the job may be ignored automatically because you did not write the email subject correctly.
Apply, Apply, Apply
Do not give up when you get rejected. It is part of the process. Conversely, do not wait for the right job to come your way before continuing to practice your trade. Continue applying to new jobs while continuing to take small side projects and odd jobs in the industry as a freelancer. Also do not take the lack of response as a rejection; re-apply to the same job if you never heard back from them. Sometimes the queue is just overwhelmed with applicants that yours has not come up. Persistence can sometimes pay off.
Remember that while job hunting today is oriented towards a digital process, if the company is a local one and you really want to work there, you should go the old-fashion way of printing off your résumé, dressing nicely, calling ahead to indicate you would like a meeting, and then showing up a few minutes early with a smile on your face. Make a good impression and it might just be the way to get you ushered past the red tape. It never hurts to ask if you can stop by again in the future just to intern for a day. If the team likes you, you are in and it prevents the carpal tunnel of filling out applications.
Offer to do freelance work
If you have a company you really want to work for, but they do not have any open positions, offer to do a freelance project for them at a fixed price and just get it done. The fixed price will help the company minimize risk on the project and being a subcontractor reduces the human resource department delays in getting hired and paid. You will learn so much from the experience and you will make excellent contacts within the company.
Even if you make minimum wage in the end, the experience and practice training in the deep-end will more than be worth it. If you do not know what to charge for the fixed price, just ask the company to give you a budget to work within. You could also ask programming friends and other professionals in your network what the going rate is for your skill set. Better yet, if you know how much you'd be making as an employee, ask for 20% above that to cover the taxes involved.
Start your search before you graduate
If you are still in high school or college, get a job anywhere in the same sector of the industry you are going to apply to when you graduate. This will give you an edge when you start applying, since you will already have experience. Even if you start off as a low-pay intern at a large agency, just being able to show two or more years working at the same company in your industry will give you quite the leg up on the competition. Also, if you build good relationships, you may be eligible for a position once you graduate or even before. Not every company is looking for a person with a degree and they understand that as long as you are on track for a degree, that you are a safe hire.
Find a co-working space
Co-working is a great way to meet people in your field. Not only can you get freelance job referrals, but you can also learn about smaller local businesses that may be hiring. Not every city has one so you may have to commute or relocate, if necessary. If one is starting up in your area, be sure to be one of the earliest members. This will help establish some key networking opportunities as you build your career.
One word of caution when it comes to co-working spaces is that they often become anything but working spaces. If the community space is full of unprofessional people or is home to mainly startups, then this might be a sign that the community has little to offer you in terms of mentorship. It can be fun for sure, but productivity and meaningful experience are what you are really after. These are the skills that pay. In such an environment, you may be pulled in all directions by empty promises from startups and the high-demands of struggling businesses. Choose the co-working space carefully or at least find the true professionals and learn from them.
Go to chamber of commerce meetings
If you own your own business, these meetings are especially valuable as you can be introduced to fellow business owners and learn about community needs. While often being a member of a chamber of commerce in your city is just a matter of bragging rights, if you network right and give it enough time it can be a healthy marketing channel to help establish local authority and presence in the industry.
Follow industry leads on Twitter
Though you may not exactly land a job through Twitter, by following industry leads you can stay current on recent updates in the technology world. You can also get excellent advice and insight. If a company is looking for a new employee chances are they will promote the job listing via Twitter.
Read widely and engage in discussion
Seek out the best blogs and magazines in the industry and read everything you can, but do not let your learning stop there, talk with the author to get clarification or to engage with the ideas and to build a relationship. Arguing and trolling is never a good idea, but embracing ideas you agree with and helping spread the word can extend some good will that the author may return as favor by helping get your résumé to the front of the line.
Refining and Expanding Your Skills
When starting out, you may not have all the skills you need immediately. It is important to continually add to your current knowledge base and to stay current on recent trends to ensure long-term success. Even while you are on the job hunt continue to learn and refuse to give into the temptation of taking a run-of-the-mill job or give up on your career goals. Take freelance gigs if you need the extra money and just keep expanding your skill set until you find the right job.
Seek out those who have more skills than you
Whether you have already developed a community connection or are just starting to build one, find people who can teach you. There are also many local co-ops that offer classes and professional development workshops. It is worth the time and money to keep your skills sharp. Not every one is going to be a great teacher but that does not mean that you cannot be a great student. Sometimes you just have to ask for the help. You may even have to pay someone to share their knowledge with you and as long as you can afford it, it is definitely worth it.
Make learning a natural habit
Until you find a job and even after you get one, it is important to integrate habits of learning into your daily schedule. Surround yourself with other developers, immerse yourself in code and devour documentation. As you learn, you will greatly expand your knowledge base, which will pay off in the long run. Your ability to read, comprehend and then apply this understanding of technical solutions will be your bread and butter in your new career. Take time to practice learning habits by engaging your mind in more active forms of learning rather than passive forms of entertainment.
Continually challenge yourself
Pick a subject that you are not familiar with or want to develop skills in and attack it. Read the documentation and ask questions of your peers. Allocate sufficient time to master the new skill and then resolve to do so before moving on to the next. With each challenge try to build depth in your existing knowledge of other topics and introduce only marginal breadth in new topics. Over time your well of understanding will be very deep and yet will be wide enough to learn most anything thrown at you on the job.
Deciding to make a career shift is a daunting endeavor, but if you approach it with a strategy and the right perspective, you can greatly reduce the anxiety that inevitably accompanies change. Here at Artisans Collaborative, we ask ourselves some of these same questions when hiring potential employees. We look for creatives with an excellent work ethic who are eager to learn. Regardless of their skill set, these qualities make them an invaluable part of our team. Technical skills are good, but a hunger for quality work is even better. Wherever you are in your career journey, we hope this advice will help you as you continue to develop your creative career.