Tag Archives: midterm developer profile

Midterm Developer Profile

<midterm >

Programming at Its Best

The thoughts about programming after an interview with Grzegorz Trzmiel.

<Introduction>
The IT industry is growing at an alarming rate and I think it has crossed many people’s minds whether coding is something that they could start doing as well. However, is it worth all that trouble? Can you make a career out of programming? What parts are actually worth learning? In search of some answers, I talked to Grzegorz Trzmiel, who is currently a programmer at IBM. For this assignment I decided to interview this developer and create a more extensive “reflection post” that, through sharing his interesting experience and knowledge turned out to be a good resource for a programming novice such as me.

<So It Begins>
Grzegorz began his first job while still being a student at Warsaw University of Technology. At a software house, which specialized in IT projects for e-commerce, he worked as a junior programmer and wrote web applications in Java for international banks. He also learned some Clojure and JavaScript while working there. At the office, a great team leader and a high level of teamwork allowed him to develop his first good habits and focus on real-life projects. In fact, it helped him to develop his knowledge to a much greater extent than any of the positions he had during his undergraduate study.

After some time, he joined a hedge fund as a quantitative developer. In this company, he wrote applications trading in short-term contracts on stock exchanges throughout Poland. The position was fully independent; therefore, it was a huge responsibility. Interestingly, he did not only deal with the technical aspects of application development, but also was in charge of the creation of the trading algorithms themselves. After two years, he decided to change jobs and joined IBM in Warsaw. One of the sectors of the company provides analysis of large sets of machine data (logs, metrics, etc.). Every day, an impressive amount of data is being processed. Thus, the team programs and solves difficult, but also very interesting problems.

<Working at IBM>
Next, we discussed the skills needed and a profile of a person who is looking for a position such as Grzegorz’s. He underlined that, even though they do most of the programming in Scala, the company does not require its knowledge during the recruitment process. Special attention is paid to the ability to solve practical problems, knowledge of algorithms and data structures as well as concurrent programming. In fact, they are looking for people who are smart and experienced enough that they could work in different languages, as well as will be able to independently perform some more difficult and unconventional tasks. Personally, Grzegorz considers the essential skills to have as being able to communicate effectively and match your personality to a company’s culture. If someone can’t share his or her knowledge with others or is unable to get along with colleagues, that person will not be a good asset to the team.

Grzegorz considers the act of writing a code as a formal record of the method that is used to solve a problem. Of course, you can do it more or less elegantly and/or properly – it is a form of art. Nevertheless, for Grzegorz, the problems and the process of solving them are the most fascinating. What comprises this, among others, are: the need to understand a domain, analyzing possible solutions and choosing the best one. It should be remembered that truly difficult problems are not solved by a single person, but rather through the act of brainstorming. The opportunity to learn how others approach a given issue or subject their idea to an assessment is something that broadens their perspectives and changes a method by which they face the future problems.

At IBM, Grzegorz has the opportunity to learn from outstanding individuals and work on problems that most companies do not have because of their small a scale. The opportunity to observe the exponential growth of the company in terms of organization and business is also fascinating. He considers such experiences invaluable. However, when asked about something that he doesn’t like about his work, he immediately responded with the word “monotony.” Repeating the same tasks and a lack of growth are something that he can’t deal with. Whenever it starts to get boring at work, he begins to look for new challenges. Grzegorz lives in the belief that his work not only has to provide him with a decent life, but also constantly teach him new things.

<The Programming Languages>
When asked what programming language he thinks should be learned, Grzegorz said that this question can be answered from various perspectives. It would be a truism, for example, to say that before choosing a language one should consider what he/she wants to achieve. Grzegorz is an advocate of choosing the right tool for a specific problem. However, if we are talking about people who just began their adventure with programming, it is good to try a little bit of everything. Only by trial and error you can tell if you like something or not.

Grzegorz also believes that more experienced programmers should learn new languages, because it is often niche novelties that introduce innovations that may reach the mainstream after a few years. There are languages that are not very applicable in the industry itself, but leave a lasting impression on the way a programmer thinks. The knowledge gained during learning is universal and definitely useful in many career challenges.

<Words of Courage>
As for the people who are interested in learning programming, Grzegorz said that there is a lot of work ahead of them, but even when it gets difficult, one should not be discouraged – it is all worth the pain. It should be also remembered that technologies are constantly changing, and continual learning is the basis of this profession. Therefore, you should not get too attached to one programming language. You have to try to master things that are independent of specific technologies: problem solving, algorithms, data structures, or the impact of the computer’s operating principles on an application. You should write as much code as possible, join open-source projects and take part in initiatives such as Google Summer of Code or ImagineCup. It is important to set ambitious goals that will not be limited only to the local environment. Having the skills and experience outside of the IT field is certainly helpful – including communication skills and self-presentation. It is also worth remembering that the best job offers do not appear online, so you should get some networking done, expand your friend group and take care of your name’s brand.

</midterm >

Midterm Developer Profile

I recently got the chance to interview Jonathan Kvicky, a former Front-End Developer for U.S. News & World Report. John got into this field because he originally started messing with web development and programming at a very young age. He then began to do freelance and work for a number of individuals during the early days of high-school and college. He likes to think of himself as a self-taught developer in the sense that he went to college for Cognitive Psychology and Statistics degrees and not the traditional Computer Science degree.

When asked about the level of difficulty getting into web developing, John claims it is a “double-edged sword”, because it is easier since there are an unlimited amount of free resources available online to anybody who wants to start a journey in web development. There is no barrier of entry for somebody new who wants to dip their feet and start learning.  For this reason, there are an incredible number of successful developers out there who are self-taught. That being said, the field of web development is such a fast-moving field, and many new developers can feel overwhelmed quickly. The journey of learning as a web developer literally doesn’t end, and it’s because of this that many people new to the field only get so far. In the end though, if somebody really loves to both learn, and solve problems, John states that they will already have the two foundational requirements of being a great developer.

Jonathan recently got hired by PlayStation as a Senior Front-End Engineer in Los Angeles, so congrats to him! For the purpose of this profile, I will focus more on his last project at his last role. This project, code-named “Atlas,” is part of the education vertical and is essentially a rewrite of existing website architecture using a JavaScript library called React. The purpose of Atlas is to improve the overall user experience, responsiveness and performance while utilizing features on the U.S. News website. While there are a number of integral elements which encompass the development that takes place within the “Atlas” project, the main priority involves the translating of the current website architecture into hundreds of reusable React components. Once built, these serve as building blocks and can then be configured as needed to build different pages throughout areas of the U.S. News website.

The team that is focused on this project is currently comprised of a team lead, four software developers, a small Quality Assurance (QA) team, a project owner, and a scrum master. The software is JavaScript on the front-end with some Python incorporated as well. For source code management and version control, GitLab is utilized instead of GitHub. As far as the review process goes, the team works in two-week sprints to meet deadlines of set deliverables, which are discussed and estimated beforehand.

At its core, the React JavaScript library is still regular JavaScript, but it allows for faster, more efficient development, and provides a number of benefits related to performance/user experience because of how the JavaScript is rendered to the page and utilized. React was originally created by Facebook and first deployed on Facebook’s newsfeed in 2011 and became an open-source library in May of 2013. The project is under ongoing development, and there is no estimated time to “completion” because future projects and pages under the U.S. News education vertical will continue to be created using the React library for the foreseeable future.

A typical work day on this project involves doing a daily stand-up with the rest of the team to discuss where everybody currently is in the status of their sprint tickets. Tickets allow the other members of the team get an idea of what deliverables will be met by the end of the two-week sprint and also allow developers to collaborate with one another based on feedback. After the stand-up, the developers resume their work of either building components, or pages with their components, and replacing parts of the U.S. News website one section at a time. This project works together with mock-ups provided by designers in order to meet user-interface expectations. Once the code is written and completed, it is submitted to a fellow developer or the team lead for peer review and checked by design. Once approved, it is submitted to QA for testing, and then is pushed into the production pipeline phase.

The desired outcome of working on this project is to transform the different verticals of the U.S. News website, starting with Education, to utilize the React library in order to improve the user experience of the millions of visitors they receive monthly. This will allow their developers to create applications and features at a far more rapid pace. This project helps the company internally because the development cycle happens much faster and more efficiently, but also externally because it provides all U.S. News site visitors with a much preferable and performant experience while utilizing the U.S. News website and its many features and applications.

Since the Atlas team is fairly new, there are some challenges involving bringing everybody on the team up to speed with certain development concepts and practices in order for us to work efficiently together. The Atlas team is still in the process of discovering what areas of their development and production lifecycle may be improved by changing certain processes. Thus far, Jonathan says that everything has gone smoothly, and they have seen nothing but great benefits across the board.