Johannes Brodwall, principal consultant, Brodwall IT Services
Who am I?
During the days, I work as a lead Java architect at BBS. However, to
provide variation and inspiration, I enjoy doing consulting work
during my spare time. I am primarily looking for opportunities to
conduct training courses, system analysis and improvement, and
architecture advisory services.
I am among the most skilled architects/developers in the Oslo region,
and have extensive experience from large projects. I have solid experience
conducting courses and presentations and creating Java enterprise solutions.
I am engaged in growing the software development community in Oslo, and
have been organizing the Oslo XP and Agile
Meetup, an Agile User Group with monthly meetings, for two years.
I am passionate about quality and rapid iterations in software. I believe it's
worth spending considerable effort to discover how to use existing tools
optimally instead of reinventing technologies. Knowing how a piece of software
works in depth is the key to using it effectively and safely.
Key Expertise
- Application Architecture
- How do you construct a large scale system that can handle the constraints of your staff, your technical environment and currently available technology?
- Technology selection
- What products are available that will help you develop software faster now? How to you introduce open-source into an organization? I wide and deep knowledge of the technology spaces Java, .NET, C++, Ruby and databases.
- Security
- How do you analyze your system's threat profile? How do you avoid common coding and architectural mistakes that will leave you exposed?
- Automated Testing
- How do you write unit tests for a new or existing system? How do you test database, web pages, interaction? How do you test requirements?
- Java
- How does the Java language work? What libraries are available? How do you use Java for your greatest advantage?
- Databases
- How do you create good models in a database? How do you interchange data between your database and application?
- Process
- What is the possible benefits of agile development and extreme programming? How do you achieve them? What stands in your way?
- Presentation
- I have a pedagogical, energized and engaged approach to presentations for small and large crowds. I speak Norwegian and English at a native level.
Services
Introducing Unit Testing into Your Codebase
Unit testing is the cornerstone of agile development practices. Once you have this in place, you can start making incremental improvements to your code, architecture and process. But many organizations find it very hard to introduce testing in an existing codebase. I can help:
- (Optional) An evening introduction to testing for your organization
- Initial review: We set up a few hours to go through your codebase and decide on your testing strategy
- Intial test (off site): I write the first tests for your codebase. The tests will run and exercise about 1000 lines of code in your existing system. This is on a "no cure, no pay" basis: If I don't present a running test case for your system, you will not have to pay anything.
- Presentation of findings: I show you how to create similar tests for your codebase and how to get started.
- Follow-up: Pair programming sessions. If you encounter problems while writing tests of your own, I can follow up with a helping hand. This is on a "no cure, no pay" basis: If I can't get your test to pass, you will not have to pay anything.
- (Optional) Continuous integration: Once you have gotten testing up and running, it is time to automate it. I work with your engineers to get a build server up and running.
- (Optional) Architectural improvement: Once you have a stable foundation, you can improve your architecture. I can show you your current best areas of improvement.
Contact me for a program customized for your needs. (Only available for Java)
Project Architectural Kick Start
Are you about to start a new project with Java, .NET, or Ruby? Are you unsure as to what technology to choose? I can help you avoid common traps and choose technology and methods that will save you time and money. Contact me for a program customized for your needs.
Ruby on Rails
Ruby on Rails provides hyperproductive web development. See my Series of Articles to learn more about Ruby on Rails.
I am currently giving this course through Programutvikling in Oslo. My next course will be September 30th to October 4th. You can read more about the course at Programutvikling's web site.

Other courses
I have the necessary material and skills to conduct the following
courses. I can provide training ranging from one hour to about a
day.
- Introduction to test-driven development: Get your developers going with the most productive technique currently available to us. Based on a presentation I have used on several conferences, user group meetings, and in-house presentations. I can adapt this presentation to your specific needs.
- Agile Java Frameworks: Using J2EE frameworks like Spring, Hibernate, Maven, and more in enterprise applications.
- Custom made: I can provide custom made training within my areas of expertise.
Availability
Evenings or up to 4 days per one-month period. Daytime engagements must be booked at least 2 weeks in advance.
Experience
Project highlights
- BBS, STAY (2004-2007)
- Lead Java Architect and Evangelist for a large project. Hibernate, Spring, J2EE, JUnit. Technology selection, security, test strategy and programming.
- BBS, Nettbank (2004)
- Internet banking. Web sevices. Unit testing. Integration testing. Automation. Java. Tomcat.
- Chat.no (2004-2006)
- Full technical responsibility for development, deployment, monitoring, security of online chat service. Unit testing, automation. Applets.
- PetroOnline (2003-2004)
- Architect, technical lead and project manager for redevelopment of a petroleum depot automation system. C#/.NET. NUnit.
- Telenor (2002)
- Worked as developer on Telenor's mobile payment initiative. Java, EJB, networking. Integration testing.
- Ericsson (2000-2001)
- Worked as a developer on the team implementing a H.322 IP Telephony proxy. H.323 IP telephony. Java concurrency. RUP.
- Systek (2000-2003)
- I was employed as a consultant in Systek for 3 years. My responsibilities included software architecture, coaching. Critical technologies: J2EE, Unit testing, Extreme programming.
- Accept Data (1999-2000)
- Worked as a C++ developer on the Win32/MFC-based replacement of existing backend system for financial applications. C++. Double-entry bookkeeping, Database.
Presentation Highlights
Here are some of the presentations I have given on more than one occasion.
- JavaZone 2001-2006
- I am a regular speaker at JavaZone, Norway's largest developers' conference. My presentations have included Unit Testing, SOA (video available), Java versus .NET (video available), J2ME, and enterprise software architecture.
- Test-driven development
- I have introduced Test-driven development for several organizations and at two conferences.
- Introduction to Ruby on Rails
- What you can do with Rails, and how to do it. Video recording available from NUUG Site (in Norwegian)
- Java Safari
- Introduction and overview of Java and Java Technologies. Held for multiple companies in 2001-2003.
- Introduction to Extreme Programming
- The basis of extreme programming, and how to get started.
- Organizational challenges with Open Source
- The legal and organizational impact of adopting open source.
Bibliography