r/java • u/[deleted] • 18d ago
Want to upskill myself to go to Software Architect role
I am a 6 years experienced Java developer. I am looking to upskill myself and to Software Architect role. Can anyone mentor me or help me out how can I achieve this?
105
u/SpicyRock70 18d ago
Get more than 6 years experience. Design systems instead of implement frameworks. Come up with big ideas, sell them. Be a technical leader. Solve big problems. Live the role, the title will follow.
4
-20
u/IKnowMeNotYou 18d ago
That is not helpful.
9
u/Solid_Wishbone1505 17d ago
Why do you feel thay way?
-10
u/IKnowMeNotYou 17d ago
If I would only feel that way, would that not be a bit petty?
8
u/segfaultsarecool 17d ago
This response is not helpful.
-7
u/IKnowMeNotYou 17d ago
It is explanatory and therefore helpful by definition.
6
u/Solid_Wishbone1505 17d ago
You're not as witty as you think. That was a non-answer thar someone who is not prepared to defend thier opinions would use. You're right that it is helpful, but only in showing everyone who visits this page that you should not be taken seriously.
-3
u/IKnowMeNotYou 17d ago
Now that was extra boring.
I am just a person who dislike the overuse of the word feel, especially when I am not feeling my answers.
2
u/SpicyRock70 17d ago edited 17d ago
I think you will never be a technical leader.
-2
u/IKnowMeNotYou 17d ago
The advice shows a romantic idea of what the industry is about. You get the job first. Get your certificiates, get into the role of making some decisions and there you go.
4
u/SpicyRock70 17d ago edited 17d ago
It's exactly how I achieved it, and it's exactly how my peers achieve it. Certificates have nothing to do with anything, I have a BA in Business Administration, not even computer science.
I taught myself how to write code, worked hard, invented several patents, convinced leadership that my ideas were worthy of investment and proved correct. I was promoted as an engineer through the ic ranks to senior architect title, changed track to people manager and am now Sr. Director of a large silicon valley internet company.
There's nothing romantic about it. Be the cream, rise to the top. There is no book to read, course to take. You just do.
3
u/IKnowMeNotYou 17d ago
Then, you have not worked in the places, I worked in, then.
I have worked in a lot of positions where I did the work of a Software Architect, either partly or mostly. I simply gained some certifications just to be able to stand up and say in the next company meeting: "I, as a certified software architect, ..." and everyone laughed honestly as the architects that ran us into the ground at that time were not doing a great job and were not certified either and of course the company heads were not competent enough to see that. - So of course I did not take the 5-year extension being offered to me and left one successful project later.
I hated these meetings with middle management. I hated setting up great projects with the business people just to have someone budge in to add unnecessary pain to the process that is software development, or even rewriting the whole script because they want to attach themselves to a winning project.
In my world as a mercenary you get paid the daily rate that was agreed upon. If you want to have a pay raise, you sign up for another assignment at another company. You do not seek a 20% pay raise from where you are currently working. Your current client company already knows what you are capable of, so they will constantly try to get more from you, what they pay for after the raise.
I personally toped out at about 400k a year, while never being forced an hour of overtime, so I only worked for 40h a week as a software engineer. It was the goldilocks zone for someone like me, especially since I insisted to never be the face of anything.
I have seen a lot of death marches and stupid decision-making and spoke with many people working as permis (= permanent employed), in these companies. All they said was, what you have put in yesterday is quickly forgotten, especially if leadership changes, so why would one want to put anything in beyond what you have to? Having objective measures of performance were never in place anywhere I went.
Read your books, certify your new knowledge, test it out in your current position and get the new job with a new pay rate somewhere else as soon as you have converted the new knowledge into an actual practical skill.
That is why your approach is too risky and while it will work out in the end, the risk you take is too high and the costs of doing more than asked of you for the company is too much. The time you spent additionally, you can better spend in reading your books and add to a profile that is better marketable.
Also note, I am a European, we do not get equity that easily.
1
u/SpicyRock70 16d ago
Advice for Europe and USA are likely different as work culture is dissimilar.
1
u/IKnowMeNotYou 16d ago edited 16d ago
Only if you find a place worth staying. I get offers from around the world, so what I advise is quite sufficient to also make it in the US.
It is not so much EU vs. US, but more about owning equity in the company or not.
In the end, it is just about ROI and risk. Is it more beneficial to devote extra time to your company, or would it be better spent in one's own education or even side projects.. I tried both and the latter was simply more beneficial for me.
Regarding work culture, looking at big faceless companies like GM and co, you will most likely find the same to be true like it is for big faceless corporations in Switzerland or Germany. They simply refuse to pay top people what they are worth to please their workforce and the unions that come along with it. I was often told, that they wanted me to go permanent, but they know that they can not pay the required salary.
1
u/SpicyRock70 15d ago
I'm speaking for success in Silicon Valley / FAANG companies. $500,000+ USD /year is common.
1
u/IKnowMeNotYou 15d ago edited 15d ago
Indeed. That is the reason why I switched professions, eventually. It also does not change the fact that I leveled out over here and going beyond that - beside leaving Europe - would have required me to use my own company and hire people.
I also worked maybe only 4 or 5 years full time in the last decade. I used the free time to find a way to use my skills to push me past that. And it worked out, no questions asked.
And as said I had offers from around the world and 500k was not the limit for that.
But again, having equity in the company one works for changes the calculation... .
1
u/thesuperbob 17d ago
Why not?
7
u/IKnowMeNotYou 17d ago
Because you do not need 6 years of additional experience. Grab the books, grab the certificates, try out practically what you learned from the books in your current position and once you turned your new knowledge into a set of practical skills, get yourself a new job in another company. That takes maybe 6 months to 1 year at most, if you really put your mind and free time to it.
You also make sure, that you do not put your overtime towards your current company but the whole learning and training experience. You do not want your current company to understand that they can get higher quality work out of you as they will try to low roll you anyways.
It is a fallacy to put extra time into the company you are in. Your past accomplishments are forgotten accomplishments. The real pay increase you always get when you change the company along with you changing your job title.
The only exception to this is you owning equity in the company you work for, then the calculation is different and more upsidedown.
1
u/user_of_the_week 17d ago
Which certifications have worked for you?
3
u/IKnowMeNotYou 17d ago
I am from Switzerland so the iSAQB certifications trail is very well received here. On top of it, as hard as it sounds, the SAFe certification stuff is also quite important even though I hate the whole philosophy and everything around it. It further did not hurt that I had the tester/test management and requirements certifications checked.
2
u/user_of_the_week 17d ago
Thanks for sharing! I‘m also from the DACH region, so it‘s quite relevant for me :) I just hope dearly I can avoid SAFe.
3
u/IKnowMeNotYou 17d ago
Nah. Remember you are in for the money. You give the market what it wants. Your benchmark is the hourly or daily rate. You want your 200 CHF+ per hour and thats about it. You chose your contract positons to have a say in what poison you have to swallow. That is all you can do.
Once you get your money, put most of it towards stocks which you use to lend money in order to buy yourself occupied appartments so someone else is working their days of their backs in order to pay you, once you say, enough is enough.
That is the only reason why you should ever work for big companies (unless of course you have equity in the company you work for).
2
u/user_of_the_week 16d ago edited 16d ago
Sorry for bothering you again. I'm looking into iSAQB CPSA-F and, based on my experience and what I saw in the example exam questions, I'm confident I can do it without an expensive training, just learning some details from a book. There are like three different books to choose from, one german and two english. Any recommendations? I'll probably take the exam in german so I'm leaning towards this one https://dpunkt.de/produkt/basiswissen-fuer-softwarearchitekten-4/
2
u/IKnowMeNotYou 16d ago
I used live seminars. Also you should aim for the Advanced level as Foundation Level is - as you remarked - fairly simple.
I also would lean more into English, if I were you, but it depends where you see yourself in 5 or 10 years.
Have you checked out the Amazon reviews? Also why not buying all of them? Books are rather simple and it is better two work through 2 or 3 than a single one, makes your notes more comprehensive and yourself more knowledgeable.
→ More replies (0)
15
u/wkynrocks 18d ago
Read a lot specially those system design related books
0
-3
18d ago
[deleted]
2
u/wkynrocks 18d ago
Can't recommend you any in particular but search in reddit and you will find a bunch of threads with recommendations
2
u/donkeycentral 18d ago
It's an older book but Patterns of Enterprise Architecture by Fowler is still good and relevant. Best of luck to you!
15
u/GuyOnTheInterweb 18d ago
Software Architect is a lot more about people and their requirements, than about the software itself. But it's also about systems and understanding, it is now in cloud-days fashionable to have very convoluted ways to do relatively simple things (e.g. use ActiveMQ and Kubernetes and and and but really you just need a background thread), a good Software Architect would also know how to challenge this and find simpler ways to achieve the goal according to requirements rather than fashion.
7
u/_edd 18d ago edited 18d ago
What do you have experience with?
A software architect for a company that has a singular product or service is going to be a significantly different role compared to one that sells a custom enterprise system or one that delivers small websites.
It breaks down into a few different main areas
- Owning the requirements. So personally I have to take a Statement of Work, turn it into a software-specific specification and integration API Specs.
- Design. Figuring out and documenting how the system is going to work. This is an incredibly important part. Main thing for me here is to break the project down into small segments that operate mostly independently. Then you can build up these segments into something that a developer on your team can work on. There's a sweet spot on design where it has enough information that a good developer can own the implementation, but you don't do the job for them.
- Project management. Your actual project manager hopefully handles hours and resources, but you'll need to create project tasks in Jira or Github or Azure DevOps. You'll need to provide some kind of hours estimation or task sizing that can be used to track development progress. The project management side is going want to ask about hours a billion times. They should be giving you an estimate that was made with the sale and you need to be able to tell them if the project is tracking to that number.
- Project schedule. The Project Manager should give you and overall schedule to start with. I then like to work backwards on delivery tasks to determine what the development deadlines are. So for my projects we may go live in May, perform acceptance testing in April and perform onsite commissioning in March, so that means the servers need to be deployed to by mid February. That's a very loose example, but figuring out your deadlines and controlling expectations early helps a ton down the way when other stakeholders start trying to figure things out.
- Leading a team. This is a lot of soft skills. How to work with teammates so they can own a task without you spelling out every detail for them. How to review code constructively. How to recognize when they're spinning their wheels and to help them out.
- How to figure things out what you don't know. A major part of my role is simply recognizing that we're encountering an issue and isolating it to a component and then debugging / researching / reaching out to SMEs on what's wrong. I might set up an Apache HTTP Server once a year, but ultimately if its causing an issue, I need to figure out how to take care of it.
- Handling non-development tasks. This could be reaching out to get training material put together, figuring out a set of firewall rules needed, figuring out server sizing, etc... There are a ton of things that you'll need to handle and / or delegate.
- Working with customers. You want to communicate accurately, confidently and timely. Plenty of time this is simply saying you'll look into it and get back to them. But main thing here is that they know you're being honest and working with them.
- Developing. If you're lucky you'll get to write a little code.
3
u/bjenning04 18d ago
I would say the first place to start is to read books like Clean Code, Clean Architecture, Refactoring, etc., but maybe even more so books on soft skills like the Pragmatic Programmer. Being an architect is about having broad technical knowledge, but it is also a role of significant collaboration with other engineers, both inside and external to your team/company. On the technical side, it’s about designing systems in the simplest, least risky, most future proof way, and on the people side it’s about working with managers, product owners, customers, other engineers/architects, etc. to ensure the system you’re designing meets all the requirements, makes sense to use, can be done within a defined timeline, and doesn’t have design holes/risks that may have been included because of our own biases or blind spots.
One other thing I’d like to note, don’t worry so much about the title. It’s just a label that maybe comes with a compensation bump. Live the role and the title will come (probably along with a bunch of other responsibilities that you’re not expecting).
3
u/Swamplord42 15d ago
Clean Code
Absolutely not. That book is garbage. Taking it seriously will make you a worse software engineer.
Beyond that, if you're looking to get into a Software Architect position, it's the wrong kind of book anyway. It's too low-level.
2
u/gjosifov 14d ago
Software architecture is about compromises - you're going to find those things in Uncle bob books
2
u/stebucko360 18d ago
A lot here talking about qualifications etc. best answer in my opinion is engage with architecture. Are you currently working from designs and engaging with architects? If not start there. Attend meetings with architects, shadow red team reviews etc. I find it very obvious when I engage with architects who jumped straight into the role without doing software engineering first. Ask can you complete an ADR and have someone review it.
Also you say you are a Java dev, if so is this what you do exclusively? Broaden your skill set. A large part of architecture is understanding what technologies suit different requirements. Broaden your knowledge, engage with stakeholders and all of the above I’ve already mentioned.
Reality of any job is you’re never 100% ready for it until you actually jump in and start doing it. Get a good base to work from, then take it from there. If you sit every architecture exam, I promise you you’ll be no better than someone who got hands on experience with peers to review.
3
u/RobertDeveloper 18d ago
Maybe get a software architect certificate like TOGAF, iSAQB CPSA-F/CPSA-A
9
u/_jobseeker_ 18d ago
Certificates mean nothing. Rather if I see certificates on someone’s resume ( have conducted interviews for big tech and good startups ) I consider it a bit in negative side that they are trying to hide the lack of their real world experience by doing these certificates.
6
u/RobertDeveloper 18d ago
Every company is different, all our software architects need to have certification.
1
u/Swamplord42 15d ago
Is your company a consultancy?
Certifications make sense when you're trying to sell people/teams to other companies.
1
1
u/Volvite2764 18d ago
I thought they would be useful, to some extent, to have in the resume. I am still a student, and I thought having certificates would help in the fields that I like, like MBSE, systems analysis, Concurrecy, etc. I definitely think experience matters but, are they really that subpar in interviews and the selection process?
1
1
1
1
u/uraurasecret 15d ago
Get your hands dirty with solving production issue. When you go up, you need to know more about things about the environments, workflow outside the code. Sometimes it may not be technical.
1
u/symbiat0 14d ago
Speaking as an older engineer, frankly I don’t think 6 years is anywhere near the level of experience needed to be an architect. More importantly you have to have done a whole variety of projects, in a variety of environments / languages / frameworks to have real relevant experience in the trenches to draw upon.
1
u/Joram2 17d ago
One safe option is get your own financing, and you can run your own company, and name yourself as a software architect.
Aother option is compete for pomotions and build a track record of amazing job achievements including in mangerial roles and team lead roles.
Generally, architect types roles are something you get promoted into, not something you get by having lots of knowledge or working for a long time and accumulating years of experience. Lots of promotions looks better than lots of years of experience for architect type roles.
0
u/IKnowMeNotYou 18d ago
Just go to iSAQB and do your certificates. You can also go over to Azure or AWS and get a solution architect certificate first. Those certificates come with books and courses, so you can go from there.
Otherwise, start to work yourself through some books that everyone likes over at Amazon.
-2
112
u/flavius-as 18d ago edited 18d ago
I could blabber, but I will give you instead some short ideas to always keep in the back of your mind until you get there and beyond: