Junior Software Developer
Mthree are working with a leading Investment Bank based in Plano. We are looking for entry-level Software Developers to join the Mthree team and work onsite with our top tier banking client. This opportunity also involves a four week paid training period before deployment onsite with the client.
- Bachelor Degree in Computer Science or related field
- GPA of 3.0+
- Object Oriented Programming experience (Java, C++, C#)
- Experience of Linux environment .i.e. administration and basic infrastructure.
- Technical background in data modeling and databases, such as Oracle, Sybase and DB2 including SQL de-bugging and performance tuning
- Comfortable with scripting such as Perl and Shell
- Incident Management
- Strong verbal and written skills required to interact with global teams and customers
- Good organization and coordination skills
- Strong problem-solving skills and an ability to learn rapidly on-the-job
The specifics of a software developer’s role will vary a lot from team to team, but these are some of the more common tasks:
Obviously. The technology you use will depend on the team, but common languages are C# and Java. Newer code should be following best practices (TDD in an agile team, Dependency Injection, SOLID principles, for example).
This involves an initial high-level design of the main modules with an overall picture of how the parts fit together. The language, operating system, and hardware components should be known at this time. Then a detailed or low-level design is created, perhaps with prototyping as proof-of-concept or firming up requirements.
Peer Review/Sanity Checks:
Checking another team member’s code before it is added to the main code repository. Casting a second pair of eyes over some code is a good way to spot obvious issues that could arise. A peer review will either end with a pass, or will be returned with some constructive criticism about how the code should be improved in order to emphasize personal development for the developer.
Creating tables and stored procedures, typically SQL based (Microsoft, Oracle or MySQL).
You may find yourself fixing someone else’s code, which can be rather challenging if you’re not familiar with the codebase, but it’s always satisfying once fixed.
If a user is having an issue, and production support is unable to assist (maybe because it’s a complex bug), then you will be the last point of escalation.
Business as Usual (BAU):
Keeping systems running, watching out for potential issues. A specific example would be rebuilding database tables if they’re not performing well, or setting up new servers to run your team’s software.
To deploy some code to production, you may need to raise a change request a few days in advance so that other teams dependent on your system are aware of the pending changes, and can contact you if required.
Prior to a piece of software being released into the live production environment, the work will be tested. Developers may be asked to write test scripts to automatically test their work, in order to check for bugs. All developers at some point have introduced a nasty bug into some code that they are working on. So all developers spend a significant amount of time writing tests and ensuring that the tests are valid, purely to cover themselves and their team.
Teams following an Agile methodology will have sprint planning sessions, where the decisions are made about what features should be worked on next. There will be also sprint retrospectives where the teams discusses what they did well, and what could be improved on. Technical decisions meetings will be a forum for team members to put forward ideas about changes to the technology that they use for software development.