Tag Archives: developer profile

Let’s learn something new

As for the work for web development class, this week concentrated on finishing up the midterm. I decided to interview Grzegorz Trzmiel, currently working as a developer at IBM. Even though I had to turn my notes and the recording into a post, I believe the traditional format of an interview definitely had its perks. Certainly, a good interview is the foundation of quality reporting – a skill, especially needed in my field of work. Such conversation is the best way of understanding a complex idea and seeing it from someone else’s perspective.

The interview provided me with the opportunity to investigate the concept of programming in a more in-depth way, compared to what I learn in class every week. I was able to discover how an actual professional thinks and feels about the programming skills needed in a real world and why he holds certain opinions. What was also interesting was that I could explore the use, effectiveness, and usefulness of programming skills I’m currently developing. As it turned out, one of the disadvantages of conducting an interview is that it is very time-consuming. Unfortunately, it consists of many stages; such as research, setting up a time that works for both parties, an actual interview, transcribing and drawing the final conclusions.

In general, the interview wasn’t as scary as I thought it would be. I did my research, was prepared and at the end wrote a great post (while, of course, respecting the interviewee’s privacy while not mentioning some of the names of Grzegorz’s previous employers). If you’re interested in seeing how well I did on my midterm, I invite you to read my post from yesterday 😉

Developer Profile: Ryan Schneiderman

Ryan Schneiderman is the younger brother of a good friend of mine, Jason. They’re both developers — Jason works at Bloomberg and develops applications for the Bloomberg Terminal, a key piece of technology that traders, banks, and financial institutions worldwide use to get information on the price of a stock, for example, as fast as technologically possible. Though Jason doesn’t really use any of the technologies we’ve been exposed to in this class, he suggested Ryan would be a good choice.

Ryan graduated from Tufts University with a computer science degree last year and has been working as a freelance web developer since then. He recently finished a complete website for his father, a successful photographer in Vermont.

The first stage was architecting the overall project. He wanted to figure out what backend framework to use. Schneiderman eventually went with Django, which is a high-level Python web framework, mostly because he saw that a lot on job applications and assumed it was one of the more marketable backend architectures to learn. It turned out to be a really good framework to use for the website.

The first step after deciding to use it was to research a bunch of tutorials on how to use it, and then started to get simple “Hello World” pages working. He used Amazon Web Services to host the website. It was an early major hurdle, Schneiderman said, to know that he could host a Django application on AWS and then, from that point forward, it was just a matter of writing code.

The first thing he tried to do was just to display one of his dad’s images on a page with nothing else, just an image by itself on the front page. That in itself contacted all of the different parts of the application, from the database, to the view which queries the database and sending that information to the front end.

“I remember when I did that it was like the first  ‘eureka’ moment,” Schneiderman said.

A lot of the early process was troubleshooting. it was a lot of Stack Overflow, Googling, some YouTube videos. Every step of the way Schneiderman said he gained a little better understanding of what’s going on, then chunking away, getting a breakthrough, and hitting another obstacle.  Learning a new language or framework is a lot of small little victories that contribute to a greater understanding along the way.

“It was more a mental hurdle than anything else, just to stay the course and keep chipping away,” he said.

To design the prototype for what he wanted the site to look like, Schneiderman just used pen and paper just to figure out the aesthetic, the organization, what he wanted to have on each page.

As for giving his non-programmer father ability to use the site, Schneiderman said Django allows for a templated admin page that’s attached to the website. It’s basically an interface for the database, so you can upload images.

Django comes with a decent template structure to interface with the database from a user perspective. So that was actually one of the things that Schneiderman felt very fortunate to have chosen Django because otherwise he likely would have had to build an application that his dad could use to upload.

Most of the communication and collaboration between Schneiderman and his dad was on the functionality of the front end, which ended up being mostly HTML, CSS and JavaScript, including some React.

React is a JavaScript framework that allows for updated and state-based JavaScript. So for example, you can have constant rendering of different content that doesn’t require completely reloading the page.

On Schneiderman’s website there is a gallery that displays cascading images, and then when you click on the images, it enlarges it and then will take you to a separate page. And what you can do on the page is click on arrows that act as a slideshow and it gets you to different images. That function of moving through the images meant he had to reload the page every time.

But when he built the same slideshow on React, it was basically instantaneous. The tradeoff was that in order to do it, the page had to load more content up-front. So when the page is first loaded, all the images that you could possibly click on are already loaded, which takes a little longer.

This is as opposed to having one image on the page, then clicking through and sending a request to the backend to get a different image, so it was definitely worth it.

“If you’re planning on implementing anything dynamic on the front end, I would highly recommend looking into React,” Schneiderman said.

There was a lot of JavaScript, mostly interacting with dynamic content. For example, some images are vertical or horizontal, different sizes and proportions. When the page was loaded, Schneiderman wanted certain styling to be as a function of what the sizing of the image would be and of whether the image would be matted or framed.

With Django, there are certain tags where you can access content from the backend in the front end without having to do really complicated queries.

“It’s literally curly brace, percentage sign, and then whatever you named your image in the backend. Very simple,” he said.

Schneiderman recommended using YouTube videos to gain a high-level understanding of a new framework, and StackOverflow to get more granular. Google is also useful, but it’s key to use precise vernacular.

If he was to do the same project again, he likely would have used Bootstrap, which is a powerful HTML, CSS and JavaScript library Schneiderman wanted to use to simplify his CSS. Schneiderman styled the site by hand, and regrets not knowing about Bootstrap before.

Schneiderman, who coaches a middle school basketball team on the side, is now developing an app that helps basketball coaches and players facilitate the team building process. The app is within a website that can diagram and animate the plays. This way, players are able to study and learn plays more effectively and more academically, because the only time players are learning a play is in practice.

Midterm Developer Profile

<midterm >

Programming at Its Best

The thoughts about programming after an interview with Grzegorz Trzmiel.

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

For years Vivian Do lived with her parents and two sisters, who were keen to have professions in the IT field due to their dad’s long and successful career in computer engineering. In 2014 Do enrolled in a computer science program at the University of Maryland College Park, a path that eventually led her to become one of the youngest web developers in her class.

From the onset, Do and her two sisters — Christina and Jess — knew their life would be different from the others kids in their Towson, Md. neighborhood.  They explored with computers and other pieces raided from their father’s work. Do’s two sisters eventually chose a different path as they grew up, but she was determined to do something in relation to computers.

“My two sisters went into the health field and I choose a different path,” Do said. “When I was younger, my sisters and I always liked — I guess — the more guys toys like the video games more so than dolls. So I guess early on I knew I like more boy toys.”

During Do’s years in high school, she was mainly attracted to computer language courses and programs. She eventually continued to pursue her interest by taking some classes from some community colleges.

“I took some courses in high school and community college and those are hard, but I kind of like the different of thinking that you need for coding,” Do said.

A high school JavaScript course ultimately solidified her decision to pursue computer science, and later, web development.

“When you are coding there’s a different approach to it and I think that’s what intrigued me about coding,” she said. “You have to actually switch your mindset to be able to do it.”

Prior to starting her computer science program at the University of Maryland, Do noticed her lack of interest in the electrical aspect of computer engineering. This meant, she wouldn’t be able to do same job as her dad.  

“In the beginning I wanted to do more engineer stuff because I like building things, but I realized I didn’t like the electrical sides and that’s how I became more computer science base,” Do hinted.

The transition from computer science to web development begun at the University of Maryland —  searching for student run programs and learning new computer languages by herself. Despite being a full-stack developer Do prefers working the front end. She says programs like HTML, CSS and JavaScript more than harder languages like Python and others.

“[I’m] not a big fan of those because those are more geared towards back-end and engineering languages,” Do said. “HTML, CSS are like markup languages that aid me in my work. JavaScript has logic in it, it has functions, and variables that kind of thing. It has aspects like the back-end developer engineering languages and it’s geared towards web development.”

The other reason she prefers HTML and CSS is because they are little bit more intuitive and easier to learn. The other programming languages, she says, gave her a tough time at the onset, but with persistence they became easy to work with.

“For me the hardest thing was the coding, when I first started learning coding,” she said. “I actually hated it and it took a long time to grasp it, but after a while it became cool. And so even though learning JavaScript can be really tough, you keep going at it and it will eventually click.

“It just takes a little patience. If you like to do it just keep getting at it because there’s a huge demand for it as the field keep growing.”

During her time on campus, Do worked as a web designer for the Applied Mathematics and Statistics and Scientific Computation (AMSC) program at the University of Maryland. She was hired to remake their less interactive website more intuitive and efficient to attract more students.

“They had so many links, but the links weren’t set up right,” she said. “Most of the files did not make sense so they wanted it to look nice and attract new students. I had to redesign it and develop it. I used a content management system called Joomla but to customize it, and used HTML and CSS as well.”

Do just secured a new job at the Booz Allen Hamilton, where she will consult as a front-end developer and designer. She will be working with a team of UI/UX designers and developers, and will be using React, Angular, and other UI libraries to create an amazing user experience. She will also learn how to provide accessibility for all users by developing a web system that is easy to use, saves time and resources, and works across browsers, platforms, and devices while meeting accessibility and security requirements.

For more about Vivian Do’s work, read her bio here


At 57, He’s Learning to Code. Will it Become His New Career?

Mike Vaughn will be the first person to tell you he isn’t a “real” web developer. But at 57 years old, he’s learning a skill often associated with teams of 20-somethings: how to code.

Vaughn has been around computers for the last 37 years, before the proliferation of personal computers and back when processing was done by one mainframe computer connected to a number of terminals. Back then, his job involved using a low-level assembly language to develop software that ran system mainframes.

Now, he works as the director of professional services for a software company, installing software, teaching clients how to use it, and troubleshooting when things go wrong. He oversees a team of developers who work to develop product updates and improvements. When his job duties expanded to include development, Vaughn saw an opportunity to learn more about the code that makes the software work.

“I really got enthralled with it,” Vaughn said during a recent phone conversation. “I got excited again about the idea of programming. Even though I’ve done so many things with computers—management, consulting, technical work—I’d never really programmed. And it just became so apparent to me that this is really cool.”

In 2016, Vaughn started using FreeCodeCamp.org, a free online learning platform dedicated to teaching people about web development. But self-directed learning can be a challenge, especially when the topic is akin to learning a new series of languages.

“It’s not a natural thing,” Vaughn said. “It’s a very esoteric thing in terms of the language and translating what you’re trying to achieve into that language. You have these errors and you just don’t know why it’s not working, you’re googling everything you need to google.”

JavaScript, especially, has been a sticking point for Vaughn.

“In terms of my progression in web development, it’s been really start-stop,” Vaughn said. “And that’s just because, you know, I get into learning HTML and CSS, and then I get into JavaScript and then I just fall off. And then I pick it back up and fall off.”

But he’s completed small projects—a matching game that functions using a combination HTML, CSS, and JavaScript, for example—and has learned the lessons in persistence and problem-solving that all developers learn in time. Luckily, Vaughn said, the resources available to today’s developers far surpass those that were available early in his career.

“I came from a world in 1982 where you had a library of manuals that you used to look up error codes,” Vaughn said. “There was an internet, but there was no world wide web like we have today. Today, the resources are tremendous. You can just google the error you’re getting.”

Vaughn also recommends learning to use Chrome developer tools early. The console view allows users to inspect the elements of a webpage, which can help them to see how their code is behaving in a test environment.

“And if you still don’t get it,” Vaughn said, “you can always google that. The chances are when you google that exact error, you’re going to be take  to a site called Stack Overflow. Chances are, somebody has already answered that question.”

At work, Vaughn manages a team of software developers—most of them younger than him. Occasionally, he interrupts their work to learn how they’re doing it. He said while they’re all more facile than he is at using their smartphones (Vaughn sticks to phone calls and the occasional picture), there isn’t much of a difference in the ways they approach problems.

“Whether it’s a digital native or a boomer like myself, there’s a mentality of ‘Let’s figure it out, because we can figure it out,’ ” Vaughn said. “We have the tools to come up with a solution or an answer. I think that’s probably a common thread for anybody that is still vibrant in technology—regardless of age.”

Working with his team has also allowed Vaughn to explore whether, as he enters retirement age, he really wants to build a second career as a web or software developer. As of now, he’s focused on building a portfolio that can lead to freelance opportunities.

That means there’s still time for him to become a “real” developer.

“Freelance is a viable way to make an income,” he said. “So if I sold a freelance project where I developed even a simple website for a client, then at that point, I’m a web developer.”