Bartosz Jedrzejewski is a Technical Principal at Scott Logic specialising in microservices and cloud architectures. He is a passionate advocate of the DevOps culture and has a strong mathematical, technological and financial background. Author of his own blog. He is interested in working on dynamic projects with other motivated people. Never stops improving his knowledge and learning new skills. Fascinated by trading and application of technology in finance.
Java Daily: How do you choose a framework for a project?
Carefully, would be my answer! You need to ask yourself some critical questions, my short list would be: “Is this a personal project or a team project?”; “How large is the team?”; “What frameworks are already in use by the organisation?”; “What does the team prefer?”; “Microservices or not?” and so on… Based on these you can make a decision (if you are the decision maker).
I usually go with Spring, since this is my main area of expertise, but I don’t mind trying something different. Recently I have been experimenting a lot with microframeworks and would certainly recommend them for some projects.
Java Daily: What is more important: an optimal algorithm or code that is easier to read?
Bartosz: I want to re-define what “optimal” means here. I would call an algorithm “optimal” if it were the easiest to read algorithm that is still fast enough for the job! I would call that optimal. Based on that definition you should always use the optimal algorithm! In 99% of cases that would mean the cleanest style, in 1% that would mean being extremely focused on performance.
Java Daily: Could you share an example of someone you consider successful and why?
Bartosz: I consider my wife a successful person. You don’t need to be famous to be successful. If you have managed to get a degree in a foreign country, find a balance between career and family and still find time to exercise that is a significant success! I think many people try to define success by how much money they make, how many twitter followers etc. They try to define success as being publicly celebrated/rewarded. Rather than that success should be defined as setting personal goals and reaching them. Anyone who can do that repeatedly is a successful person, as they experience success often!
Java Daily: What features would you add to Java if you had the chance?
Bartosz: I have one significant annoyance with Java, and that is lack of support for a large decimal number on a primitive level (think primitive BigDecimal, or C# decimal with a bit larger range). It often makes writing financial or algorithmic code in Java a bit annoying, often resolving to either BigDecimal as mentioned earlier or doing smart things with long and int. Adding this “decimal” primitive would save many people much time! Other than that Java is excellent.
Java Daily: Do you expect Java to add more feature to support AI development?
Bartosz: I don’t think Java as a language is going to change much to accommodate AI specifically. One of the design ideas behind Java is keeping the language reasonably lean and straightforward. Where I think the AI support will come from is the community, and I am certain that we will see a lot of exciting things in this area. Java has one of the largest programming communities out there, and they will not be sitting idly when the AI revolution is starting!
Java Daily: What was the biggest challenge you had to overcome to achieve what you have today?
Bartosz: The main challenge to achieving anything, be it having a successful blog or degree from a university is finishing what you start! Before becoming a prolific blogger I would start many projects and end up not quite finishing anything, having nothing to show for it. I think many people struggle with this personal challenge and figuring out how to crack it is key to reaching your potential. I would like to mention here a book called “The War of Art” by Steven Pressfield that opened my eye on the idea of “resistance” and fighting it.
Java Daily: What are the 3 most important factors for the success of a software product?
Bartosz: One fun way to answer would be to quote Steve Balmer – “Developers! Developers! Developers!”, but that wouldn’t be entirely true. Perhaps “People! People! People!” would be much better! What I mean by that is that absolutely most important factor for success is the delivery team (including the product team, developers, testers, designers, etc.) as the right mix of people can make a potentially simple idea a runaway success- just think about Slack! To get more technical, the second really important aspect is being able to release early and release often. DevOps culture was shown to have a demonstrable impact on the financial success of companies. I believe that this is because DevOps culture helps deliver a successful product.
Last but not least is the funding. Even if you have a great team and a great culture, but you force them to work 80 hours a week or don’t provide basic resources, you may simply fail to deliver. There are always only two ways around it- either increase the funding, or reduce the scope. If the money is tight, make sure that your scope is laser focus and that you release as often as possible!
Java Daily: Do you have any final words you want to share with our readers?
Bartosz: Thank you for giving me a chance to share my thoughts on these things with you and your readers. Also, I would like to say thank you for frequently featuring my articles on your website!
Anything you want to share with Bartosz Jedrzejewski? What features would you add to Java if you had the chance? Who would you like to see featured next? Let’s give back to the Java community together!