Wednesday, 31 October 2018
Thursday, 25 October 2018
Your twitter bio says "agile follower"; Tell us more about this.
I admire agile software development. I have worked in an Agilish way in the past 6-7 years of my career and I believe it is an excellent paradigm for tech people like us to work. I believe in having small iterations and delivering working code than heaps of documentation so "agile follower".
What are some things that separate senior developers from junior developers?
The three things that separate senior software developers from junior are assuming responsibility, quality of work and communication/empathy. The tech skills need to be better as well but the soft skills at times separate juniors and seniors.
What are your thoughts on open source software?
Open source software has now become the lifeblood of most software development. Big companies, small companies all use open source and it benefits everyone. One thing that can improve in the open source software space is having more producers of open source software than just a lot of consumers.
What is the difference between a software engineer and software developer?
It could be deemed just a play of word. From a company, perspective, always use one and have your own definition for it. In my opinion, software engineer knows and engineers the development process from start to finish. The software engineer has excellent communication skills and knows things from getting more requirements to deploy bug-free software to production. On the other hand, developers take the task assigned to them and develop it. As I said it is my point of view.
Your thoughts on working remotely?
Working remote should be allowed for a profession like software engineering. It entirely depends on company policy, still I think remote working should be encouraged. From an employee's point of view, it requires a lot of discipline. It is not easy as it looks from the outside. It should always be a balanced approach from both the employer and the employee in terms of remote working. The measure of success should be productivity not how and where and how many hours are spent.
Give some advice to job seekers.
New or experienced for all job seekers the magic word is "network". And the best form of networking is in person. Then other two things build your profile and shortlist companies/positions you want to be working for. Then backtrack to get there. (See 5 Practical Steps to Land Your First Tech Job)
What dev tools do you use?
These are some of the dev tools I use:
* PHP Storm
* VS Code
* MYSQL workbench
There are many others but these are the primary ones for now.
Tell about what you are doing for #Hacktoberfest?
For #Hacktoberfest, I have not contributed to sizeable open source repositories. I have added some PRs to my own repos and some other repos I used to maintain. I have opened PRs to my own blog repo if that counts :).
Any fun side project (doesn't have to be tech) that you are working on?
I am working with some to be tech graduates with a simple aim "The day you finish your course (masters) you should have at least one job offer waiting for you". To achieve that we are building a project and implementing it too. In the process, the guys are learning the ins and outs of the software engineer process. I would really suggest experienced software engineering professionals to coach/mentor and guide new software engineers.
Anything else you would like to add?
I wish you and The Tech Remix all the best. I would like to thank you for this opportunity. To all software engineers, always remember technical issues can be solved anyhow it's mostly communication and people problems that are the most difficult to solve. Software systems are easy, it is black and white, it either works or not. People are difficult they have multiple shades of grey.
By Hassan Voyeau
Wednesday, 10 October 2018
What is the best part about being a software developer?
I love writing code. It feels like playing a logic puzzle game, but the rules are always changing so it never gets boring.
I also love the autonomy and flexibility. This is something that doesn't come automatically with every development job, but if you build a reputation for delivering without being micromanaged, a good manager will leave you alone and let you do your thing.
Thoughts on the Low Code Development trend?
Right now software development is a pain point for businesses. Humans are expensive and unpredictable. Businesses would like to reduce costs and get the messy humans out of the way so they can make more money. Low code development is the seed of the slow process to replace developers.
I have no doubt that most developers will eventually, over several decades, be replaced by low and no-code visual development tools. They aren't advanced enough to replace us now, but they will be.
When banks first started installing ATMs in the 1960's, I imagine bankers didn't take them very seriously. ATMs were dumb, clunky machines that customers didn't understand and didn't want to use. It took about 50 years, but ATMs have nearly replaced tellers. They can do almost everything a teller can, only faster and without the awkward small talk.
We're deceiving ourselves if we think software development is different. The tools will start with routine tasks, like building relational databases and RESTful APIs, and grow from there. Eventually, the average business person will be able to build tools that now take a team of developers, testers and product managers.
The good news is that we don't need to panic about our job security. It will take decades for the tools to advance enough, and the businesses to adapt enough to replace developers. By then, many of us will be nearing retirement, and there will still be room for us to work on legacy projects.
The bad news is that demand for developers will stop growing long before we can actually be replaced. To keep our wages from flattening out, we'll need to continuously refresh our skill set and stay out of areas that are being automated.
As a society, we also need to build a safety net for people whose jobs are automated away. Whether it's through job retraining programs or something like a universal basic income, we have to find some solution to the fact that jobs are changing too fast for most humans to keep up. And we have to stop telling ourselves that this could never happen to us.
Your Twitter bio says "Success is getting a different error message." Explain.
The most important thing that software development has taught me is that failure is a necessary step on the path to success. If you keep making the same mistake and getting the same error message, you're not learning and you'll never succeed. On the other hand, if you're not getting any error messages, it's NOT because you're awesome--it's because you're too afraid to build anything!
If your code, your career, your life is breaking in NEW ways, you're doing it right.
Your Github page says "One day there was a girl with a dream to build." Tell us about this.
I put that up there because it sounded good and went well with the design of the site. Honestly, though, I recoil a bit when I read it. It strikes me as fake and "canned". I didn't really have a dream to build. I had a dream to get the hell out of banking, and to find a job that felt meaningful and put more than just a few crumbs on the table for my kids.
Luckily it turned out that being a developer was much more than that for me. Code is this beautiful link between the logical and creative sides of my brain. It's something I would do for fun if I didn't do it for work. I count myself very, very lucky to have a job like that.
Tell us about your ebook "How to Become a Web Developer".
Changing careers and teaching myself to code was difficult and confusing. I wished I'd had a guide book that would tell me what to focus on learning, what to expect in interviews, and how to get my first job. I also wanted to be reassured that it was possible--that I could actually be successful jumping into a completely different career without getting a new degree.
How to Become a Web Developer is the book I wish I'd had. If you're looking to become a software developer, you can find it on Amazon.com. You also might be interested in the blog post I wrote for FreeCodeCamp: How to Become a Web Developer Without Losing Your Mind.
What dev tools do you use?
My preferred tools are: a Mac or Linux machine, Vim text editor, and Tmux session manager. Tmux makes it feel like you have an unlimited number of monitors, because you can flip back and forth between sections of code, Bash sessions, etc. You can also have other developers SSH into your Tmux session so you can code together.
I like these tools because, even though they're hard to master, they give you an incredible amount of power. On Unix-based systems (Mac and Linux), you're only limited by your own knowledge (and possibly your user permissions). The downside is that you can also get yourself into a lot of trouble if you're not careful.
At work I currently use a Windows laptop and Intellij IDE. I absolutely hate working on Windows because it's very inflexible and too much of the functionality is hidden. I find Intellij decent to work in, but it's very memory-hungry and can crash if you don't have enough available memory.
To beginners, I recommend using a Mac if you can afford one, since it's the most user-friendly platform for developers. Installing Ubuntu or Fedora on a PC is a good alternative if you don't want to drop $800 on a laptop. I'd recommend Atom for a text editor since it's free and very simple to use, but also has plenty of plugins that can make life easier once you've gotten the basics down.
Thoughts on open source software?
It's like a Utopian fantasy. The idea that software developers across the world work together to solve common problems, and then freely give away those solutions so others can expand and improve them--I wouldn't believe it if I didn't know it was real.
Imagine what we could accomplish as a species if other fields, like medical research, open-sourced some of their best tools and techniques. What if, instead of trying to patent every newly discovered gene, scientists shared the information openly so others could use it to create gene therapies, trace a person's heredity, or whatever else they could think of?
Pick one online service where you would want to get a first hand and behind the scenes look at how the developers work.
I would love to see inside Atlassian. Their tools--Confluence, Bitbucket, HipChat--are so beautifully designed and virtually bug-free.
State a challenging question you would pose to a developer interviewee.
When interviewing candidates for a developer apprenticeship program, I got very enlightening responses from the following question:
"Imagine I'm a robot that knows nothing about laundry. Explain to me how to wash a load of laundry."
I asked this question because I wasn't trying to assess their knowledge of a particular language. I wanted to know how well they could break down the problem in a familiar domain (most people have done laundry at some point) and transform it into a step-by-step process. There was no way they could have anticipated the question, so I got a unique opportunity to watch their thought process.
One candidate was especially detailed. "This is clothing. First, we need to sort the clothing into dark and light piles. Anything darker than this item should go in the dark pile..."
I also remember a candidate who had trouble breaking the process down into an ordered list of steps. He ping-ponged back and forth from washing, to drying, to sorting, back to washing. He got sidetracked and talked about why a robot would do laundry, but he never gave me a real list of steps.
I wouldn't have hired or disqualified a candidate solely based on their response to a question like that, but it did help me get a sense of how each candidate thought.
Anything else you would like to add?
To the aspiring developers:
Pay attention to both your technical skills and your job search skills. If you're having trouble getting interviews, you need to work on networking with other humans. If you're having trouble passing technical interviews, you should focus on your technical skills.
To the employed developers:
Your skills and experience are the assets that keep you employed. Don't let them decay. Fight to get onto projects that will teach you something new. Fight for the opportunity to go to conferences, or just spend work hours taking an online course. If your employer doesn't value continuous learning, find one that does.
By Hassan Voyeau