Blog

Java Architect (SOA/ESB)

Looking for a strong Java Architect to help lead a team of developers in Midtown. The Java Architect should have a strong background designing SOA and Enterprise Service Bus to be consumed by web applications using Java Technologies.

Required Qualifications:
• 5+ years of IT Solution Architect/Lead experience
• 5+ years of overall technical exposure on SOA,Middleware,Messaging,API and Application services
• 5+ years of experience in the role of a Solution Architect with demonstrated experience in developing and applying architecture blueprints and aligning projects to enterprise standards
• 3+ years experience delivering using Agile Methodology.
• Ability to multi-task and rapid context switch between Applications,programs and architecture initiatives.
• Ability to assess the impact of architecture changes on the business,application relationships and information flow
• Complete understanding of the software development lifecycle – must have participated on many projects through their complete lifecycles (requirements,design,development,launch).
• Strong ability to facilitate collaboration among senior technical team members and senior business leaders
• Excellent interpersonal and communication skills.

Posted in ajug_job

Snr. Java Developer – Long-term contract

A Telecommunications client of ours in the Lawrenceville area has an immediate need for a Senior Java Developer. This is a long-term contract,currently slated to go a year,but with the strong potential to go much longer.

I’ve included the job description below,if interested please email me at mmcdill@apexsystemsinc.com.

Description:
As a scrum team member,work to implement and resolve all assigned User Stories and tasks.
Be a quality advocate in the team,utilizing TDD and BDD methodologies; ensuring all test automation tasks are being completed for all user stories.
Validate and document completion of developed automated tests and application source code.
Automate test cases as assigned. Verify and or implement fixes as assigned by scrum team.

Candidate MUST Requirements:
• Ability to work well with others in a team environment
• Experience working in Agile Scrum teams
• Strong 5+ years experience in Java core development and Java automated test development environments
• Strong scripting language ability in the following: JUnit,Cucumber-JVM
• Strong North Bound API development and automation using : Web,SOAP,REST (RESTful API) )
• Experience with JSON,XML (Functional knowledge testing SOAP)
• Experience with Selenium WebDriver,SOAP UI
• Experience with Continuous Integration environments and frameworks,preferably Jenkins
• Experience working in multi-developer environment,involved in code review process,branching/releases,etc…
• Experience in system and functional software test automation development
• SSH,TCP/UDP,HTTP and Application Layer Protocol implementation Knowledge
• Strong Maven and Eclipse IDE experience
• Experience with mocking frameworks such as mockito

Desired (Pluses):
• VMWare
• OpenStack
• Experience with security/authentication related testing (I.e. SSL/TLS (HTTPS),TACACS,LDAP,RADIUS,etc…)
• SCM Tools: SVN,GIT
• Rally
• SQL,Postgress,Oracle
• noSQL (Apache,Couch DB,Couchbase)
• JMeter
• Linux,Unix
• Shell Scripting
• Java RMI
• UDP,HTTP and Application Layer Protocol Implementation Knowledge
• CCNA,TCP/IP Network knowledge
• Message Queuing Technologies
• Python

Minimum Education Preferred
• BS Computer Science/Engineering combined with 4-7+ years development experience

Posted in ajug_job

Lead software systems engineer

This is a great opportunity for a can do problem solving leader. You will be part of a large team of developers,BA’s,QA’s etc. We are looking for a self starter who works well with BA’s and has the ability to write detailed design docs along with hands on coding. This is a highly visible project for this large wireless communications company located in Alpharetta,GA. This is a highly complex application as it is the front line rating engine for all call records throughout the country…super high volume transaction processing.

If you are interested,I would like to speak with you personally about more details of this group and the application. Please feel free to contact me at 770-416-9900 x234…Paul

Below is the canned job description:

Design and code from specifications,analyzes,evaluates,tests,debugs,documents,and implements complex software apps
– Uses coding methods in specific programming languages to initiate or enhance program execution and functionality
– Participate in the evaluation,recommendation,and selection of software solutions
– Interface with different departments within the organization regarding new deployments
– Research/analyze data processing functions,methods and procedures
– Excellent JAVA knowledge.
– Oracle SQL experience
– Experience with Mediation Zone is a huge plus.
– Experience with wireless rating a plus.
— comfortable multitasking and shifting work-focus based on prioirty
-Requires a bachelor’s degree in area of specialty and at least 8-10 years of experience in the field or in a related area

Posted in ajug_job

Windows Active Directory and Systems Administrator

Based in Atlanta,Vanco Payment Solutions is a leading provider of electronic payment services to over 30,000 clients. The company has earned a reputation as a trusted industry leader by offering services that combine an unparalleled mix of technology,security,and superior customer service.

Vanco Payment Solutions is seeking a Windows Active Directory and Systems Administrator professional to join its IT team. The Windows Active Directory and Systems Administrator is responsible for implementing,configuring,maintaining and monitoring system performance and capacity of all Windows Active Directory servers,and all other Windows systems in our office environments. Primary role of implementing,and supporting a new Active Directory infrastructure within the enterprise. In addition to Windows System administration duties,the admin will provide in desktop and service desk support to our Atlanta Corporate Headquarters and other office locations. This individual works as part of a project team and is also responsible for root cause analysis of problems,selecting and implementing system administration tools.

ESSENTIAL JOB FUNCTIONS:

Consultant to work as a team member under general supervision
Implement,administer,and maintain an enterprise Active Directory Environment
Flexibility to work early mornings and late evening for specific project necessities
Provides close technical support and input on the application of Microsoft technology to the enterprise
Provide Tier 1 & 2 Support to the service desk,to include remote sites.
Assist in the design,planning and implementation of Windows and Microsoft solutions
Provide desktop and help-desk support to end-users
Monitor and tune Windows systems to achieve optimum performance levels in standalone and multi-tiered environments
Implement IT Security Policies and Guidelines within their area of responsibility
Install third-party applications and associated software

EDUCATION AND REQUIRED SKILLS:

Expert level ability to implement,and administer an enterprise Active Directory Deployment
Experience working in an fast pace enterprise level environment
Experience with Windows Server 2012,and 2008
Experience with Microsoft Office,DHCP and Terminal Services is essential
Knowledge of best practices for Windows server security
Experience installing,monitoring and troubleshooting Windows servers and Microsoft applications
Knowledge of TCP/IP networks,connections,wiring and cabling,and network management (including DNS)
Experience with various backup solutions
Experience with SAN and NAS and ISCSI technologies
Horizontal and vertical scaling for performance and/or high availability
Sound general knowledge of IT systems and Data Center facilities
Experience with migrating from an existing domain to a new deployment
Microsoft Powershell experience required
Degree qualifications or experience in a relevant discipline plus 2 years’ experience in a Microsoft Windows AD Administrator role and Windows System Administrator,or 6 years’ experience at equivalent level of work
Experience with VOIP telephony systems a distinct advantage
Microsoft certification is preferred

DESIRED SKILLS:

Demonstrated analytical and problem solving skills
Ability to work in a project-based team environment with minimal supervision
Must be able to handle multiple tasks at one time,in a fast paced office environment handling multiple demands
Ability to meet deadlines and reprioritize work to meet changing requirements
Strong organization and time management skills
Customer focused with dedication to customer satisfaction
Able to communicate effectively to people at all levels of the organization

For more information,or to apply now,you must go to the website below. Please DO NOT email your resume to us as we only accept applications through our website.

https://vancopayments.hirecentric.com/jobs/81166-23362.html

Posted in ajug_job

Every build is special

Since Semmle's business involves integrating with our customers' builds, I'm very sympathetic to Tim Boudreau's perspective on simple plain-jane builds that just work:
But with time and enough consulting customers, you grow a real appreciation for projects you can simply check out from version control and build.

It's always a relief when someone wants to, say, build a stock iPhone app using xbuild. It's often fine when they want to build a C program using msbuild. Third place is Maven, for a simple Java program; I say third place, because hardly anyone uses it without loading it with a bunch of plugins that fundamentally change how it works. But still, at least the overall project structure is somewhat standardized.

In my modest experience, I only really see the above for relatively small and simple projects. As "Scott" puts it in the first comment at the above link:

The idea that your build is "not as special as you think" more often false than it is true.

I just skimmed a code base I have handy, and here are some of the things I see in there that break the mold of any off-the-shelf build tool:

  • It uses parser generators, such as ANTLR.
  • It's mainly a Java code base, but there is a little bit of code in all of: C, Objective C, JavaScript, Scala, C#, and Python.
  • It uses a home-grown stack trace obfuscator and de-obfuscator that involves bytecode rewrites on the deployed jars.
  • It includes its own version of zipmerge, with options not available in the open-source version.
  • It uses the JIT support in mini-Lua to generate machine code that is then compiled into string literals in a C program.
  • It includes a proprietary query language and numerous queries in that language. Those queries get compiled during the build, using a query engine that is also compiled during the same build.
Posted in Blogroll

Every build is special

Since Semmle's business involves integrating with our customers' builds, I'm very sympathetic to Tim Boudreau's perspective on simple plain-jane builds that just work:
But with time and enough consulting customers, you grow a real appreciation for projects you can simply check out from version control and build.

It's always a relief when someone wants to, say, build a stock iPhone app using xbuild. It's often fine when they want to build a C program using msbuild. Third place is Maven, for a simple Java program; I say third place, because hardly anyone uses it without loading it with a bunch of plugins that fundamentally change how it works. But still, at least the overall project structure is somewhat standardized.

In my modest experience, I only really see the above for relatively small and simple projects. As "Scott" puts it in the first comment at the above link:

The idea that your build is "not as special as you think" more often false than it is true.

I just skimmed a code base I have handy, and here are some of the things I see in there that break the mold of any off-the-shelf build tool:

  • It uses parser generators, such as ANTLR.
  • It's mainly a Java code base, but there is a little bit of code in all of: C, Objective C, JavaScript, Scala, C#, and Python.
  • It uses a home-grown stack trace obfuscator and de-obfuscator that involves bytecode rewrites on the deployed jars.
  • It includes its own version of zipmerge, with options not available in the open-source version.
  • It uses the JIT support in mini-Lua to generate machine code that is then compiled into string literals in a C program.
  • It includes a proprietary query language and numerous queries in that language. Those queries get compiled during the build, using a query engine that is also compiled during the same build.
Posted in Blogroll

Still want to go to DevNexus 2015 (for free)? Room Volunteers Needed!

We are still looking for a few more room volunteers to help us with the monitoring and basic quality control of the breakout session rooms at DevNexus 2015 next week.

In total we need 24 volunteers (12 tracks x 2 days) for the 2 main conference days (March 11 and 12)  It will be first come, first serve - So please apply ASAP. We will be accepting room monitors from now and up until Thursday, March 5th.

The room monitor will be responsible for:

  • Getting a copy of the presentation slides from speakers right after each session
  • Making sure speakers don't go over their allotted time
  • Communication of any room related issues (power, sound , temp... etc).
  • Count the attendees in each session
  • Provide some feedback in regards to the observed sessions

A volunteer will be in charge of a single track room for one full day. Then s(he) will be free all day on the alternate conference day. For example, you monitor the Agile session room on Wednesday, then you are free to attend any session on Thursday.

Please contact info at ajug dot org if you are interested with the following info:

  • Day and Track
  • Alternative Day and Track 
  • Name
  • Email
  • Phone

Also, let us know if you have any further questions.

THANKS!

Posted in Blogroll

Still want to go to DevNexus 2015 (for free)? Room Volunteers Needed!

We are still looking for a few more room volunteers to help us with the monitoring and basic quality control of the breakout session rooms at DevNexus 2015 next week.

In total we need 24 volunteers (12 tracks x 2 days) for the 2 main conference days (March 11 and 12)  It will be first come, first serve - So please apply ASAP. We will be accepting room monitors from now and up until Thursday, March 5th.

The room monitor will be responsible for:

  • Getting a copy of the presentation slides from speakers right after each session
  • Making sure speakers don't go over their allotted time
  • Communication of any room related issues (power, sound , temp... etc).
  • Count the attendees in each session
  • Provide some feedback in regards to the observed sessions

A volunteer will be in charge of a single track room for one full day. Then s(he) will be free all day on the alternate conference day. For example, you monitor the Agile session room on Wednesday, then you are free to attend any session on Thursday.

Please contact info at ajug dot org if you are interested with the following info:

  • Day and Track
  • Alternative Day and Track 
  • Name
  • Email
  • Phone

Also, let us know if you have any further questions.

THANKS!

Posted in Blogroll

Writing a Maven Plugin Unit Test

If you are trying to write a Maven plugin with unit tests and following Apache’s Maven documentation you may end up with a dependencies like this :

 <dependencies>
        <dependency>
            <groupid>org.apache.maven</groupid>
            <artifactid>maven-plugin-api</artifactid>
            <version>3.2.5</version>
        </dependency>

        <!-- dependencies to annotations -->
        <dependency>
            <groupid>org.apache.maven.plugin-tools</groupid>
            <artifactid>maven-plugin-annotations</artifactid>
            <version>3.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupid>org.apache.maven.plugin-testing</groupid>
            <artifactid>maven-plugin-testing-harness</artifactid>
            <version>3.2.0</version>
            <scope>test</scope>
            <type>jar</type>
        </dependency>

    </dependencies>

Because that is what their docs say. Their docs are lies straight from the pits of hell. Your dependencies section should look like this :

<dependencies>
        <dependency>
            <groupid>org.apache.maven</groupid>
            <artifactid>maven-core</artifactid>
            <version>3.2.5</version>
        </dependency>
        <dependency>
            <groupid>org.apache.maven</groupid>
            <artifactid>maven-artifact</artifactid>
            <version>3.2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupid>org.apache.maven</groupid>
            <artifactid>maven-compat</artifactid>
            <version>3.2.5</version>
        </dependency>

        <!-- dependencies to annotations -->
        <dependency>
            <groupid>org.apache.maven.plugin-tools</groupid>
            <artifactid>maven-plugin-annotations</artifactid>
            <version>3.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupid>org.apache.maven.plugin-testing</groupid>
            <artifactid>maven-plugin-testing-harness</artifactid>
            <version>3.3.0</version>
            <scope>test</scope>
            <type>jar</type>
        </dependency>
    </dependencies>

I discovered this after trying to debug the following stack trace

Caused by: java.lang.ClassNotFoundException: org.apache.maven.execution.MavenExecutionResult
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 23 more

and only finding a bug in Maven’s tracker marked closed as a duplicate. Duplicate of what? Who knows. Eventually I had to break down to the tried and true method of copying code from a project that works. A big thanks to simpligility and the APL.

Posted in Blogroll

Another rant on Android Studio

There are two types of software in this world, software people complain about and software nobody uses. I use Android Studio and I will murder before going back to Eclipse, but my preferred build system for Android is still Maven. This is not going to change for a very long time because the Gradle integration tooling (IDEs) and the Android Gradle ecosystem aren’t caught up. There are many better tools and plugins which work wonderfully in the Maven ecosystem and fail utterly in the Gradle Ecosystem.

When the correct plugins exist, it is more pleasurable to work in Maven than Gradle full stop. The tooling and autocompletion around Maven is much much better. As a example, I have auto completion for artifacts in my IDE of choice in Maven which is regularly indexed from Central. In Android Studio I do not have this feature. In my preferred IDE, NetBeans, Maven projects are opened unaltered with no weird side effects such as creating dot directories or IDE files. In Android Studio importing an Android Gradle project is like playing roulette. Do I open the project or do I import it? Will Android Studio find my code this time or do I have to close the IDE, delete the directory, re-clone, and try again (an extreme example but this is in comparison to NetBeans where opening always works).

The ecosystem gulf between Maven and Android Gradle is terrifying. Code formatting, license plugins, automated testing harnesses, code coverage reports, etc all JUST WORK with Maven and Android. Android Gradle forks and is incompatible with the Java plugin. This means that every project which exists in Gradle to perform some hideously boring task (i.e. manage license headers) has to be rewritten to include Android support. This doesn’t seem to be happening.

What can Android Studio do to get better? 1) Fix importing code. Don’t leave me with a useless project with just the Gradle view EVER. 2) Don’t drop .iml and .idea directories in my project EVER. 3) Fix auto completion when editing the gradle files. It is REALLY painful right now and trivial tasks (is this still the latest version of this library, is this groupId org.apache.project or org.apache, etc) requires a trip to web browser land instead of an Ctrl+Space to see what is in the drop downs. 4) Make the Android plugin depend on the Java plugin and work correctly with it.

In conclusion, I don’t hate Gradle, I don’t even hate the Android Gradle plugin. I hate the NIH which pervades the Android Gradle plugin and the break from the larger Java ecosystem that it represents.

Posted in Blogroll

AJUG Tweets

Follow @atlantajug on twitter.

Recent Jobs

AJUG Meetup

Developing Compilers and Tools for the JVM

May 19, 2015

This talk will cover implementing a compiler for a simple C based language as well as discuss the how tooling can be written to interact with the JVM and Java ecosystem.

Location:


Holiday Inn Atlanta-Perimeter/Dunwoody

4386 Chamblee Dunwoody Road,
Atlanta, GA (map)