You can become a serverless blackbelt. Enrol to my 4-week online workshop Production-Ready Serverless and let me take you through building a production-ready serverless application from testing, deployment, security right through to observability. This workshop gives you hands-on experience building something with serverless technologies while giving you a broader view of the challenges you will face as the architecture matures and expands. By the end of the workshop, you should have a clear idea when serverless is a good fit for your system as well as common pitfalls you need to avoid.
A client emailed me a while back and asked what advice I’d give to someone just starting out on their career.
As I began to write my reply, I realised that everything that popped to my mind was generic recitals that you can find after 10s of googling.
“Ask lots of questions”
Not that these are bad advice. But they’re incredibly vague and you know them already. I wasn’t going to add any value, so I stopped writing.
Clearly, I didn’t understand the problem deeply enough to offer someone useful, actional advice. Five months have passed, and the question has lingered in the back of my mind for some time. And finally, I feel I have thought about it enough to offer something useful.
So here it goes.
Become the expert on something, anything!
When you start a new game as a level 1 character, your immediate goal is to reach level 2. And it’s the same when you start out a career as a developer. The textbook definition for a junior developer is someone who needs supervision to complete their work.
Of course, you need to acquire the technical competency to reach the next level – to be able to complete most tasks without supervision. But you also have to earn the trust of your colleagues. To prove that they can depend on you and that “you know what you’re doing”.
What better way to do that than to become the subject matter expert on something.
It could be a new tool the company is trying to introduce.
It could be a library your team depends on.
It could be a legacy system that everyone else is afraid to touch. This is a great place for you to prove your worth. Most companies earn their money through their legacy systems, but these systems are seldom exciting to work on. Often, they’re down-right horrific to even look at. But given their criticality to the business, everyone is forced to tolerate them.
If you find a legacy system that is both critical to the business, and there is a lack of knowledge in the team. Then make yourself invaluable to the team by diving in and learning all you can about the system. Become the expert on this legacy system and soon everyone would be coming to you for answers.
Act older. No, seriously.
When you are younger than your peers in the workplace, don’t act like it. Don’t act like a novice. It’d only give others a chance to reinforce their pre-existing biases/stereotypes against your age.
Do everything to your fullest ability and behave in a mature way, maybe even more so than your older colleagues. Your age should not be a handicap, and it mustn’t be an excuse either.
I think the reverse should also be true when you’re older. Be youthful and be energetic. You don’t want to be the person that saps the energy out of a room. Challenge the status quo with the goal of improving things, not just to complain because life has hit you with one too many punches.
Prioritize learning over earning.
As you progress through your career, the single most valuable currency you have is your knowledge and experience. But not all experiences are created equally. Not all experiences yield the same amount of learning over time.
Working 9–5 every day doesn’t equate to 8 hours of learning every day. Learning requires deliberate practice. Unfortunately, most of what we do at work involves doing what we already know. That’s not learning.
How your career would develop depends on an awful lot of luck. The most successful people in our industry get to where they are after being in the right place at the right time. Which gave them opportunities to solve problems that create huge amounts of learning in return.
But you still have a lot of control, especially in the job opportunities that you pursue. You should pick opportunities that will likely challenge you the most and create the most amount of learning. Don’t worry about earning $10k less a year at this stage of your career. Those valuable learnings that you collect along the way would easily double the difference later in your career. And you’ll have a much happier and successful career!
Also, take learning into your own hands, and learn things that interest and excite you. If the cloud is your thing, then take advantage of the fact that it’s super cheap to experiment with new ideas and technologies.
Don’t just mingle with your age group.
It’s easy to fall into the trap of hanging out with only people in your age group. Maybe you join the company via the internship programme, or you found a close-knit group of friends.
While this might seem great at first, you could be limiting yourself. According to network science, the no. 1 predictor for career success is being in a diverse, open network.
Mingle with people from other age, ethnic and business function groups in your company. And get involved with the wider developer community. Contribute to open-source projects. Help run meetups, or conferences. Or better yet, speak at these events!
I have been a public speaker for over 8 years, and it has helped my career a tremendous amount. The best thing about speaking is meeting lots of new people. Other speakers, conference organizers and attendees who probably share your passion.
Start sharing on blogs/YouTube/Twitch/whatever.
You might be thinking “I’m so new to this, why would anyone be interested in learning from me?” And you would be wrong.
Every day there are new developers starting out on their careers. They will have the same questions that you have and face the same challenges that you do. What you can offer are your unique perspectives and your journey.
Personally, I like writing, a lot. I have written over 800 blog posts over the last decade. I find it a great way to consolidate my thoughts and identify gaps in my knowledge. If I can’t explain concepts in words that others can understand then I haven’t understood the problem well enough. Maybe writing is not your thing, then try YouTube, or Twitch, or whatever!
Understand the business.
Early on, you are assessed based on your ability to execute. The quality of the code you write. How well you follow good practices. And your general problem-solving skills.
That’s probably all you care about at this early stages of your career. And it’s probably all you have time and mental energy for as well!
But know this, businesses don’t care about the code, not really. Your job as a software engineer is not to produce code. Your job is to create a positive business impact – more users, better retention or improved revenue.
It took me many years to realise this, and it transformed my career.
Take the time to understand how your business operates. What are the internal and external forces that drive business decisions? What are the biggest challenges facing your organization? Who knows, maybe you can offer a fresh perspective at the problem and take the business forward in new directions.
This is a lesson that I wish someone bestowed upon me when I was starting out. That it’s not about the timing in the market, but the time in the market. The earlier you start investing the longer your investment can enjoy the power of compound interest.
“The power of compound interest the most powerful force in the universe.”
– Albert Einstein (allegedly)
Don’t work for horrible bosses.
Life is too short for that! Unfortunately, the world is full of bad managers. If you find yourself working for one, start looking for a new job. Unless you’re starving and really really need this job. The good news is that there are plenty of forward-thinking, progressive companies who are looking for good people.
I specialise in rapidly transitioning teams to serverless and building production-ready services on AWS.
Are you struggling with serverless or need guidance on best practices? Do you want someone to review your architecture and help you avoid costly mistakes down the line? Whatever the case, I’m here to help.
Check out my new podcast Real-World Serverless where I talk with engineers who are building amazing things with serverless technologies and discuss the real-world use cases and challenges they face. If you’re interested in what people are actually doing with serverless and what it’s really like to be working with serverless day-to-day, then this is the podcast for you.
Check out my new course, Learn you some Lambda best practice for great good! In this course, you will learn best practices for working with AWS Lambda in terms of performance, cost, security, scalability, resilience and observability. We will also cover latest features from re:Invent 2019 such as Provisioned Concurrency and Lambda Destinations. Enrol now and start learning!
Check out my video course, Complete Guide to AWS Step Functions. In this course, we’ll cover everything you need to know to use AWS Step Functions service effectively. There is something for everyone from beginners to more advanced users looking for design patterns and best practices. Enrol now and start learning!
Are you working with Serverless and looking for expert training to level-up your skills? Or are you looking for a solid foundation to start from? Look no further, register for my Production-Ready Serverless workshop to learn how to build production-grade Serverless applications!
Here is a complete list of all my posts on serverless and AWS Lambda. In the meantime, here are a few of my most popular blog posts.
- Lambda optimization tip – enable HTTP keep-alive
- You are wrong about serverless and vendor lock-in
- You are thinking about serverless costs all wrong
- Just how expensive is the full AWS SDK?
- Many faced threats to Serverless security
- We can do better than percentile latencies
- Yubl’s road to Serverless
- AWS Lambda – should you have few monolithic functions or many single-purposed functions?
- AWS Lambda – compare coldstart time with different languages, memory and code sizes
- Guys, we’re doing pagination wrong
- Top 10 Serverless framework best practices