As the title states. I’ve been a software developer for a year now and work for a tiny company, where the salary isn’t amazing. I got paid more at Apple Genius Bar, but it wasn’t as challenging.
I still feel like I’m stupid, I’ll rely on the owner lead engineer for help on the more complex problems and because we have a great set of conventions I’ll frequently be going back to old projects to extract the logic from their. Whether that be reading from Excel spreadsheets or the controller flow, as we use GraphQL api for most calls.
Does it just click at some point?
Some advice that has taken me over a decade to learn myself:
There are no rules, the titles are made up, the responsibilities and requirements do no matter.
Get what you can from your job, and once you get something do your Best even if that best sucks, and stay until you have gotten what you want out of the job, or realize you can’t or don’t want to do it anymore, and then start again doing something else.
Don’t ever limit yourself thinking you need to “level up” or something needs to get unlocked.
Learn by doing, try your best, you will make things that suck sometimes, but as you do more and more you should be making things better.
Thanks.
I think you’re right in that there are no rules, and although this is something that I don’t cope well with, I like set paths and to know how to approach things rather than yeah just do you.
I guess it’s hard when one minute you feel like a god and the next you feel like an imposter.
I guess it’s hard when one minute you feel like a god and the next you feel like an imposter.
Honestly, that is normal. Even for those of us in other IT industries. If you have been there a year then they trust the work you are doing is correct or they would have had improvement plans.
What you can do is go to your tech lead and ask if he can point you at resources to improve your skills.
As for the pay, remember to job hop every couple years to bump it up to keep ahead of inflation.
I’ve been a programmer for decades and I still sometimes look at code I wrote 6 months ago like what the fuck was I thinking. Code is as much art as science.
In this industry, change is the only constant and your ability to learn, grow, and adapt is going to be more important than any singular technology you can learn.
I can promise you’re not as stupid as you may feel you are. You’ve made it a year, and that means something.
I’ve been pushing myself hard to get some certifications to really deepen my skill set. You may find that’s valuable to you, or you may not. I’ve found that it’s improved my ability to take a step back and understand the systems I’m building from an architectural perspective. It’s been helpful for me.
I’ve helped coach interns and new hires at my company before. I actually like when they ask me questions even if it’s something I’ve answered before, because it shows me that they want to learn. And even better is when they ask “why do it that way?”, because it forces me to check my own understanding of the problem set. It also means that I can really dig into the explanation and hopefully they walk away with at least one more tool in their toolbox.
Thanks.
I guess it being about change is great for me, as someone with ADHD I thrive off change as it’s novel.
I have been playing with the idea of getting some certifications, but more in terms of cyber security as an extra thing I could do for our company in terms of penetration testing our applications so I may dive deeper into this area.
The same for understanding the architecture as although there are only 5 of us under the bosses, I appear to be the only one interested in the inner workings of the company and products we build. Like the boss has made a seriously cool project that will help us code the boring parts faster using LLMs and he’ll frequently call me over to show me what he’s done. Even if I don’t understand how he has devised the architecture, I’ll still be able to suggest features and give it a go at implementing them, and he is on hand to praise me and get it over the line. Like seriously this things is so cool. A lot of what we do is to our coding standards and a lot of repetition is done away with. For instance if I create a new Model in C# and save, it will watch for changes and add the new table in the code first DB file, it will suggest the validation, add the CRUD schemas, generate the typescript / GraphQL layer and even scaffold the basic views we might want. I helped build the watch command and I’ve never seen a colleague pay any interest at all.
I can sort of relate to the last paragraph as recently I’ve been on a project with a more tenured coworker who works remote, and he isn’t familiar with react as he handled more legacy projects so I got to explain all the conventions to him and it does make me realise I kinda know what I’m doing.
The reality here is simple actually. Try to get another -better- job and, when you succeed, you can consider yourself “ready” because your peers evaluated your skills and they consider you good enough for the job.
Self doubt happens, don’t worry. Look to learn your tools, find good teachers and mentors, but don’t let it stop your tries for better positions.
While this sounds right, it is probably a path to depression. At this point I’m pretty much qualified for any web dev job I want, and I know I’d be one of the best hires they ever made, but I also know the interview gods are fickle bastards. I can easily see myself getting a string of rejections and taking a hard hit to my mental health.
An interview is not a fair assessment of your skill and fit, it’s just the best tool we have for the job. Therefore, don’t let the outcome of interviews tell you how good you are or what you’re ready for. Imo you kinda just know these things.
As for OP, sounds like they’re maybe still learning rule 1 of software development; the job is 90% figuring out how to do shit, it’s not actually so much about what you already know, although that certainly helps with the figuring out part. Once you’ve figured out how to figure out most of the problems that come up in your job, you’re more than ready for a new challenge, if you want one.
The problem with small shops, and I have a lot of experience here, having spent my first ten years in a development shop where I was the only developer, you need exposure to other environments, other ideas, other technologies and frameworks in order to grow.
I would be looking for other jobs right now. It might take a while in this environment (I’ve got 25 years experience and been out of work for 3 months, so it’s rough finding a job now) and you aren’t going to really grow while you’re stuck where you are, unless you are learning from an expert in a lucrative niche (and that’s still dangerous long term if that niche dies - I spent half my career on Lotus Notes and worked hard to redefine myself as a Java dev).
If it takes you a year to find the right opportunity, it’s best to start now, right? That said, you’re a junior developer and it takes probably 5-8 years of experience to become a senior dev and command a reasonable salary.
Thank you.
I think you’re right about not gaining experience outside of our tech stack right now, as we consult for various clients but the boss / lead is a certified genius (not even being hyperbolic) who has refined our stack so much that a lot is obfuscated away and each new project starts from a clone of the last.
I will say it’s been nice to learn C# .Net, but I honestly don’t understand how the whole applications tie together and I’m just building in our conventions.
I do feel like I can grow more here and really hone the skills in terms of decision making, best practices and such. It’s just overwhelming at times when he says just do X, Y, and Z but in a way that makes sense in his head but I need things breaking down a little more.
I think you’re also right in starting looking now for the next role and even if it takes a while it’s good to hone my interview skills as this is somewhere I really do suck. I’m not really after a massive salary, just something more than I could get if I stayed working the bar at Apple, as I am solving problems.
I should add as well that it is incredibly relaxed and the company has been amazing in making concessions for me in terms of working from home more due to ongoing car issues and the way they support my neurotic nature and will even phrase things in a way as to remove any ambiguity.
A good work environment is extremely nice. But there needs to be a pathway to getting the big bucks. That might be a worthwhile conversation to have with your boss - what he needs to see from you to get promoted. Arm yourself with average salary information and ask what it will take for you to get there. And in a small company that might not be totally in your control. Could require a certain amount of growth or whatever. But if you have a great work environment and a great boss I suspect he’ll be open to that conversation.
Thanks again.
I just don’t think it’s a possibility here, as even the owners who are very smart tend to not be after large salaries. They do enough to have a decent life and will turn down clients if we have too much on and don’t lead lavish lifestyles. Obviously I don’t know what they pay themselves, but they’re not flashy and more just want to do what they love.
The same for promotion and such, it’s two bosses and five developers. We don’t change the clients crazy fees and we will always do right by them, even if it means months more work for no more fees. Rare I guess to work for a company that will do what they believe is the right thing to do and not what brings in the most money.
Now.
Nothing is stopping you from testing the waters and applying to jobs constantly until you find something better. Maybe keep a dream job or two in your back pocket until the timing is perfect, but may as well apply to other places to test your marketability.
You’re always gonna feel stupid. Once you master this part of your job you’ll feel stupid about the next part, it never stops.
Honestly, your job doesn’t matter. Study the absolute hell out of leetcode and do mock interviews. Then, when you feel confident you’ll know you’re ready.
One year is nothing.
Learn as much as you can from the people around you at your current position.
Find a new technology or existing one you want to improve/learn and create a project out of it that you can do at home.
Look for ways to improve your productivity.
Become a SME.
One day you will own a project, helping the new guy and be the person people come to if they have questions.
Put in the time. You’ll find your way.
Thanks.
Yeah you’re right one year is nothing, I have a tendency to overthink and want to know what the future will hold.
I am planning on learning more about the security side as this is something we don’t offer and think it could be a great addition for clients to not have to pay for their own pen testing etc.
Plus the boss does a lot with LLMs so I’ve been showing willingness to learn more about integrating these and he is more than happy to guide me and show me the cool things he’s built for us to use.
Just do it. Let them tell you.
It’s never too early. If you see an interesting job posting reach out and go thorough the process. At worst you learn a bit about what they were looking for and gain some interview experience. At best you get a job offer. Even if you decide not to take the offer you learn a bit about the positions available to you.
It costs effectively nothing to apply. Just a few hours of your time.
I also started on a very small company. Worked there as Junior developer for about 3 years. I was on the same spot as you are right now. One day, I received a call from a friend who started working on a bigger company in a different state (I live in Brazil), saying they were hiring. I figured I could at least try their technical tests to see where should I improve.
So I applied for the junior position. They thought my test solution was good, so I got to the interview phase. To my surprise, the interview was not for the junior position, but for the medior one (don’t know the correct term, but higher than junior but lower than senior), and receive the job proposal on the next week.
I agree with @[email protected]’s comment: “you need exposure to other environments, other ideas, other technologies and frameworks in order to grow”. And it goes both ways. Without testing yourself, you’ll never know how much you did grow and where you are.
So, my advice to you is: do not wait until you feel “ready” to do the move. It may “click” too late. If you want to move on, just do it. At least you will test yourself, and know how to correct your course, if you need to aim higher ou lower than originally intended.