Connect with us

Entrepreneurship

How To Become A Successful Software Engineer

Published

on

When it comes being great at what you do in life, there’s no real formula. Some people have that natural talent for something, and others just love it enough to dedicate the time to get better at it.

Regardless of how you ended up where you are, there is always room for improvement. I’m going to talk about some of the things that have helped me along the way become better at what I do: write kickass software. Realistically, you can substitute “Software Engineer” with your field and most things should still apply.

Now, in no particular order…

Don’t stop believing learning

Just because your schooling stops, it doesn’t mean you stop learning. You should be constantly learning. New technologies come out, new ways of thinking take hold, and new problems need to be solved. You can’t stagnate and keep solving new problems with old ways of thinking. Sometimes it works, and sometimes it does end up being the best way to do it. Many times you have to explore new spaces and examine the problem from a different point of view to find a truly excellent solution.

Learning happens a number of different ways:

Read

Blogs, magazines, professional publications and journals, books, code, schematics, experiments, studies, whatever. Read as much as you reasonably can. Don’t limit yourself to one or two formats either. Don’t just read blogs. Grab a subscription to an ACM publication (Transactions on Software Engineering maybe), or whatever your field has for professional publications. Read actual books too. There is a lot of fiction being read these days, and with the explosion of blogs and online reading, physical non-fiction books aren’t as popular.1 Find the good ones in your field, and buy actual books (or Kindle ebooks) and read those too.

Conferences

Go to conferences if you can. It’s sometimes a big deal and can cost a good chunk of money to fly places and get hotel rooms, but it’s worth it. I haven’t even been to a software related conference yet, but I can already tell it’s worth it judging from the tweets, slides, videos, and simply all the people that attend. I always learn things checking out slideshare and vimeo after the fact, so it makes sense you’d learn even more (and have more fun) actually attending.

Professional development seminars

These are designed to help make you better at your job, and improve your career. In my world, they are usually a day or two, but can be multi-week things that cost lots of money. Check if your employer can help you out, because in the end, it benefits them too.

Learn from others

I sort of break this into a couple main parts:

Listen to criticism and feedback

If somebody rips on your code, design, solution, whatever, it is in your best interest to listen to them. It doesn’t mean you have to do what they say, but you at least listen to and analyze what they are saying. Their concerns might be completely legitimate, since they are looking at the problem and your solution through a different lens. They have their own view and are thinking about different things, and might see problems you didn’t.

Examine solutions to similar problems

Let’s say you decide you’re going to write a new source control system. You probably already have a lot of good reasons if you are doing this, but you’d be stupid if you didn’t examine how existing software solved the problem. Go read about git, mercurial and svn. See how they deal with merge conflicts, serving repositories, and keeping things fast. You can learn a lot by examining existing solutions.

Teach

I can’t find the quote, but it’s something relating to how you don’t truly understand something until you can teach it to somebody else. So teach!

If you love something, help other people learn about it. Convey what knowledge you have so that others can help solve problems and apply new technology to new problems. Teaching can take the form of giving talks at user groups, meetups and conferences, running formal classes at a site like codelesson, doing corporate training (like what Github offers), or even just walking a coworker through a piece of code you wrote.

Whatever format you choose, get out there and teach.

Love your job and work on stuff you care about

These two work in tandem. If you hate tax software, don’t work at Intuit. Pretty straight forward. You might say “but there’s no good software companies in my area!”

Move.

If you don’t like your job, don’t rule out relocating to get a job you will enjoy. If you can’t go to work and enjoy what you do, you might not have the motivation to work on your own stuff, since your day will be so depressing.

Think about it: if you hated MIPS assembly programming, and would never do it at home, why would it be acceptable to go to work every day and do it there?

Do what you love, and love what you do. No excuses!

Be consistent

I think consistency in how you carry and present yourself, online and off, is a big thing. It can encompass a bunch of things, from your dress (Steve Jobs is the ultimate in clothing consistency) to your coding and writing style.

As an example, I ensure that my avatar and bio is the same everywhere. Pretty much any site I’m on, you’ll be able to see my cartoonified self and that I’m (at the time of writing) a “Software engineer (EIT) in Edmonton, Alberta, Canada.” I might leave the location out if there is another place to put location, but it’s there somewhere.

Writing style, dress, bio, attitude, and contact information are all things to keep in mind when it comes to being consistent. If you start giving out an email to be contacted at, keep using that email. If you are consistently a nice person on the net, don’t randomly jump out and be a dick somewhere.

Be consistent. It helps people remember who you are.

Be contactable

Living in a box sucks. If you want to move up in your career (this doesn’t mean climbing the corporate ladder), you are going to want to communicate with people in your field. Have an email and maybe a phone number on your business card. Use Skype for web calls. Use a contact form from Wufoo if you don’t want your email out in the open. But why not? Use Gmail and benefit from their spam filtering!

By being contactable, you’re making yourself available for teaching (“hey, how did you do this?”), job opportunities, and criticism, which as we talked about are all good things.2

Participate in the community

This is Why the Lucky Stiff.  He’s awesome. He did so much for the ruby community that when he dropped off the internet, people stopped what they were doing to pick up where he left off, and take over maintenance of the the things he was involved in.

If he just sat at home and kept his stuff to himself, he wouldn’t be nearly as awesome.

If you’ve got cool code, show it to people. If you did something cool in your field of work, show it off and teach others how you made it.

Participate in forums, user groups, IRC channels, webinars, and Twitter discussions. Get out there and start talking to people, on and off the web. Go to conferences and get in on hack nights, and find people to go to lunch with.

Crazy and interesting things can come out during lunch.

Practice your trade (code) for fun

If you’re not coding at home, for fun, you’re doing it wrong. Don’t give me crap about I-don’t-have-time. You do, you’re just not managing it properly. Scott Hanselman has two kids and he still programs the crap out of things. If all the programming you do is at work, and you legitimately don’t want to program when you get home, see the section “Love your job and work on stuff you care about”?5

This goes past programming too. If you’re an electrical engineer and a guitar player, make a guitar amp. If you’re a carpenter, make a badass swingset for your kids.

Just work on something that you want to do at home. If what you want to work on is what you’re doing at work, then make like The Eagles and take it easy.

Get shit done

This is from Joel Spolsky. If you’ve ever seen a job posting for Fog Creek Software you’ll see they really only care about two things: smart and gets things done. If you are those two things, it doesn’t really matter if you are a python/django guy or gal, and they need somebody to work on their Wasabi based application; you’ll pick it up pretty quick. It’s sort of like going to work for a different carpentry shop and they say “hey, I know you’re used to red hammers with leather grips, but here’s a blue hammer with a badminton style grip.” The language is basically just a tool, and if you’re a smart cookie that doesn’t screw around, the tool doesn’t really matter.

Stay organized

Use a todo list or go farther and subscribe to the GTD philosophy. I tried the GTDthing, and I still sort of use parts of it, but I cram things into Remember The Milk to keep track of things I need to do, or want to do at some point. This gets things out of your head, and into something where you don’t have to think about them all the time. I also use bug trackers to keep track of specific things on specific software projects I’m working on.

Cut your losses

I know you might want to push through on something, but some things just aren’t worth doing or finishing. I had wanted to do a Gravatar clone using Rails 3 as an example application for when it first came out. It wasn’t set in stone, just something I thought would be cool. But then Rails 3 was out, and I got sidetracked doing other things, and now it’s taken a bit more hold. Me spending time on that application would kind of be a waste, considering Rails 3 has been out for a while, and my blog is also Rails 3 already. If an item has been in your todo list for a long time (maybe it was just a random thought), consider whether or not it still needs to be in there instead of just doing it. This also applies to things you’ve started, but have fizzled out. If it’s not exciting or relevant anymore, scrap it and work on something fresh and awesome.

Be asynchronous

This one is weird, but I wanted to talk about it anyway.

Actually use todo lists and RSS feeds. Like email, these are asynchronous systems. You send an email, subscribe to a feed, or write down a todo item, and you don’t worry about it too much anymore. Sure, you check your email the next day or read your feeds before bed, but you don’t have to keep checking a website for new content or be sitting staring at the “John is typing…” text on Skype. You can dedicate time to dealing with things, write them down when you think of them, and deal with them in the time you’ve set aside. The more you can get out of your brain into some other system the better. This allows you to focus on the task at hand. Later, when the time comes to deal with email, or read feeds, you can focus on that.

These are some things that apply more to computer related fields , but I list them because they’ve really helped me out.

Get a Kindle

Seriously. This thing is awesome. It’s beautiful to read, you can send other documents to it and have them converted (professional journal style papers in PDF form convert very nicely) for easy reading. The battery lasts forever, and Amazon’s book selection is great. If you do a lot of reading, you need a Kindle. It’s only $139!

Use Google Docs

All the little PDF whitepapers, ebooks, PDF manuals, everything I find on the net (reading or reference wise), goes into Google Docs. It’s a great office suite of tools that works the same on all systems, so you don’t have to deal with “oh I saved it on my Mac and now I’m on Windows” crap. It just works. Files are safe on Google’s servers (I feel great about that, but you might have other opinions about keeping things in Google’s system), and it’s completely searchable. It’s not only limited to the office suite things either. I store PDFs, important archives, or really anything that I want to be safe and accessible.

It might not be the most useful thing in the world for you initially, but definitely check it out.

Boom

That’s it. Those are all the secrets. Well they’re not really secrets, but I think they’re going to help me do great things in the software world. Maybe they can help you too.

_________________________

About the Author

This article was written by Daniel Huckstep of Verbose Logging. Daniel is a software problem solver in Edmonton, Alberta, Canada. He enjoys all kinds of programming, even assembly. see more.

Callum Connects

Benjamin Kwan, Co-Founder of TravelClef

Published

on

Making music to create a life for his family, Benjamin Kwan, started an online tuition portal and his music business grew from there.

What’s your story?
I am Benjamin and I’m the Co-Founder of TravelClef Group Pte Ltd, a travelling music school that conducts music classes in companies as well as team building with music programmes. We also run an online educational platform which matches private students to freelance music teachers. We also manufacture our own instruments. I started this company in 2011 when I was still a freshman at NUS, majoring in Mechanical Engineering.

I was born to a lower income family, my father drove a taxi and was the sole breadwinner to a family of 7. I have always dreamed of becoming rich so that I could lessen the burden placed on my father and give my family a good life.

After working really hard in my first semester at NUS, my results didn’t reflect the hard work and effort I put in. At the same time, I was left with just $42 in my bank account and it suddenly dawned on me that if I were to graduate with mediocre results, I would probably end up with a mediocre salary as well. I knew I had to do something to gain control of my future.

During that summer break, I read a book “Internet Riches” by Scott Fox and I knew that the only way I could ever start my own business with my last $42 would be to start an online business. That was how our online tuition portal started and after taking 4 days to learn Photoshop and website building on my own, I started the business.

What excites you most about your industry?
Music itself is a constant form of excitement to me as I have always been an avid lover of music. As one of the world’s first travelling music schools, we are always very eager and excited to find innovative ways to a very traditional business model of a music teaching.

What’s your connection to Asia?
I was born and raised in Singapore and I love the fact that despite our diversity in culture, there’s always a common language that we share, music.

Favourite city in Asia for business and why?
Hands down, SINGAPORE! Although we are currently in talks to expand to other regions within Asia, Singapore is the best place for business. I have had friends asking me if they should consider venturing into entrepreneurship in Singapore, my answer is always a big fat YES! There’s a low barrier of entry, and most importantly, the government is very supportive of entrepreneurship.

What’s the best piece of advice you ever received?
I have been blessed by many people and mentors who constantly give me great advice but right now, I would say the best piece of advice that I received would be from Dr Patrick Liew who said, “Work on the business, not in it.” This advice is constantly ringing in my head as I work towards scaling the business.

Who inspires you?
My dad. My dad has always been my inspiration in life, for the amount of sacrifices that he has made for the family and the love he has for us. He was the umbrella for all the storms that my family faced and we were always safe in his shelter. Although my dad passed away after a brief fight with colorectal cancer, the lessons that he imparted to me were very valuable as I build my own family and business.

What have you just learnt recently that blew you away?
You can not buy time, but you can spend money to save time! With this realisation, I was willing to allow myself to spend some money, in order to save more time. Like taking Grab/Uber to shuttle around instead of spending time travelling on public transport. While I spend more money on travelling, I save a lot more time! This doesn’t mean that I spend lavishly and extravagantly, I am still generally prudent with my money.

If you had your time again, what would you do differently?
I would have taken more time to spend with my family and especially my father. While it is important to focus our time to build our businesses, we should always try our best to allocate family time. Because as an entrepreneur, there is no such thing as “after I finish my work,” because our work is never finished. If our work finishes, the business is also finished. But our time with our family is always limited and no matter how much money and how many successes we achieve, we can never use it to trade back the time we have with our family.

How do you unwind?
I am a very simple man. I enjoy TV time with my wife and a simple dinner with my family and friends.

Favourite Asian destination for relaxation? Why?
Batam, it’s close to Singapore and there’s really nothing much to do except for massages and a relaxing resort life. If I travel to other countries for shopping or sightseeing, I am constantly thinking of business and how I can possibly expand to the country I am visiting. But while relaxing at the beach or at a massage, I tend to allow myself to drift into emptiness and just clear my mind of any thoughts.

Everyone in business should read this book:
Work The System, by Sam Carpenter. This book teaches entrepreneurs the importance of creating systems and how to leverage on systems to improve productivity and create more time.

Shameless plug for your business:
If you are looking for a team building programme that your colleagues will enjoy and your bosses will be happy with, you have to consider our programmes at TravelClef! While our programmes are guaranteed fun and engaging, it is also equipped with many team building deliverables and organizational skills.

How can people connect with you?
My email is [email protected] and I am very active on Facebook as well!
https://www.facebook.com/benjamin.christian.kwan

This interview is part of the ‘Callum Connect’ series of more than 500 interviews

Callum Laing is an entrepreneur and investor based in Singapore. He has previously started, built and sold half a dozen businesses and is now a Partner at Unity-Group Private Equity and Co-Founder of The Marketing Group PLC. He is the author two best selling books ‘Progressive Partnerships’ and ‘Agglomerate’.

Connect with Callum here:
twitter.com/laingcallum
linkedin.com/in/callumlaing
Download free copies of his books here: www.callumlaing.com

Continue Reading

Entrepreneurship

Before you enter a Startup or before you choose your founding team or new hires read, “Entering Startupland” by Jeff Bussgang

Published

on

Before you enter a Startup or before you choose your founding team or new hires read “Entering Startupland” by Jeff Bussgang.

Jeff knows how to spot and groom good culture, as the book session was held in Zestfinance a company he invested in and now, “The Best Workplaces for Women” and for “The Best Workplaces for Tech”, by Fortune.

These are the questions during the Book Launch.

How to know if a hire including the founder is Startup material?
Jeff says to watch for these qualities.

First, do the hires think like an owner?
Second, do the hires test the limits, to see how things can it be done better?
Are they problem solvers and are biased toward action?
Do they like managing uncertainty and being comfortable with uncertainty? And comfortable with rapid decision-making?
Are they comfortable with flexible enough to take in a series of undefined roles and task?

How do we know if we are simply too corporate to be startup?

Corporate mindsets more interested in going deep into a particular functional area? These corporate beings are more comfortable with clear and distinct lines of responsibility, control, and communication? They are more hesitant or unable to put in the extra effort because “it’s not my job”.

If you do still want to enter a startup despite the very small gains at the onset, Jeff offers a few key considerations on how to pick a right one.

He suggests you pick a city as each city has a different ecosystems stakeholders and funding sources and market strengths. You have to invest in the ecosystem and this is your due diligence. Understand it so you can find the best match when it arises.
Next, to pick a domain, research and solidify your understanding with every informational interview and discussion you begin. Then, pick a stage you are willing to enter at. They are usually 1)in the Jungle, 2) the Dirt Road or 3) the Highway. The Jungle has 1-50 staff and no clear path with distractions everywhere and very tough conditions. The Dirt Road gets clearer but is definitely bumpy and windy. Well the Highway speaks for itself, doesn’t it?

Finally Please – Pick a winner!

Ask people on the inside – the Venture Capitalists, the lawyers, the recruiters and evaluate the team quality like any venture capitalists would. Would you want to work for the team again and again? And is the startup working in a massive market? Is there a clear recurring business model?

After you have picked a winning team and product, how would you get in through the door?

You need to know that warm introductions have to be done. That’s the way to get their attention. Startups value relationships and people as they need social capital to grow. If you have little experience or seemingly irrelevant experience, go bearing a gift. Jeff shared a story of a young ambitious and bright candidate with no tech experience who went and did a thorough customer survey of the users of the startup she intended to work with. She came with point-of-view and presented her findings, and they found in her, what they needed at that stage. She became their Director of Growth. Go in with the philosophy of adding value-add you can get any job you want.

And as any true advisor would do, Jeff did not mince his words, when he reminded the audience that, “If you can’t get introduced you may not be resourceful enough to be in startup.”

Startupland is not a Traditional Career or Learning Cycles

Remember to see your career stage as a runs of 5 years, 8 or 10 – it is not a life long career. In Startup land consider each startup as a single career for you.

Douglas Merrill, founder of Zestfinance added from his hard-earned experience that retention is a challenge. Startup Leaders to keep your people, do help them with the quick learning cycles. Essentially from Jungle to Dirt road, the transition can be rapid and so each communication model that starts and exists, gets changed quickly. Every twelve months, the communication model will have no choice but to break down and you have to reinvent the communication model. Be ready as a founder and be ready as a member of the startup.

Another suggestion was to have no titles for first two years. So that everyone was hands-on and also able to move as one entity.

Effective Startupland Leaders paint a Vision of the Future yet unseen.

What I really enjoyed and resonated with as a coach and psychologist was how Douglas at the 10th hire thought very carefully what he was promising each of his new team member. He was reminded that startups die at their 10th and their 100th hires. He took some mindful down time and reflected. He then wrote a story for each person in his own team and literally wrote out what the company would look like and their individual part in it. In He writing each of the team members’ stories into his vision and giving each person this story, it was a powerful communication piece. He definitely increased the touch points and communication here is the effective startup’s leverage.

Douglas and Jeff both suggested transparency from the onset.

If you think like an owner and if you think of your founding team as problem solvers. Then getting transparent about financials with your team is probably a good idea. As a member of a startup, you should insist on knowing these things
Such skills and domain knowledge will be valuable. There is now historical evidence of people leaving startups and being a successful founder themselves because they were in the financial trenches in their initial startup. Think Paypal and Facebook Mafia.

What drives people to enter a startup?

The whole nature of work is changing. Many are ready to pay to learn. Daniel Pink’s book Drive showed how people are motivated by certain qualities like Mastery, Autonomy and Where your work fits into big picture. Startups do that naturally. There is a huge amount of passion and the quality of team today and as it grows then the quality of company changes.

The Progress principle is in place, why people love their startup jobs is not money rather are my contributions being valued? Do I see a path of progress and do I have autonomy over work and am I treated well?

Find out more about StartupLand on Amazon

And learn from Zestfinance

Continue Reading

Trending